What to use for localization (php/smarty/pear application)?

后端 未结 2 1652
孤街浪徒
孤街浪徒 2021-01-15 16:44

I have a php/smarty/pear app that has it\'s own localization implementation that involves using ids for strings and the strings are stored in a db. currently the app is only

相关标签:
2条回答
  • 2021-01-15 17:10

    I would use gettext, since it's a mature system and provides features like singular/plural versions of translations. To be not dependant on the availability of the php extension, you should fall back to http://launchpad.net/php-gettext which provides a pure php implementation of gettext.

    gettext has also the big advantage that dozens of tools exist that make it easy to translate those files.

    0 讨论(0)
  • 2021-01-15 17:10

    My best advice is to look at how other apps (Drupal, Joomla, Wordpress) handle localization, and implement something similar.

    A few of the apps I have delved into have a single ini file for each language that contains STRING-ID="String Value" definitions, where the STRING-ID is similar to a PHP CONSTANT name. These files are then loaded by a localization class, which has functions that handle setting the language to be used (based on a config value or user setting), loading the file, and handle the translation of the STRING-ID into the String Value. You would end up using it like this:

    <?php
    // config.php
    $lang = "DE";
    
    // languages/de.ini
    HELLOWORLD="Hallo Welt"
    OTHERSTRING="Anderer String"
    
    // example.php
    require_once("classes/localization.class.php");
    $localize = localization::getInstance();
    echo $localize->translate("HELLOWORLD");
    ?>
    

    This should produce something like Hallo Welt.

    0 讨论(0)
提交回复
热议问题