| 1 | = Proposal for translation of configurable labels |
| 2 | == The Problem |
| 3 | We have translatable messages since Trac-0.12, even extended the i18n system towards configuration option doc-strings. But we're still missing translations in some rather prominent places. |
| 4 | |
| 5 | == Currently untranslatable items |
| 6 | This is a list of items, that can't be localized yet (including related tickets): |
| 7 | * Enum |
| 8 | * ticket properties: |
| 9 | * status (see configurable ticket workflow below) |
| 10 | * priority |
| 11 | * serverity |
| 12 | * milestone (see below) |
| 13 | * customized labels for standard fields (see #6249) |
| 14 | * milestone (label), used in tickets too |
| 15 | * configurable ticket workflow |
| 16 | * action name (see #9472) |
| 17 | * ticket status, used in tickets and timeline as well, `new` and `closed` even hard-coded in ticket system code, including reports and custom queries (see #9799) |
| 18 | * timeline |
| 19 | * ticket changes (related to ticket status from work-flow above, see #5441) |
| 20 | * FIXME: more? |
| 21 | |
| 22 | == A possible solution |
| 23 | The following rough sketch of a suitable translation work-flow sprung from discussion on IRC tonight (25-Oct-2012): |
| 24 | * `$> trac-admin <env> extract_custom_messages` |
| 25 | a. produces a new file `env/htdocs/locale/trac_custom.pot` or |
| 26 | b. updates an existing one |
| 27 | * use similar standard procedures for PO files (more `trac-admin` commands here) |
| 28 | * create new message catalogs for a language |
| 29 | * update one/all existing messages catalogs |
| 30 | * use standard procedures to edit message catalogs |
| 31 | |
| 32 | === Implementation details |
| 33 | The aforementioned work-flow implies, that custom message cataloges are rather volatile. But recompilation on Trac environment load should be avoided, because this could be rather time-consuming. So it must be possible to pre-compile them, i.e. with yet another `trac-admin` command. |
| 34 | |
| 35 | === Wishlist |
| 36 | (Order should matter) |
| 37 | |
| 38 | * auto-generated TRANSLATOR hints like |
| 39 | `# ini:ticket-workflow` or `# enum:priority` |
| 40 | * include a ''basic common'' set of typical terms, like work-flow action names from default ticket work-flow |
| 41 | * detect changes, to remind for recompilation, if pending changes are detected, but PO (clear-text) and MO (compiled) message catalog files change time must be tracked like done for `trac.ini` to make this happen |