2016-05-31 45 views
0

我目前正在尝试将角度转换应用于我的项目。 这个问题是我不希望我的app.js被翻译填充,我宁愿将它放在一个翻译文件夹中的单独文件中。如何在单独的文件中获得角度转换

我的项目结构看起来是这样的:

wwwroot 
-- css 
-- images 
-- js 
--- controllers 
--- directives 
--- filters 
--- services 
--- app.js 
-- resources 
--- locale-nl.json 
--- translate.js 
-- views 

我app.js看起来simular这样:

angular.module('testApp', ['ngRoute', 'ngResource', 'ui.bootstrap', 'ngAnimate', 'angular-loading-bar', 'smart-table', 'pascalprecht.translate']); 

我translate.js文件看起来像这样:

angular.module("testApp").config([ 
    "$translateProvider", function ($translateProvider) { 
     $translateProvider.useLocalStorage(); 
     $translateProvider.useStaticFilesLoader({ 
      prefix: "resources/locale-", 
      suffix: ".json" 
     }); 
     $translateProvider.preferredLanguage("nl"); 
    } 
]); 

locale-nl.json如下所示:

{ 
    "FOO": "This is a paragraph", 
    "TITLE": "Helloooo" 
} 

在我的main.html中我有一个正常的平移值:

{{ 'TITLE' | translate }} 

,在我mainController我有这样的:

"use strict"; 

angular.module("testApp") 
    .controller("MainController", function ($scope, $translate, userRole) { 
     var vm = this; 
     vm.role = userRole; 
     console.log(vm.role); 
    }); 

,但似乎没有得到翻译,并没有看在不同的文件。

+0

我使用'$ translatePartialLoader'所以不完全一样的东西,但在文件中我可以使用'folder/fileBegining- {lang} .json',它会自动替换'{lang}'。 请注意,该语言可以在语言环境(例如:'en_GB'语法) – Neozaru

+0

有可能向我展示一些代码如何实现这一目标?除了在我的json网址中有一个变量,我的技术还有另一个区别吗? –

回答

0

添加registerAvailableLanguageKeys你的代码,根据所公布各静态文件的语言键:

angular.module("testApp").config([ 
    "$translateProvider", function ($translateProvider) { 
     $translateProvider.useLocalStorage(); 
     $translateProvider.registerAvailableLanguageKeys(['en', 'de', 'nl',  
     etc..]); 
     $translateProvider.useStaticFilesLoader({ 
      prefix: "resources/locale-", 
      suffix: ".json" 
     }); 
     $translateProvider.preferredLanguage("nl"); 
    } 
]); 
+0

添加到?应该删除其他内容吗?如果你将一个包含该行的完整功能包含在其中,这将更加清晰。这样,没有人会猜测你的意思 – Thatkookooguy

+0

我试过你的解决方案,但由于某种原因,我的单词stil不会被翻译。我没有收到任何错误消息, –

+0

可以在代码中显示您使用'$ translateLocalStorage'吗? – AranS

0

在我一饮而尽文件包括我从我的js文件夹中的所有我.js文件。 translate.js位于我的js文件夹之外。
我移动了我的js文件夹中的translation.js,现在它正在工作。

相关问题