如何以最小的手表影响翻译我的角度应用程序?

时间:2014-08-13 20:53:58

标签: angularjs localization

如何以最小的手表影响翻译我的角度应用程序?

以下是我的想法(但是我满足手表影响标准的任何事情) - 是否有一个现有的库,它将.html个文件作为输入,提取需要转换为模板的字符串(理想情况下为.resx文件,但任何具有键/值/注释的格式都可以转换为资源文件),可以通过手工/外包进行翻译,然后同一个库获取本地化模板和原始输入.html文件,并生成本地化的.html文件?这是我可以考虑进行本地化而不会为每个翻译短语生成额外手表的唯一方法。 (当然我可以自己写这个,但是我习惯于选择社区支持的解决方案来解决我更容易出错的错误库。)

我可以安全地假设用户不会在运行时更改他或她的语言环境偏好(能够在运行时更改语言是我通过翻译指令引入手表的唯一优势和文件中的过滤器,如angular-translate和angular-gettext)。

输入后,库可以使用插值和过滤器,在.config()块中指定本地化,然后让手表只触发一次。那是可以接受的。

1 个答案:

答案 0 :(得分:0)

是的,有一个可以减少手表影响的库,bindonce然后您可以在plunkr demo找到演示

BindOnce可以像这样使用:

        <tr bindonce ng-repeat="person in Persons" bo-class="            {'male':person.gender=='M','female':person.gender=='F'}">
            <td bo-bind="$index + 1"></td>
            <td><img bo-src="person.picture" /></td>
            <td bo-bind="person.firstname"></td>
            <td bo-bind="person.lastname"></td>
            <!-- BAD PRACTICE FOR STYLE ON PURPOSE: Using a function as binder is not good -->
            <td><span bo-bind="person.age" bo-style="ageColor(person.age)" style=""></span></td>
            <td bo-bind="person.gender"></td>
            <td>
                <a bo-href="person.url">
                    <spam bo-bind="(person.url)?'link':'missing'" bo-class="{'label label-important':!person.url}"></spam>
                </a>
            </td>
        </tr>