angularjs – 使用参数进行角度转换
发布时间:2020-12-17 17:26:45 所属栏目:安全 来源:网络整理
导读:我试图使用angular-translate“翻译”我的角度应用程序. 但是我被复数形式的翻译所困扰. index.html包括: script src="assets/libs/angular-1.5.7/angular.js"/scriptscript src="assets/libs/angular-1.5.7/angular-message-format.js"/scriptscript src="
我试图使用angular-translate“翻译”我的角度应用程序.
但是我被复数形式的翻译所困扰. index.html包括: <script src="assets/libs/angular-1.5.7/angular.js"></script> <script src="assets/libs/angular-1.5.7/angular-message-format.js"></script> <script src="assets/libs/message-format-1.0.0-rc3/messageformat.js"></script> <script src="assets/libs/angular-translate-2.11.1/angular-translate.js"></script> <script src="assets/libs/angular-translate-2.11.1/angular-translate-loader-static-files.js"></script> <script src="assets/libs/angular-translate-2.11.1/angular-translate-interpolation-messageformat.js"></script> 然后,我配置角度转换: angular.module('app').config(['$translateProvider',function ($translateProvider) { // Language files folder definition $translateProvider.useStaticFilesLoader({ prefix: 'app/resources/locale-',suffix: '.json' }); // Default language $translateProvider.preferredLanguage('fr_FR'); // TODO does logging missing key to console should be activated in production? $translateProvider.useMissingTranslationHandlerLog(); //$translateProvider.useMessageFormatInterpolation(); // Force not using sanitizer (to avoid security warning) $translateProvider.useSanitizeValueStrategy(null); }]) 然后,我在静态文件中定义一些翻译键: { "drivers.results.noresult" : "No result","drivers.results.oneresult" : "One result","drivers.results.nresults" : "{{length}} results" } 我尝试使用复数语法翻译消息: {{ nbResults,plural,=0 { {{'drivers.results.noresult' | translate}} } =1 { {{'drivers.results.oneresult' | translate}} } other { {{'drivers.results.nresults' | translate:'{length: nbResults }' }} } }} 当nbResults = 0或1时,一切正常,我得到了正确的信息. 注意:如果我将最后一行更改为 other { {{'drivers.results.nresults' | translate:'{length: 10 }' 我收到了10条结果的消息. 解决方法
我终于找到了这个问题的解决方案.
所以语言键仍然是: "drivers.results.nresults" : "{{length}} results" 静态参数 这与静态值工作正常:(注意简单的引号) {{ nbResults,=0 { {{'drivers.results.noresult' | translate}} } =1 { {{'drivers.results.oneresult' | translate}} } other { {{'drivers.results.nresults' | translate:'{length: 123 }' }} } }} 动态参数 但如果我想要一些动态的东西,我需要写这个(没有引用): {{ nbResults,=0 { {{'drivers.results.noresult' | translate}} } =1 { {{'drivers.results.oneresult' | translate}} } other { {{'drivers.results.nresults' | translate:{length: nbResults } }} } }} 它将正确替换翻译中的长度参数! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |