summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-02-19 22:45:11 -0500
committerRob Crittenden <rcritten@redhat.com>2008-02-19 22:45:11 -0500
commit3ad8a2bd1b2d5124c5138d2157c3972e9a0316ec (patch)
tree5a10c0dc3729a5b90c7d7ea10e11bb5ae9813fa4 /ipa-server/ipa-gui
parent1aa8729644d8052e4e7ffec7051b4a9386720ecf (diff)
downloadfreeipa-3ad8a2bd1b2d5124c5138d2157c3972e9a0316ec.tar.gz
freeipa-3ad8a2bd1b2d5124c5138d2157c3972e9a0316ec.tar.xz
freeipa-3ad8a2bd1b2d5124c5138d2157c3972e9a0316ec.zip
Import internationalization for kid templates patch from Masato Taruishi
Diffstat (limited to 'ipa-server/ipa-gui')
-rw-r--r--ipa-server/ipa-gui/Makefile.am22
-rw-r--r--ipa-server/ipa-gui/README.i18n10
-rw-r--r--ipa-server/ipa-gui/dev.cfg3
-rw-r--r--ipa-server/ipa-gui/i18n.patch16
-rw-r--r--ipa-server/ipa-gui/ipa_webgui3
-rw-r--r--ipa-server/ipa-gui/ipa_webgui.cfg3
-rw-r--r--ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po757
-rw-r--r--ipa-server/ipa-gui/locales/messages.pot774
8 files changed, 1588 insertions, 0 deletions
diff --git a/ipa-server/ipa-gui/Makefile.am b/ipa-server/ipa-gui/Makefile.am
index c09a5c141..636a5d1fa 100644
--- a/ipa-server/ipa-gui/Makefile.am
+++ b/ipa-server/ipa-gui/Makefile.am
@@ -14,6 +14,15 @@ app_DATA = \
ipa_webgui.cfg \
$(NULL)
+LINGUAS = ja
+
+mo = $(foreach lang,$(LINGUAS),locales/$(lang)/LC_MESSAGES/messages.mo)
+po = $(foreach lang,$(LINGUAS),locales/$(lang)/LC_MESSAGES/messages.po)
+$(mo): $(po)
+ tg-admin i18n compile
+
+noinst_DATA = $(mo)
+
EXTRA_DIST = \
README.txt \
$(sbin_SCRIPTS) \
@@ -24,12 +33,17 @@ EXTRA_DIST = \
setup.py \
start-ipagui.py \
test.cfg \
+ $(po) \
+ locales/messages.pot \
$(NULL)
MAINTAINERCLEANFILES = \
*~ \
Makefile.in
+CLEANFILES = \
+ $(mo)
+
initdir=$(sysconfdir)/rc.d/init.d
install-data-hook: ipa_webgui.init
@@ -40,5 +54,13 @@ install-data-hook: ipa_webgui.init
$(INSTALL_SCRIPT) $(srcdir)/ipa_webgui.init $(DESTDIR)$(initdir)/ipa_webgui
+ for mo in $(mo); do \
+ $(mkinstalldirs) $(DESTDIR)$(appdir)/`dirname $$mo`; \
+ $(INSTALL_DATA) $$mo $(DESTDIR)$(appdir)/`dirname $$mo`; \
+ done
+
uninstall-hook:
rm -f $(DESTDIR)$(initdir)/ipa_webgui
+ for mo in $(mo); do \
+ rm -f $(DESTDIR)$(appdir)/$$mo; \
+ done
diff --git a/ipa-server/ipa-gui/README.i18n b/ipa-server/ipa-gui/README.i18n
new file mode 100644
index 000000000..e98dc902c
--- /dev/null
+++ b/ipa-server/ipa-gui/README.i18n
@@ -0,0 +1,10 @@
+You can collect the template pot file by running the following command:
+
+~/ipa-server/ipa-gui$ tg-admin i18n collect
+
+which creates locales/messages.pot. However, unfortunately, the above
+command doesn't work correctly for .kid files unless you apply the
+patch i18n.patch.
+
+If you add a new language translation remember to add the name to
+LINGUAS in Makefile.am.
diff --git a/ipa-server/ipa-gui/dev.cfg b/ipa-server/ipa-gui/dev.cfg
index 7faceb58a..7e2e29fca 100644
--- a/ipa-server/ipa-gui/dev.cfg
+++ b/ipa-server/ipa-gui/dev.cfg
@@ -60,6 +60,9 @@ autoreload.package="ipagui"
# unexpected parameter. False by default
tg.strict_parameters = True
+# Set to True if you want to use internationalization support.
+i18n.run_template_filter = True
+
# LOGGING
# Logging configuration generally follows the style of the standard
# Python logging module configuration. Note that when specifying
diff --git a/ipa-server/ipa-gui/i18n.patch b/ipa-server/ipa-gui/i18n.patch
new file mode 100644
index 000000000..cc46a5558
--- /dev/null
+++ b/ipa-server/ipa-gui/i18n.patch
@@ -0,0 +1,16 @@
+--- turbogears/command/i18n.py.orig 2008-02-07 16:40:14.000000000 -0500
++++ turbogears/command/i18n.py 2008-02-07 16:40:43.000000000 -0500
+@@ -251,7 +251,12 @@
+ if self.options.loose_kid_support or el.get('lang', None):
+ tag = re.sub('({[^}]+})?(\w+)', '\\2', el.tag)
+ ents = []
+- if el.text: ents = [el.text.strip()]
++ if el.text and not ( el.text.strip() in keys):
++ if el.tag == "script":
++ ents = [el.text.strip()]
++ else:
++ messages.append((tag, fname, el.text.strip()))
++ keys.append(el.text.strip())
+ if el.attrib: ents.extend(el.attrib.values())
+ for k in ents:
+ key = None
diff --git a/ipa-server/ipa-gui/ipa_webgui b/ipa-server/ipa-gui/ipa_webgui
index 7489073aa..61eaf60c1 100644
--- a/ipa-server/ipa-gui/ipa_webgui
+++ b/ipa-server/ipa-gui/ipa_webgui
@@ -155,6 +155,7 @@ def main():
pkg_resources.require("ipa_gui")
from turbogears import update_config, start_server
+ from turbogears.config import update
import cherrypy
cherrypy.lowercase_api = True
@@ -163,9 +164,11 @@ def main():
if devel:
update_config(configfile="dev.cfg",
modulename="ipagui.config")
+ update( { "i18n.locale_dir": "locales"} )
else:
update_config(configfile="/usr/share/ipa/ipa_webgui.cfg",
modulename="ipagui.config.app")
+ update( { "i18n.locale_dir": "/usr/share/ipa/locales"} )
from ipagui.controllers import Root
diff --git a/ipa-server/ipa-gui/ipa_webgui.cfg b/ipa-server/ipa-gui/ipa_webgui.cfg
index 81fcfa794..e785f34ee 100644
--- a/ipa-server/ipa-gui/ipa_webgui.cfg
+++ b/ipa-server/ipa-gui/ipa_webgui.cfg
@@ -48,6 +48,9 @@ server.thread_pool = 10
# unexpected parameter. False by default
# tg.strict_parameters = False
+# Set to True if you want to use internationalization support.
+i18n.run_template_filter = True
+
# TurboGears sessions.
session_filter.on = True
session_filter.storage_type='File'
diff --git a/ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po b/ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po
new file mode 100644
index 000000000..3af064b6f
--- /dev/null
+++ b/ipa-server/ipa-gui/locales/ja/LC_MESSAGES/messages.po
@@ -0,0 +1,757 @@
+# Japanese Translation of IPA TurboGears UI
+# Copyright (C) 2007 Red Hat, Inc.
+# Masato Taruishi <taruishi@redhat.com>, 2007
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.0\n"
+"POT-Creation-Date: 2007-12-20 18:55\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Masato Taruishi <taruishi@redhat.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: utf-8\n"
+"Generated-By: pygettext.py 1.5\n"
+
+#: ipagui/templates/groupnew.kid:title
+msgid "Add Group"
+msgstr "グループの追加"
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "Search"
+msgstr "検索"
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "Password Policy"
+msgstr "パスワードポリシ"
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "User Settings"
+msgstr "ユーザ設定"
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Remove"
+msgstr "削除"
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Add User Object Class"
+msgstr "ユーザオブジェクトクラスの追加"
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Add Group Object Class"
+msgstr "グループオブジェクトクラスの追加"
+
+#: ipagui/templates/userlist.kid:title
+msgid "Find Users"
+msgstr "ユーザの検索"
+
+#: ipagui/templates/userlist.kid:script
+msgid "document.getElementById(\"uid\").focus();"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:h2
+msgid "${len(users)} results returned:"
+msgstr "${len(users)} 件見つかりました:"
+
+#: ipagui/templates/userlist.kid:th
+msgid "User"
+msgstr "ユーザ"
+
+#: ipagui/templates/userlist.kid:th
+msgid "Phone"
+msgstr "電話"
+
+#: ipagui/templates/userlist.kid:th
+msgid "Unit"
+msgstr "ユニット"
+
+#: ipagui/templates/userlist.kid:th
+msgid "Title"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:a
+msgid "${user.givenName} ${user.sn}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.telephoneNumber}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.ou}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.title}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:p
+msgid "No results found for \"${uid}\""
+msgstr ""
+
+#: ipagui/templates/userlist.kid:p
+msgid ""
+"Search automatically looks across multiple fields. If you want to find\n"
+" Joe in Finance, try typing \"joe finance\" into the search box."
+msgstr ""
+"検索は複数のフィールドに対して行われます。したがって、例えば経理部の田中さんを\n"
+"検索したい場合は、\"田中 経理\" と検索ボックスに入力します。"
+
+#: ipagui/templates/userlist.kid:p
+msgid ""
+"Exact matches are listed first, followed by partial matches. If your search\n"
+" is too broad, you will get a warning that the search returned too many\n"
+" results. Try being more specific."
+msgstr ""
+"完全一致の結果が初めに、次に部分一致の結果が表示されます。検索式が短すぎると、\n"
+"検索結果が多すぎるという警告メッセージが表示されてしまいますので、長い検索式\n"
+"を利用してください。"
+
+#: ipagui/templates/userlist.kid:p
+msgid ""
+"The results that come back are sortable. Simply click on a column\n"
+" header to sort on that header. A triangle will indicate the sorted\n"
+" column, along with its direction. Clicking and dragging between headers\n"
+" will allow you to resize the header."
+msgstr ""
+"結果はソートされます。カラムをクリックすることでソートするヘッダを変えられます。\n"
+"ソートに利用されたカラムには三角形が表示され、三角形の向きがソートの方向を表します。\n"
+"ヘッダをドラッグすることでヘッダのサイズを変えられます。"
+
+#: ipagui/templates/unhandled_exception.kid:title
+msgid "Error"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:h1
+msgid "An unexpected error occured"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "Message:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${message}"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "HTTP Error Message:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${error_msg}"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "Stack Trace:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${details}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:title
+msgid "Manage IPA Policy"
+msgstr "IPA ポリシの管理"
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipasearchtimelimit\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipasearchrecordslimit\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipausersearchfields\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipagroupsearchfields\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipapwdexpadvnotify\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbminpwdlife\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbmaxpwdlife\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdmindiffchars\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdminlength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdhistorylength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipamaxusernamelength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipahomesrootdir\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultloginshell\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultprimarygroup\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultemaildomain\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${values[index]}"
+msgstr ""
+
+#: ipagui/templates/usernew.kid:title
+msgid "Add User"
+msgstr "ユーザの追加"
+
+#: ipagui/templates/principalnewform.kid:h2
+msgid "Service Principal Details"
+msgstr "サービスプリンシパル詳細"
+
+#: ipagui/templates/delegateform.kid:h2
+msgid "Delegation Details"
+msgstr "権限委譲の詳細"
+
+#: ipagui/templates/delegateform.kid:span
+msgid "${value_for(delegate_fields.source_group_cn)}"
+msgstr ""
+
+#: ipagui/templates/delegateform.kid:a
+msgid "change"
+msgstr ""
+
+#: ipagui/templates/delegateform.kid:span
+msgid "${value_for(delegate_fields.dest_group_cn)}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyedit.kid:title
+msgid "Edit IPA Policy"
+msgstr "IPA ポリシの編集"
+
+#: ipagui/templates/master.kid:title
+msgid "Your title goes here"
+msgstr ""
+
+#: ipagui/templates/master.kid:style
+msgid "@import \"${tg.url('/static/css/style.css')}\";"
+msgstr ""
+
+#: ipagui/templates/master.kid:a
+msgid "Free IPA"
+msgstr ""
+
+#: ipagui/templates/master.kid:option
+msgid "Users"
+msgstr ""
+
+#: ipagui/templates/master.kid:option
+msgid "Groups"
+msgstr ""
+
+#: ipagui/templates/master.kid:script
+msgid ""
+"function clearsearch() {\n"
+" topsearchbox = document.getElementById('topsearchbox');\n"
+" topsearchbox.onfocus = null;\n"
+" topsearchbox.value = \"\";\n"
+" }"
+msgstr ""
+
+#: ipagui/templates/master.kid:span
+msgid "Kerberos login failed."
+msgstr "Keberos ログインに失敗しました。"
+
+#: ipagui/templates/master.kid:span
+msgid "Logged in as: ${tg.identity.user.display_name}"
+msgstr "${tg.identity.user.display_name} でログインしています"
+
+#: ipagui/templates/master.kid:h2
+msgid "Tasks"
+msgstr "タスク一覧"
+
+#: ipagui/templates/master.kid:a
+msgid "Find Groups"
+msgstr "グループの検索"
+
+#: ipagui/templates/master.kid:a
+msgid "Add Service Principal"
+msgstr "サービスプリンシパルの追加"
+
+#: ipagui/templates/master.kid:a
+msgid "Find Service Principal"
+msgstr "サービスプリンシパルの検索"
+
+#: ipagui/templates/master.kid:a
+msgid "Manage Policy"
+msgstr "ポリシの管理"
+
+#: ipagui/templates/master.kid:a
+msgid "Self Service"
+msgstr "自サービス"
+
+#: ipagui/templates/master.kid:a
+msgid "Delegations"
+msgstr "権限の委譲"
+
+#: ipagui/templates/master.kid:a
+msgid "Powered by FreeIPA"
+msgstr ""
+
+#: ipagui/templates/groupeditform.kid:h2
+msgid "Group Details"
+msgstr "グループ詳細"
+
+#: ipagui/templates/groupeditform.kid:h2
+msgid "Group Members"
+msgstr "グループメンバ"
+
+#: ipagui/templates/groupeditform.kid:div
+msgid "To Remove:"
+msgstr ""
+
+#: ipagui/templates/groupeditform.kid:a
+msgid "remove"
+msgstr ""
+
+#: ipagui/templates/groupeditform.kid:h2
+msgid "Add Members"
+msgstr "メンバの追加"
+
+#: ipagui/templates/groupeditform.kid:div
+msgid "To Add:"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Identity Details"
+msgstr "アイデンティティ詳細"
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Common Name"
+msgstr "ニックネームの追加"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Account Details"
+msgstr "アカウント詳細"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Contact Details"
+msgstr "連絡先詳細"
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Work Number"
+msgstr "職場の電話番号を追加"
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Fax Number"
+msgstr "ファックス番号を追加"
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Cell Number"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Pager Number"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:a
+msgid "Add Home Phone"
+msgstr "自宅の電話番号を追加"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Mailing Address"
+msgstr "メールアドレス"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Employee Information"
+msgstr "社員情報"
+
+#: ipagui/templates/usereditform.kid:span
+msgid "${value_for(user_fields.manager_cn)}"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:a
+msgid "clear"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:span
+msgid "${value_for(user_fields.secretary_cn)}"
+msgstr ""
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Misc Information"
+msgstr "その他"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Custom Fields"
+msgstr "カスタムフィールド"
+
+#: ipagui/templates/usereditform.kid:h2
+msgid "Add Groups"
+msgstr "グループの追加"
+
+#: ipagui/templates/grouplist.kid:script
+msgid "document.getElementById(\"criteria\").focus();"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:h2
+msgid "${len(groups)} results returned:"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:th
+msgid "${fields.cn.label}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:th
+msgid "${fields.description.label}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:a
+msgid "${group.cn}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:td
+msgid "${group.description}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:h2
+msgid "No results found for \"${criteria}\""
+msgstr ""
+
+#: ipagui/templates/dynamiceditsearch.kid:a
+msgid "add"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:td
+msgid "Generated by server"
+msgstr "サーバにより生成されます"
+
+#: ipagui/templates/usernewform.kid:span
+msgid "${value_for(user_fields.manager)}"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:span
+msgid "${value_for(user_fields.secretary)}"
+msgstr ""
+
+#: ipagui/templates/userselectsearch.kid:span
+msgid "(truncated)"
+msgstr ""
+
+#: ipagui/templates/userselectsearch.kid:div
+msgid "${user_name} ${user_descr}"
+msgstr ""
+
+#: ipagui/templates/userselectsearch.kid:a
+msgid "select"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:title
+msgid "View Group"
+msgstr "グループの閲覧"
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"cn\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"description\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"gidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${userhelper.account_status_display(group.get(\"nsAccountLock\"))}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:a
+msgid "${member_cn}"
+msgstr ""
+
+#: ipagui/templates/groupedit.kid:title
+msgid "Edit Group"
+msgstr "グループの編集"
+
+#: ipagui/templates/groupedit.kid:span
+msgid "edit protected fields"
+msgstr "保護されたフィールドの編集"
+
+#: ipagui/templates/policyindex.kid:a
+msgid "IPA Policy"
+msgstr "IPA ポリシ"
+
+#: ipagui/templates/delegatelist.kid:script
+msgid ""
+"function editDelegation(acistr) {\n"
+" $('edit_acistr').value = acistr;\n"
+" $('editform').submit();\n"
+" return false;\n"
+" }"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.name.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.source_group_cn.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.attrs.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.dest_group_cn.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${aci.name}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${source_cn}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:td
+msgid "${\", \".join(aci.attrs)}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${dest_cn}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "add new delegation"
+msgstr "新しい権限委譲の追加"
+
+#: ipagui/templates/useredit.kid:title
+msgid "Edit User"
+msgstr "ユーザの編集"
+
+#: ipagui/templates/useredit.kid:div
+msgid "${user.get(\"uid\")}'s password will expire in ${pw_expires_days} day${days_suffix}"
+msgstr ""
+
+#: ipagui/templates/useredit.kid:div
+msgid "${user.get(\"uid\")}'s password has expired"
+msgstr ""
+
+#: ipagui/templates/welcome.kid:title
+msgid "Welcome"
+msgstr "ようこそ"
+
+#: ipagui/templates/welcome.kid:h1
+msgid "Welcome to Free IPA"
+msgstr "Free IPA へようこそ"
+
+#: ipagui/templates/welcome.kid:span
+msgid "This site makes heavy use of JavaScript."
+msgstr "このサイトは JavaScript を多用しています。"
+
+#: ipagui/templates/welcome.kid:p
+msgid "IPA is used to manage Identity, Policy, and Auditing for your organization."
+msgstr "IPA は組織のアイデンティティ、ポリシ、監査システムを管理します。"
+
+#: ipagui/templates/welcome.kid:p
+msgid ""
+"To get started, you can use the search box in the top right to find\n"
+" users or groups you need to work on. Search automatically looks\n"
+" across multiple fields. If you want to find Joe in Finance, try typing\n"
+" \"joe finance\" into the search box."
+msgstr ""
+"それでは始めましょう。作業する必要のあるユーザやグループを検索するのに右上の検索\n"
+"ボックスが利用できます。検索は複数のフィールドに対して行われます.したがって、\n"
+"経理部の田中さんを検索したい場合は、\"経理部 田中\" と入力します。"
+
+#: ipagui/templates/welcome.kid:p
+msgid "Alternatively, select a task from the right sidebar."
+msgstr "もしくは右のサイドバーよりタスクを選択してください。"
+
+#: ipagui/templates/principallist.kid:title
+msgid "Find Service Principals"
+msgstr "サービスプリンシパルの検索"
+
+#: ipagui/templates/principallist.kid:script
+msgid "document.getElementById(\"hostname\").focus();"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:h2
+msgid "${len(principals)} results returned:"
+msgstr "${len(principals)} 件見つかりました:"
+
+#: ipagui/templates/principallist.kid:th
+msgid "Hostname"
+msgstr "ホスト名"
+
+#: ipagui/templates/principallist.kid:th
+msgid "Service"
+msgstr "サービス"
+
+#: ipagui/templates/principallist.kid:td
+msgid "${principal.hostname}"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:td
+msgid "${principal.service}"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:p
+msgid "No results found for \"${hostname}\""
+msgstr ""
+
+#: ipagui/templates/delegateedit.kid:title
+msgid "Edit Delegation"
+msgstr "権限委譲の編集"
+
+#: ipagui/templates/usershow.kid:title
+msgid "View User"
+msgstr "ユーザ情報の閲覧"
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"title\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"givenname\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"sn\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"displayname\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"initials\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${userhelper.account_status_display(user.get(\"nsAccountLock\"))}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"uid\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"uidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"gidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"homedirectory\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"loginshell\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"gecos\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user.get(\"mail\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"street\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"roomnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"l\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"st\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"postalcode\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"ou\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"businesscategory\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"description\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"employeetype\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user_manager.givenname} ${user_manager.sn}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user_secretary.givenname} ${user_secretary.sn}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"carlicense\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user.get('labeleduri')}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(custom_field.name)}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:h2
+msgid "Direct Reports"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${report.givenname} ${report.sn}"
+msgstr ""
+
+#: ipagui/templates/loginfailed.kid:title
+msgid "Permission Denied"
+msgstr "権限がありません"
+
+#: ipagui/templates/loginfailed.kid:p
+msgid "You do not have permission to access this page."
+msgstr "このページにアクセスする権限がありません。"
+
+#: ipagui/templates/delegatenew.kid:title
+msgid "Add Delegation"
+msgstr "権限委譲の追加"
diff --git a/ipa-server/ipa-gui/locales/messages.pot b/ipa-server/ipa-gui/locales/messages.pot
new file mode 100644
index 000000000..37b21b198
--- /dev/null
+++ b/ipa-server/ipa-gui/locales/messages.pot
@@ -0,0 +1,774 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2008-02-07 21:59\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: utf-8\n"
+"Generated-By: pygettext.py 1.5\n"
+
+
+#: ipagui/forms/delegate.py:82 ipagui/forms/delegate.py:84
+msgid "Please choose a group"
+msgstr ""
+
+#: ipagui/subcontrollers/delegation.py:336
+msgid "Please select at least one value"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:div
+msgid ""
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "Search"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "Password Policy"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:h2
+msgid "User Settings"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Remove"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Add User Object Class"
+msgstr ""
+
+#: ipagui/templates/ipapolicyeditform.kid:a
+msgid "Add Group Object Class"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:title
+msgid "View Service Principal"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:script
+msgid ""
+"function confirmDelete() {\n"
+" if (confirm(\"Are you sure you want to delete this service principal?\")) {\n"
+" $('deleteform').submit();\n"
+" }\n"
+" return false;\n"
+" }"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:h2
+msgid "Principal"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:label
+msgid "Host"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:td
+msgid "${principal.get(\"hostname\")}"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:label
+msgid "Service"
+msgstr ""
+
+#: ipagui/templates/principalshow.kid:td
+msgid "${principal.get(\"service\")}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:title
+msgid "Delegations"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:script
+msgid ""
+"function editDelegation(acistr) {\n"
+" $('edit_acistr').value = acistr;\n"
+" $('editform').submit();\n"
+" return false;\n"
+" }"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.name.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.source_group_cn.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.attrs.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:th
+msgid "${fields.dest_group_cn.label}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${aci.name}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${source_cn}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:td
+msgid "${\", \".join(aci.attrs)}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "${dest_cn}"
+msgstr ""
+
+#: ipagui/templates/delegatelist.kid:a
+msgid "add new delegation"
+msgstr ""
+
+#: ipagui/templates/welcome.kid:title
+msgid "Welcome"
+msgstr ""
+
+#: ipagui/templates/welcome.kid:h1
+msgid "Welcome to Free IPA"
+msgstr ""
+
+#: ipagui/templates/welcome.kid:span
+msgid "This site makes heavy use of JavaScript."
+msgstr ""
+
+#: ipagui/templates/welcome.kid:p
+msgid "IPA is used to manage Identity, Policy, and Auditing for your organization."
+msgstr ""
+
+#: ipagui/templates/welcome.kid:p
+msgid ""
+"To get started, you can use the search box in the top right to find\n"
+" users or groups you need to work on. Search automatically looks\n"
+" across multiple fields. If you want to find Joe in Finance, try typing\n"
+" \"joe finance\" into the search box."
+msgstr ""
+
+#: ipagui/templates/welcome.kid:p
+msgid "Alternatively, select a task from the right sidebar."
+msgstr ""
+
+#: ipagui/templates/delegateedit.kid:title
+msgid "Edit Delegation"
+msgstr ""
+
+#: ipagui/templates/delegategroupsearch.kid:div
+msgid "${len(groups)} results returned:"
+msgstr ""
+
+#: ipagui/templates/delegategroupsearch.kid:span
+msgid "(truncated)"
+msgstr ""
+
+#: ipagui/templates/delegategroupsearch.kid:div
+msgid "${group.cn}"
+msgstr ""
+
+#: ipagui/templates/delegategroupsearch.kid:a
+msgid "select"
+msgstr ""
+
+#: ipagui/templates/delegategroupsearch.kid:div
+msgid "No results found for \"${criteria}\""
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Identity Details"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Common Name"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Account Details"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:td
+msgid "Generated by server"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Contact Details"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Work Number"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Fax Number"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Cell Number"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Pager Number"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "Add Home Phone"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Mailing Address"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Employee Information"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:span
+msgid "${value_for(user_fields.manager)}"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "clear"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:a
+msgid "change"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:span
+msgid "${value_for(user_fields.secretary)}"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Misc Information"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:div
+msgid "Custom Fields"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:h2
+msgid "Add Groups"
+msgstr ""
+
+#: ipagui/templates/usernewform.kid:div
+msgid "To Add:"
+msgstr ""
+
+#: ipagui/templates/policyindex.kid:title
+msgid "Manage Policy"
+msgstr ""
+
+#: ipagui/templates/policyindex.kid:a
+msgid "IPA Policy"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:title
+msgid "Find Service Principals"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:script
+msgid "document.getElementById(\"hostname\").focus();"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:h2
+msgid "${len(principals)} results returned:"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:th
+msgid "Hostname"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:a
+msgid "${principal.hostname}"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:a
+msgid "${principal.service}"
+msgstr ""
+
+#: ipagui/templates/principallist.kid:p
+msgid "No results found for \"${hostname}\""
+msgstr ""
+
+#: ipagui/templates/principallist.kid:p
+msgid ""
+"Exact matches are listed first, followed by partial matches. If your search\n"
+" is too broad, you will get a warning that the search returned too many\n"
+" results. Try being more specific."
+msgstr ""
+
+#: ipagui/templates/principallist.kid:p
+msgid ""
+"The results that come back are sortable. Simply click on a column\n"
+" header to sort on that header. A triangle will indicate the sorted\n"
+" column, along with its direction. Clicking and dragging between headers\n"
+" will allow you to resize the header."
+msgstr ""
+
+#: ipagui/templates/usernew.kid:title
+msgid "Add User"
+msgstr ""
+
+#: ipagui/templates/delegatenew.kid:title
+msgid "Add Delegation"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:title
+msgid "View User"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:div
+msgid "${user.get(\"uid\")}'s password will expire in ${pw_expires_days} day${days_suffix}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:div
+msgid "${user.get(\"uid\")}'s password has expired"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"title\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"givenname\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"sn\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${values[index]}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"displayname\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"initials\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${userhelper.account_status_display(user.get(\"nsAccountLock\"))}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"uid\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"uidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"gidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"homedirectory\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"loginshell\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"gecos\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user.get(\"mail\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"street\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"roomnumber\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"l\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"st\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"postalcode\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"ou\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"businesscategory\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"description\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"employeetype\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user_manager.givenname} ${user_manager.sn}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user_secretary.givenname} ${user_secretary.sn}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(\"carlicense\")}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${user.get('labeleduri')}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:td
+msgid "${user.get(custom_field.name)}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:h2
+msgid "Direct Reports"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:a
+msgid "${report.givenname} ${report.sn}"
+msgstr ""
+
+#: ipagui/templates/usershow.kid:h2
+msgid "Groups"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:title
+msgid "Manage IPA Policy"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipasearchtimelimit\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipasearchrecordslimit\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipausersearchfields\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipagroupsearchfields\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipapwdexpadvnotify\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbminpwdlife\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbmaxpwdlife\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdmindiffchars\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdminlength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${password.get(\"krbpwdhistorylength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipamaxusernamelength\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipahomesrootdir\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultloginshell\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultprimarygroup\")}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyshow.kid:td
+msgid "${ipapolicy.get(\"ipadefaultemaildomain\")}"
+msgstr ""
+
+#: ipagui/templates/loginfailed.kid:title
+msgid "Permission Denied"
+msgstr ""
+
+#: ipagui/templates/loginfailed.kid:p
+msgid "You do not have permission to access this page."
+msgstr ""
+
+#: ipagui/templates/groupedit.kid:title
+msgid "Edit Group"
+msgstr ""
+
+#: ipagui/templates/groupedit.kid:span
+msgid "edit protected fields"
+msgstr ""
+
+#: ipagui/templates/groupnew.kid:title
+msgid "Add Group"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:title
+msgid "View Group"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:h2
+msgid "Group Details"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"cn\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"description\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${group.get(\"gidnumber\")}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:td
+msgid "${userhelper.account_status_display(group.get(\"nsAccountLock\"))}"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:h2
+msgid "Group Members"
+msgstr ""
+
+#: ipagui/templates/groupshow.kid:a
+msgid "${member_cn}"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:title
+msgid "Error"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:h1
+msgid "An unexpected error occured"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "Message:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${message}"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "HTTP Error Message:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${error_msg}"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:b
+msgid "Stack Trace:"
+msgstr ""
+
+#: ipagui/templates/unhandled_exception.kid:pre
+msgid "${details}"
+msgstr ""
+
+#: ipagui/templates/ipapolicyedit.kid:title
+msgid "Edit IPA Policy"
+msgstr ""
+
+#: ipagui/templates/principalnew.kid:title
+msgid "Add Service Principal"
+msgstr ""
+
+#: ipagui/templates/useredit.kid:title
+msgid "Edit User"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:title
+msgid "Find Users"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:script
+msgid "document.getElementById(\"uid\").focus();"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:h2
+msgid "${len(users)} results returned:"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:th
+msgid "User"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:th
+msgid "Phone"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:th
+msgid "Unit"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:th
+msgid "Title"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:a
+msgid "${user.givenName} ${user.sn}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.telephoneNumber}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.ou}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:td
+msgid "${user.title}"
+msgstr ""
+
+#: ipagui/templates/userlist.kid:p
+msgid "No results found for \"${uid}\""
+msgstr ""
+
+#: ipagui/templates/userlist.kid:p
+msgid ""
+"Search automatically looks across multiple fields. If you want to find\n"
+" Joe in Finance, try typing \"joe finance\" into the search box."
+msgstr ""
+
+#: ipagui/templates/userselectsearch.kid:div
+msgid "${user_name} ${user_descr}"
+msgstr ""
+
+#: ipagui/templates/delegateform.kid:h2
+msgid "Delegation Details"
+msgstr ""
+
+#: ipagui/templates/delegateform.kid:span
+msgid "${value_for(delegate_fields.source_group_cn)}"
+msgstr ""
+
+#: ipagui/templates/delegateform.kid:span
+msgid "${value_for(delegate_fields.dest_group_cn)}"
+msgstr ""
+
+#: ipagui/templates/principalnewform.kid:h2
+msgid "Service Principal Details"
+msgstr ""
+
+#: ipagui/templates/groupnewform.kid:h2
+msgid "Add Members"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:title
+msgid "Find Groups"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:script
+msgid "document.getElementById(\"criteria\").focus();"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:th
+msgid "${fields.cn.label}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:th
+msgid "${fields.description.label}"
+msgstr ""
+
+#: ipagui/templates/grouplist.kid:td
+msgid "${group.description}"
+msgstr ""
+
+#: ipagui/templates/dynamiceditsearch.kid:a
+msgid "add"
+msgstr ""
+
+#: ipagui/templates/master.kid:title
+msgid "Your title goes here"
+msgstr ""
+
+#: ipagui/templates/master.kid:style
+msgid "@import \"${tg.url('/static/css/style.css')}\";"
+msgstr ""
+
+#: ipagui/templates/master.kid:a
+msgid "Free IPA"
+msgstr ""
+
+#: ipagui/templates/master.kid:option
+msgid "Users"
+msgstr ""
+
+#: ipagui/templates/master.kid:script
+msgid ""
+"function clearsearch() {\n"
+" topsearchbox = document.getElementById('topsearchbox');\n"
+" topsearchbox.onfocus = null;\n"
+" topsearchbox.value = \"\";\n"
+" }"
+msgstr ""
+
+#: ipagui/templates/master.kid:span
+msgid "Kerberos login failed."
+msgstr ""
+
+#: ipagui/templates/master.kid:span
+msgid "Logged in as: ${tg.identity.user.display_name}"
+msgstr ""
+
+#: ipagui/templates/master.kid:h2
+msgid "Tasks"
+msgstr ""
+
+#: ipagui/templates/master.kid:a
+msgid "Find Service Principal"
+msgstr ""
+
+#: ipagui/templates/master.kid:a
+msgid "Self Service"
+msgstr ""
+
+#: ipagui/templates/master.kid:a
+msgid "Powered by FreeIPA"
+msgstr ""
+