Commit c986b743a6adaa2ab5d2b967f5840564e3217d54
1 parent
739a4302
Type: Documentation.
Description: Added examples and testing instructions. git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2851 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
35 additions
and
19 deletions
docs/i18n.txt
| ... | ... | @@ -16,41 +16,57 @@ i18n requires gettext (http://www.gnu.org/software/gettext) and the gettext php |
| 16 | 16 | Completed Tasks and Implementation Details |
| 17 | 17 | ------------------------------------------ |
| 18 | 18 | |
| 19 | -- i18n/<locale>/LC_MESSAGES | |
| 19 | +- i18n/<locale>/LC_MESSAGES/knowledgeTree.mo | |
| 20 | + knowledgeTree.po | |
| 20 | 21 | /graphics |
| 21 | 22 | |
| 22 | 23 | - gettext support loaded if php module available |
| 23 | 24 | |
| 24 | -- dashboard and document browse view i18n'd | |
| 25 | +- login, dashboard, document browse view i18n'd | |
| 25 | 26 | |
| 26 | -***TODO**** | |
| 27 | 27 | - checks the browser's Accept-Language header and uses that language (if there is a translation for it) |
| 28 | 28 | |
| 29 | - | |
| 30 | 29 | The TODO List |
| 31 | 30 | ------------- |
| 32 | 31 | |
| 33 | 32 | The rest of the KnowledgeTree needs to be i18n'd. |
| 34 | 33 | Here are some guidelines for adding gettext support to the KnowledgeTree. |
| 35 | 34 | |
| 36 | -- find translatable strings and wrap literals with _() | |
| 37 | - eg. change: | |
| 38 | - | |
| 39 | - to: | |
| 40 | - _("Checked Out Documents") | |
| 41 | -- if strings are concatenated with dynamic content use sprintf | |
| 42 | - eg. | |
| 43 | -- add ordering to sprintf parameters- use single quotes so slashes aren't escaped in the .po files | |
| 44 | - eg. | |
| 45 | - sprintf(_('Hi %1$s, welcome back to the %2$s DMS, part of the Knowledge Tree') | |
| 35 | +- find translatable strings and wrap literals with _() eg. | |
| 36 | + original: | |
| 37 | + $sToRender .= "\t\t\t\t<th class=\"sectionHeading\" colspan=\"2\"><font color=\"ffffff\">Pending Web Documents</font></th>\n"; | |
| 38 | + i18n'd: | |
| 39 | + $sToRender .= "\t\t\t\t<th class=\"sectionHeading\" colspan=\"2\"><font color=\"ffffff\">" . _("Pending Web Documents") . "</font></th>\n"; | |
| 46 | 40 | |
| 41 | +- if strings are concatenated with dynamic content use sprintf eg. | |
| 42 | + original: | |
| 43 | + $sToRender .= "\t\t<td>Hi " . $sUserName . ", welcome back to the " . lookupField($default->organisations_table, "name", "id", $default->organisationID) . | |
| 44 | + "DMS, part of the Knowledge Tree</td>\n"; | |
| 45 | + i18n'd: | |
| 46 | + $sToRender .= "\t\t<td>" . sprintf(_('Hi %s, welcome back to the %s DMS, part of the Knowledge Tree'), | |
| 47 | + $sUserName, | |
| 48 | + lookupField($default->organisations_table, "name", "id", $default->organisationID)) . | |
| 49 | + "</td>\n"; | |
| 50 | + | |
| 51 | +- images- use the imgSrc function to dynamically use the images in the i18n directory (if they exist) eg. | |
| 52 | + original: | |
| 53 | + $sToRender .= "\t\t<td><img src=\"$default->graphicsUrl/welcome.gif\" border=\"0\"/></td>\n"; | |
| 54 | + i18n'd: | |
| 55 | + $sToRender .= "\t\t<td><img src=\"" . imgSrc("welcome.gif") . "\" border=\"0\"/></td>\n"; | |
| 56 | + | |
| 47 | 57 | Testing |
| 48 | 58 | ------- |
| 49 | 59 | - install gettext command line utilities |
| 50 | -- run xgettext to generate .po files | |
| 51 | -- write a test translation | |
| 52 | -- use msgfmt to compile your translated file | |
| 53 | -- change the default language and verify | |
| 54 | - - you may have to specify the complete locale ie <langcode>_<countrycode> | |
| 60 | +- run xgettext to generate .po files eg. | |
| 61 | + xgettext --files-from=i18n/file-list -LPHP --keyword=_ --no-wrap --msgid-bugs-address="kt-i18n@jamwarehouse.com" -o knowledgeTree.po | |
| 62 | +- write a test translation by editing the po file appropriately. if you have problems with the order of parameters, because your language's | |
| 63 | + ordering is different then in english. You can use the $ to change order eg: | |
| 64 | + msgid "Upgrading item %d of %d" | |
| 65 | + msgstr "... %2$d ... %1$d ..." | |
| 66 | +- construct the right directory structure inside i18n eg. | |
| 67 | + $ mkdir -p i18n/es/LC_MESSAGES/ | |
| 68 | +- use msgfmt to compile your translated .po file to a .mo | |
| 69 | + $ msgfmt --check $knowldgeTree.po --output-file=i18n/$es/LC_MESSAGES/knowledgeTree.mo | |
| 70 | +- change $default->defaultLanguage in config/environment.php and verify your translation. | |
| 55 | 71 | |
| 56 | 72 | $Id$ |
| 57 | 73 | \ No newline at end of file | ... | ... |