首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TMX中使用默认语言

在TMX中使用默认语言
EN

Stack Overflow用户
提问于 2014-02-10 09:44:32
回答 1查看 219关注 0票数 0

我已经创建了一个应该被部分翻译成不同语言的应用程序。目前,我有一个TMX文件包含2种语言(英语和荷兰语)。它是在引导文件中这样设置的:

代码语言:javascript
复制
protected function _initTranslation(){
    $translate=new Zend_Translate(
            array(
                'adapter' => 'tmx',
                'content' => ROOT_DIR.'/translation/translation.tmx',
                'locale'  => 'nl'
            )
    );
    $locale=null;
    try{
        $locale=new Zend_Locale(Zend_Locale::BROWSER);
    }catch(Exception $e){
        $locale=new Zend_Locale('en');
    }
    if(in_array($locale->getLanguage(), $translate->getAdapter()->getList())){
        $translate->setLocale($locale);
    }else{
        $translate->setLocale(new Zend_Locale('en'));
    }
    Zend_Registry::set('trans', $translate);
}

现在有更多的语言,如丹麦语,法语等,应该添加,但并不是所有的字段都需要翻译。如果Zend无法找到特定键的翻译,是否可以选择一种语言作为默认值。

例如:

代码语言:javascript
复制
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE tmx SYSTEM "tmx14.dtd">
<tmx version="1.4">
    <header creationtoolversion="1.0.0" datatype="winres" segtype="sentence" adminlang="en-us" srclang="en-gb" o-tmf="abc" creationtool="XYZTool">
    </header>
    <body>
        <!-- login screen -->
        <tu tuid="login">
            <tuv xml:lang="en"><seg>login</seg></tuv>
            <tuv xml:lang="nl"><seg>inloggen</seg></tuv>
        </tu>
        <tu tuid="logout">
            <tuv xml:lang="en"><seg>logout</seg></tuv>
            <tuv xml:lang="nl"><seg>uitloggen</seg></tuv>
            <tuv xml:lang="da"><seg>logge ud</seg></tuv>
        </tu>
        <!-- some additional languages keys come here -->
    </body>
</tmx>

因为它是en-gb的。而来自丹麦的用户登录英文版应该显示为键登录。这能办到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-10 11:51:48

是的,使用Zend_Translate的路由选项(参见http://framework.zend.com/manual/1.12/ru/zend.translate.additional.html#zend.translate.additional.rerouting):

代码语言:javascript
复制
$translate = new Zend_Translate(
    array(
        'adapter' => 'tmx',
        'content' => ROOT_DIR.'/translation/translation.tmx',
        'locale'  => 'nl',
        'route'   => array('da' => 'en', 'fr' => 'en')
    )
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21673661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档