• WP localization is taking its first giant steps. (thread: https://www.ads-software.com/support/4/1929). I like the work Otsukare has made. There are no global translations as each translation is tied to a file. This makes it easier to translate each different situation correctly. I have not installed the script. However, my first impression is that it has one of the best formats i have seen. Very easy to work with.
    As the work goes on from there i have two points. In my experience, only a few issues are required (from the code) to achieve a good-excellent translation.
    My story:
    I am a translator, not a coder. My ambition was to make the best translation of PostNuke and phpBB2 and some smaller apps (to a North European lang). To achieve this many parts of code had to be changed to accommodate the fluent language i was striving for. I did it but you can guess the rest: the modified code became too difficult to update, thus insecure and useless. End of story. – Now i have found WordPress ??
    Based on the experience, I will stick my neck out and state two requirements for code to be easy to translate:
    1) Accommodation for different word order in different lanquages.
    2) Accommodation for an alternative expression/word in different situations.
    ( and of course: UTF-8 )
    ************
    Both are very easy to achieve. As follows:
    1) Different word order.
    code file: sprintf(_LANG_WELLCOME,$username);
    English lang file: define(‘_LANG_WELLCOME’,’wellcome Mr. %s.’);
    Japanese lang file: define(‘_LANG_WELLCOME’,’konnichiwa %s san.’);
    This yields the correct greetings:
    “welcome Mr. Smith.” (English)
    “konnichiva Tanaka san.” (Japanese)
    As phpBB2 was being developed, there was a good discussion on this matter. No wonder phpBB2 has been since translated to some 53 languages. Some examples:
    code file:
    ‘LAST_VISIT_DATE’ => sprintf($lang[‘You_last_visit’], $s_last_visit),
    English lang file:
    $lang[‘You_last_visit’] = ‘You last visited on %s’; // %s replaced by date/time
    Other examples:
    $lang[‘Registered_user_total’] = ‘We have %d registered user’; // # registered users
    $lang[‘Current_time’] = ‘The time now is %s’; // %s replaced by time
    I have seen this point raised again and again in many forums, e.g., take a look at this thread:
    https://sourceforge.net/mailarchive/message.php?msg_id=4330382
    “…all sentences have to be translated wholy. Variable parts are inserted into the string…” See the example.
    It is my experience that NOT ‘all sentences have to be translated in whole’. Based on phpBB2 i estimate 3 to 7 % of the strings have to be coded this way to achieve smooth expression.
    ***********
    2) Alternative expression/word
    The correct use of non-English language may require a different expression depending on the situation. How to do it? There are many approaches. This is one of the least demanding (in terms of code changes) and least confusing:
    Add a small suffix (_2 or _#2 or …) to other instances and add a new line to both lang files:
    code file:
    echo _LANG_CX_CANCEL; // first instance
    echo _LANG_CX_CANCEL_2; // second instance
    echo _LANG_CX_CANCEL_3; // third instance
    English lang file:
    define(‘_LANG_CX_CANCEL’,’Cancel.’);
    define(‘_LANG_CX_CANCEL_2′,’Cancel.’);
    define(‘_LANG_CX_CANCEL_3′,’Cancel.’);
    Some lang file:
    define(‘_LANG_CX_CANCEL’,’Avbryt.’);
    define(‘_LANG_CX_CANCEL_2′,’G? tillbaka.’);
    define(‘_LANG_CX_CANCEL_3′,’?terbud.’);
    This may inflate the lang files by 5 to 20 % but it is a small price to pay for wider usability. This must be accompanied with a policy to accept such a change request from a translator. It involves adding the proposed suffix to the main release and duplicating one line in the English lang file. Developers can leave other languages to the translators.
    I am NOT a coder. Is it possible to code a routine to make this easier? The logic is as follows:
    if the required text with suffix (“_LANG_CX_CANCEL_with_suffix”) is not available
    use text without the suffix (“_LANG_CX_CANCEL”) in stead.
    This would eliminate unnecessary inflation of lang files when there is no need for an alternative expression. And translations would not break as easy as they do.
    **********
    This is my 2 cents.
    I would be happy to see Otsukare release integrated into main codebase. It would elevate WP to the next level.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Hi!
    I’d like to add my 2 cents, too…
    First off, jules has laied out the important parts.
    But there is one more thing: If a variable was not yet translated into a certain language (because there’s a new version of the script, but not a new translation yet), the script should _try_ to get it from the english lang file, possibly formatted with a special coulor, so translators can spot easily where the new text goes to (as context is quite important…).
    Plus, as soon as a new variable is added, devs should inform translators about it.
    (Ikonboard ended up in a mess because communication didn’t work, and translators had to compare their files before they could translate…)
    That’s it. ??
    Christian

    Making that 4 cents… ??

    any move here ?! nothing new since last month ?! else than the wiki, do we have echoes ?!… is the project integrate with 1.1 final, or we will wait for 1.2+ ???

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Localization: Two suggestions’ is closed to new replies.