我正在使用Angular Translate。這是翻譯一個字符串的最簡單方法,其中一個單詞必須根據單數還是複數變化?像「添加10分」和「添加1分」?角度翻譯:如何處理單數和複數單詞?
1
A
回答
1
角度翻譯已經具備此功能。本頁有說明和示例:http://angular-translate.github.io/docs/#/guide/14_pluralization
+0
我遇到過這個文檔,但無法看到我如何將它轉換成我的需求。你能給我一個小例子嗎? – dhrm 2015-03-19 11:36:47
0
從頁面示例中,我嘗試過使用「消息格式」,但添加插值操作會使我的代碼無法工作。問題是在這一行:
$translateProvider.addInterpolation('$translateMessageFormatInterpolation');
雖然這不是最優雅的方式得到它,它的工作原理:
app.js
var app = angular.module('myApp', ['pascalprecht.translate']);
app.config(['$translateProvider', function ($translateProvider) {
$translateProvider.preferredLanguage('en');
//$translateProvider.addInterpolation('$translateMessageFormatInterpolation');
$translateProvider.translations('en', {
POINTS1: '{{val}} point added',
POINTSN:'{{val}} points added',
POINTS: '{NUM, select, one{point} morethanone{points}} added.'
});
$translateProvider.translations('es', {
POINTS1: '{{val}} punto añadido',
POINTSN:'{{val}} puntos añadidos',
POINTS: '{NUM, select, one{punto} morethanone{puntos} añadidos.'
});
}]);
app.controller('Ctrl', ['$translate', '$scope', function ($translate, $scope) {
$scope.points = 10;
$scope.one_point = function() {
return points === 1;
};
$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};
}]);
的index.html
<!doctype html>
<html ng-app="myApp">
<head>
<!--script src="http://getbootstrap.com/2.3.2/assets/js/bootstrap-dropdown.js"></script-->
<script src="http://rawgithub.com/SlexAxton/messageformat.js/master/messageformat.js"></script>
<script src="http://rawgithub.com/SlexAxton/messageformat.js/master/locale/de.js"></script>
<script src="http://rawgithub.com/SlexAxton/messageformat.js/master/locale/fr.js"></script>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script src="http://rawgithub.com/angular/bower-angular-cookies/master/angular-cookies.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate/master/angular-translate.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate-interpolation-messageformat/master/angular-translate-interpolation-messageformat.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate-storage-cookie/master/angular-translate-storage-cookie.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate-storage-local/master/angular-translate-storage-local.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate-loader-static-files/master/angular-translate-loader-static-files.min.js"></script>
<script src="http://rawgithub.com/angular-translate/bower-angular-translate-handler-log/master/angular-translate-handler-log.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<div ng-show="Ctrl.one_point()">
<p translate="POINTS1" translate-values="{ val: {{points}} }"></p>
</div>
<div ng-show="!Ctrl.one_point()">
<p translate="POINTSN" translate-values="{ val: {{points}} }"></p>
</div>
<button ng-click="changeLanguage('es')" translate="BUTTON_LANG_ES"></button>
<button ng-click="changeLanguage('en')" translate="BUTTON_LANG_EN"></button>
</div>
</body>
</html>
相關問題
- 1. 如何在翻轉的Y軸角度處理翻譯矩陣
- 2. 如何從java翻譯器中獲取翻譯的單詞?
- 3. 角度翻譯和分頁
- 4. 如何通過百度翻譯多個單詞/句子
- 5. 試圖解決單詞和翻譯的數據庫模型?
- 6. Django法語翻譯 - 如何處理翻譯字符串中的單引號?
- 7. 如何處理翻譯PSEUDO_LANGUAGE和Xcode
- 8. 翻譯角度數據表頭
- 9. 角度翻譯十進制數
- 10. 角度翻譯:翻譯動態值
- 11. 角度翻譯更新翻譯表
- 12. 如何加載JSON數組以翻譯AngularJS網頁與角度翻譯
- 13. 如何使用翻譯斗篷修復角度翻譯FOUC問題?
- 14. 如何使用角度翻譯翻譯頁面標題的值?
- 15. 如何禁用角度翻譯警告?
- 16. 如何在用戶選擇網站中的單詞時翻譯單詞?
- 17. Joomla翻譯文件不會翻譯所有單詞
- 18. 號碼翻譯最多999999999到單詞
- 19. 如何規範化數據庫表中有複數和單數的單詞?
- 20. 估算日語源英文翻譯單詞數量的算法
- 21. 角度翻譯vs ng-i18next
- 22. 角度翻譯顯示鍵
- 23. 如何處理與內嵌HTML角翻譯
- 24. 單/複數搜索和詞幹
- 25. 在搜索引擎中搜索單數和複數的單詞
- 26. MySQL MATCH-AGAINST複數單詞?
- 27. 角度翻譯單元測試 - 無法注入$ translateProvider
- 28. 如何處理ActiveModel的翻譯?
- 29. 單詞和朋友:如何確定單詞強度
- 30. 如何翻譯JS中的單詞/表達式?
你可以隨時嘗試更多的你像「添加點數:5」這樣的通信消息。也許這不是你想要的解決方案,但它很粗糙,準備就緒。 – 2015-03-19 10:21:27