gpt4 book ai didi

javascript - Angular 翻译未知 $translateProviderProvider

转载 作者:行者123 更新时间:2023-11-27 23:56:17 25 4
gpt4 key购买 nike

这是我的场景:我有一个 Ionic 项目,我会使用 Angular-Translate 进行国际化。所以我包含了 angular-translate.min.js:

<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/angular-translate.min.js"></script>
<script src="js/app.js"></script>
<script src="cordova.js"></script>

这是正文的一部分:

<body ng-app="todo" ng-controller="TodoCtrl">
<ion-side-menus>
<!-- Center content -->
<ion-side-menu-content>
<a href="#chooseBtn" class="button button-icon">
<i class="icon ion-ios-help-outline "></i>
</a>
<h1 class="title" ng-click="test(activeProject.tasks.length)" translate="TITLE">Tap to choose!</h1>
...

这是我的 app.js 文件的一部分:

var app = angular.module('todo', ['ionic', 'pascalprecht.translate']).config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {
TITLE: "Tap here to choose!"
});
$translateProvider.translations('it', {
TITLE: "Tocca qui per scegliere!"
});
}]);


app.factory('Projects', function () {
return {
...
}
});

app.controller('TodoCtrl', function ($scope, $timeout, $ionicModal, Projects, $ionicSideMenuDelegate, $location, $anchorScroll, $ionicScrollDelegate, $ionicPopup, $translateProvider) {
$scope.ChangeLanguage = function (lang) {
$translateProvider.use(lang);
};

$timeout(function () {
$scope.ChangeLanguage("it");
});
});

当我运行该项目时,浏览器抛出此异常:

Error: [$injector:unpr] Unknown provider: $translateProviderProvider <- $translateProvider <- TodoCtrl
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=%24translateProviderProvider%20%3C-%20%24translateProvider%20%3C-%20TodoCtrl
at REGEX_STRING_REGEXP (ionic.bundle.js:8895)
at ionic.bundle.js:13089

如何解决?

最佳答案

我在我的项目中使用了 Angular 翻译。

  1. https://github.com/angular-translate/angular-translate 下载 Angular 翻译
  2. 首先包括<script src="scripts/angular-translate.min.js"></script>在你的index.html中。
  3. 在项目中创建包含所有需要翻译的变量的语言 JSON 文件。注意:每种语言都有其特定的文件。例如:

    en.json {"email":"Email"}, ja.json {"email":"电子メール"}

  4. 在您的 app.js 中注入(inject) pascalprecht.translate在你的模块中。

  5. 在 app.js 中添加: `$translateProvider.useStaticFilesLoader({ prefix: 'app/languages/',//我所有的 JSON 语言文件都存储在其中 后缀:'.json'});

  6. 在您的 app.js 中添加您的翻译提供商 $translateProvider.preferredLanguage("en");
    $translateProvider.fallbackLanguage("en");

  7. $ionicPlatform.ready添加此代码以在设备准备就绪时检测语言:

    if (typeof navigator.globalization !== "undefined") {
    navigator.globalization.getPreferredLanguage(function (language) {
    var language_list = { "French": "es", "English": "en", "Spanish": "es", "Chinese": "zh", "Japanese": "ja" };
    var language_value = (language.value).split(/[\s,-]+/)[0];

    if (language_list.hasOwnProperty(language_value)) {
    var language_locale = language_list[language_value];
    $translate.use(language_locale).then(function (data) {
    console.log("SUCCESS -> " + data);
    }, function (error) {
    console.log("ERROR -> " + error);
    });
    }
    }, null);
    }
  8. 在您看来添加:
<div class="list">
<div class="item item-divider">
{{"language_settings" | translate}}
</div>
<label class="item item-radio">
<input type="radio" name="group" ng-model="language" value="en" ng-change="setLanguage(language)">
<div class="item-content">
English
</div>
<i class="radio-icon ion-checkmark"></i>
</label>
<label class="item item-radio">
<input type="radio" name="group" ng-model="language" value="ja" ng-change="setLanguage(language)">
<div class="item-content">
日本語
</div>
<i class="radio-icon ion-checkmark"></i>
</label>
</div>
  • 在您的语言 Controller 中添加以下内容:
  • app.controller('SettingsController', ['$scope', '$translate', function ($scope, $translate) {
    $scope.getLanguage = function () {
    return $translate.use();
    }
    $scope.language = $scope.getLanguage();
    $scope.setLanguage = function (language_value) {
    $translate.use(language_value).then(function (data) {
    console.log("SUCCESS -> " + data);
    }, function (error) {
    console.log("ERROR -> " + error);
    });


    }
    }]);

    仅此而已。如果您有任何疑问,请随时问我。

    干杯。

    关于javascript - Angular 翻译未知 $translateProviderProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32245416/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com