Frameworks/Epics/KF5.0 Release Preparation/l10n: Difference between revisions

From KDE Community Wiki
No edit summary
No edit summary
Line 1: Line 1:
== TODO ==
== Preparation ==
 
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
|- style="background: #ececec; white-space:nowrap;"
! Status
! Task
! Coordination
{{FeatureTodo | Decide where to place Messages.sh (src by default?) | }}
{{FeatureTodo | Define the way to extract translations for Qt-based frameworks.
Current idea (based on Trojita):
 
<pre>
rm po/$framework.ts
lupdate -silent -recursive src/ -ts po/$framework.ts
lconvert po/$framework.ts --sort-contexts --output-format pot -o po/$framework.pot
</pre>
 
| }}
{{FeatureTodo |Check the release scripts to ensure they include the .po or .ts files as well as the matching CMake code to build and install them.
| }}
|}
 
== Per framework TODO ==
For each framework the following needs to be done:
For each framework the following needs to be done:


Line 19: Line 41:
If using tr() ... no clue, someone should care about this. Probably have a look at how Trojita does it for Qt4 and try to generalize for KF5
If using tr() ... no clue, someone should care about this. Probably have a look at how Trojita does it for Qt4 and try to generalize for KF5


=== Make sure translations are shipped ===
=== Status ===
Check the release scripts to ensure they include the .po or .ts files as well as the matching CMake code to build and install them.
 
== Status ==


{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"
{| class="sortable" border="1" cellpadding="5" cellspacing="0" style="border: gray solid 1px; border-collapse: collapse; text-align: left; width:100%;"

Revision as of 15:28, 14 March 2014

Preparation

Status Task Coordination
TO DO Decide where to place Messages.sh (src by default?) <{{{3}}}>
TO DO Define the way to extract translations for Qt-based frameworks.

Current idea (based on Trojita):

rm po/$framework.ts
lupdate -silent -recursive src/ -ts po/$framework.ts
lconvert po/$framework.ts --sort-contexts --output-format pot -o po/$framework.pot


<{{{3}}}>
TO DO Check the release scripts to ensure they include the .po or .ts files as well as the matching CMake code to build and install them. <{{{3}}}>

Per framework TODO

For each framework the following needs to be done:

Mark strings translatable

Make sure all strings that need to be translated are either wrapped by i18n*() or tr*() depending on the translation API of choice.

Extract translatable strings

If there is no Messages.sh file in the repository, create a src/Messages.sh file. See http://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems#handling_i18n_in_KDE.27s_subversion_repository for details on how to create and test it.

If there are Messages.sh files, check they are still relevant.

Things to test:

  • Make sure the Messages.sh files extract all the files
  • Make sure the Messages.sh files create catalogs with correct names. Look out for catalogs with '4' suffix, or catalogs whose name would clash with an existing KDE4 library.

Make sure translations are loaded

If using ki18n, make sure it follows http://api.kde.org/frameworks-api/frameworks5-apidocs/ki18n/html/prg_guide.html#link_lib . In short: Check all files with calls to i18n*() define TRANSLATION_DOMAIN before including KLocalizedString.

If using tr() ... no clue, someone should care about this. Probably have a look at how Trojita does it for Qt4 and try to generalize for KF5

Status

Status Framework (Translation API) Coordination
DONE attica (-)
DONE KI18n (-)
TO DO kactivities (KI18n) <{{{3}}}>
DONE karchive (-)
TO DO kauth (Qt) <{{{3}}}>
TO DO kbookmarks (Qt) <{{{3}}}>
TO DO kcmutils (KI18n) <{{{3}}}>
TO DO kcodecs (Qt) <{{{3}}}>
TO DO kcompletion (Qt) <{{{3}}}>
TO DO kconfig (KI18n) <{{{3}}}>
TO DO kconfigwidgets (KI18n) <{{{3}}}>
TO DO kcoreaddons (Qt) <{{{3}}}>
TO DO kcrash (Qt) <{{{3}}}>
TO DO kdbusaddons (Qt) <{{{3}}}>
TO DO kde4support (KI18n) <{{{3}}}>
DONE kdeclarative (-)
DONE kded (-)
TO DO kdesignerplugin (Qt) <{{{3}}}>
DONE kdesu (-)
DONE kdewebkit (-)
TO DO kdnssd-framework (Qt) <{{{3}}}>
TO DO kdoctools (KI18n) <{{{3}}}>
DONE kemoticons (-)
DONE kf5umbrella (-)
TO DO kfileaudiopreview (KI18n) <{{{3}}}>
TO DO kglobalaccel (Qt) <{{{3}}}>
DONE kguiaddons (-)
TO DO khtml (KI18n) <{{{3}}}>
TO DO ki18n (KI18n) <{{{3}}}>
TO DO kiconthemes (KI18n) <{{{3}}}>
DONE kidletime (-)
DONE kimageformats (-)
TO DO kinit (KI18n) <{{{3}}}>
TO DO kio (KI18n) <{{{3}}}>
DONE kitemmodels (-)
TO DO kitemviews (Qt) <{{{3}}}>
TO DO kjobwidgets (Qt) <{{{3}}}>
DONE kjs (-)
TO DO kjsembed (KI18n) <{{{3}}}>
DONE kmediaplayer (-)
TO DO knewstuff (KI18n) <{{{3}}}>
TO DO knotifications (Qt) <{{{3}}}>
TO DO knotifyconfig (KI18n) <{{{3}}}>
TO DO kparts (KI18n) <{{{3}}}>
DONE kplotting (-)
TO DO kprintutils (KI18n) <{{{3}}}>
TO DO kpty (KI18n) <{{{3}}}>
TO DO kross (KI18n) <{{{3}}}>
TO DO krunner (KI18n) <{{{3}}}>
TO DO kservice (KI18n) <{{{3}}}>
TO DO ktexteditor (KI18n) <{{{3}}}>
TO DO ktextwidgets (KI18n) <{{{3}}}>
TO DO kunitconversion (KI18n) <{{{3}}}>
TO DO kwallet (KI18n) <{{{3}}}>
TO DO kwidgetsaddons (Qt) <{{{3}}}>
TO DO kwindowsystem (KI18n) <{{{3}}}>
TO DO kxmlgui (KI18n) <{{{3}}}>
TO DO plasma-framework (KI18n) <{{{3}}}>
TO DO solid (Qt) <{{{3}}}>
TO DO sonnet (Qt) <{{{3}}}>
DONE threadweaver (-)