首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义:语言cakephp

自定义:语言cakephp
EN

Stack Overflow用户
提问于 2014-12-22 13:42:20
回答 1查看 211关注 0票数 1

我们成功地构建了一个多语言(NLD/DEU/ENG) cakephp网站(cakephp 2.3.6)。现在我们的客户希望我们把比利时语添加到他的网站上。代码列表不包含比利时语言的代码。它要么是杜特(荷兰语;佛兰德语),要么是fre (法语)。

但是没有这个url: example.com/dut/控制器/action

我们希望有以下内容:example.com/bel/控制器/action

是否可以使用“dut”,但在url中显示“bel”呢?还是有一种添加“自定义”语言的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-22 14:30:56

您需要使用标准代码的语言,比利时语言不存在(有三种官方语言,荷兰语,法语,德语)。但是,如果您有特定国家的本地化内容,则应该使用国家代码。

有些国家有一种以上的正式语文(比利时、瑞士、西班牙、波斯尼亚和黑塞哥维那.)。在这种情况下,您应该使用语言-国家代码的组合,因为您可以看到这里

您的URL应该如下所示:

德国国家和语言

www.example.com/de/

荷兰和荷兰语

www.example.com/nl/

比利时和官方语言

www.example.com/nl-be/ www.example.com/fr-be/

在您的AppController前过滤器中,放置一个开关语句,其中指定语言和本地化内容的规则。

编辑(添加示例)

代码语言:javascript
复制
    AppControler.php
public function beforeFilter()
{
    switch ($this->params['lang'])){
        // for nederland
        case: 'nl':
            Configure::write('Config.language', 'dut');
            $this->set('for_country','nl');
            break;
        // for germany
        case: 'de':
            Configure::write('Config.language', 'deu');
            $this->set('for_country','de');
            break;
        // for belgium / dutch speakers
        case: 'nl_be':
            Configure::write('Config.language', 'dut');
            $this->set('for_country','be');
            break;
        // for belgium / french speakers
        case: 'nl_fr':
            Configure::write('Config.language', 'fr');
            $this->set('for_country','be');
            break;
        // default english
        case: 'en':
            Configure::write('Config.language', 'eng');
            $this->set('for_country','us');
            break;
    }
}

PostsController.php

public function index ()
{
    // find all posts for country, example only content for Belgium in french
    // example.com/nl_fr/posts
    $options = array(
        'conditions' => array(
            'Post.localized' => $for_country
        )
    );
    $posts = $this->Post->find('all',$options);
    .......
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27603888

复制
相关文章

相似问题

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