Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度多语言应用程序_Javascript_Json_Angularjs_Translate - Fatal编程技术网

Javascript 角度多语言应用程序

Javascript 角度多语言应用程序,javascript,json,angularjs,translate,Javascript,Json,Angularjs,Translate,我正在尝试创建一个多语言的Angular应用程序。我想使用角度平移,但我不明白它是如何工作的。我有一个json,我使用$http.get获取,接收到的数据我将其写入$scope并使用ng repeat等在视图中输出数据。如何使用translate输出数据?我希望从json文件中获得翻译,并尽可能使用与示例中相同的json结构。寻求建议 角度应用程序 (function(){ var app = angular.module('webApp', []); app.control

我正在尝试创建一个多语言的Angular应用程序。我想使用角度平移,但我不明白它是如何工作的。我有一个json,我使用$http.get获取,接收到的数据我将其写入$scope并使用ng repeat等在视图中输出数据。如何使用translate输出数据?我希望从json文件中获得翻译,并尽可能使用与示例中相同的json结构。寻求建议

角度应用程序

(function(){

    var app = angular.module('webApp', []);

    app.controller('InfoCtrl', function($scope, $http){
        $scope.services = [];
        $scope.gallery = [];
        $scope.clients = [];


        $http.get('assets/translations/translate.json').success(function(data) { 
            // console.log("success!");

            $scope.services = data[0].services;
            $scope.gallery = data[1].gallery;
            $scope.clients = data[2].clients;
    });  

    });

})();
JSON

不同
$scope
阵列的示例视图

<div class="service-wrapper">
    <div class="service" ng-repeat='service in services'>
        <h2><i class="fa fa-{{service.icon}}"></i>{{service.title}}</h2>
        <p>{{service.description}}</p>
    </div>                      
</div>

<div class="gallery-wrapper">
    <a class="gallery-img" href="assets/images/gallery/{{image.image}}" data-lightbox="work" ng-repeat='image in gallery'><img ng-src="assets/images/gallery/{{image.image}}" alt="Image"></a>
</div>

<div class="client-unit" ng-class="{'active-client': $first}" ng-repeat='client in clients'>

    <figure class="client-face">
        <img ng-src="assets/images/clients/{{client.image}}" alt="client-face">

        <figcaption>
            <strong class="client-name">{{client.name}}</strong>
            <em class="client-title">{{client.title}}</em>
        </figcaption>

    </figure>

    <div class="client-content">
        <p>{{client.review}}</p>
    </div>
</div>

{{service.title}}
{{service.description}

{{client.name} {{client.title} {{client.review}


角度翻译可以帮助您国际化客户端字符串

它是如何工作的 简而言之,您必须向$translationProvider提供包含您的翻译的json:

$translateProvider.translations('en', {
    'home.title': 'Welcome in my app',
    'button.cancel': 'Cancel'
});
然后使用“平移”过滤器:

<h1>{{'home.title' | translate}}</h1>
<h1>{{::'home.title' | translate}}</h1> <!-- one-time binding with angular 1.3+ -->
{{'home.title'| translate}
{{::'home.title'| translate}
还是指令

<h1 translate="home.title"></h1>
<h1 translate>home.title</h1>

home.title
就性能而言,您更喜欢最后三种语法中的一种。第一个是
{{'home.title'| translate}}
,它将监视程序保存在内存中。 有关角度平移的其他功能,请参阅文档。这是指南


翻译您发布的JSON字符串

看到您发布的json,我觉得您需要翻译一些特定于服务的字符串。他们的翻译应在后端完成,即服务器应根据所选语言返回翻译文本

<h1 translate="home.title"></h1>
<h1 translate>home.title</h1>