gpt4 book ai didi

javascript - Angular 翻译

转载 作者:行者123 更新时间:2023-11-28 00:35:10 30 4
gpt4 key购买 nike

在我的应用程序中,我想添加功能将页面翻译为用户在浏览器中设置的所有语言,如果没有可用的语言,则翻译为默认英语...问题是浏览器与语言支持不一致。我找到了一个解决方法,我对一些返回用户语言的 Web 服务进行 http 调用。它是在app.run中完成的

app.run(function($rootScope, UserDataService, $translate){

UserDataService.getUserBrowserLanguage().then(function(language){



var langArr = language.split(',').map(function(el){
return el.split(';')[0].split(/-|_/)[0];
});


$translate.fallbackLanguage(langArr)
$translate.preferredLanguage(langArr[0]);
$translate.use(langArr[0]);
});

});

并在应用程序配置中:

app.config(function ($routeProvider, $translateProvider) {

$translateProvider.useStaticFilesLoader({
prefix: '/languages/',
suffix: '.json'
});

});

部分因为我无法在配置中进行http调用并且失败...:/语言已加载但翻译未更改...我做错了什么?这是笨蛋:

http://plnkr.co/edit/41SngK2tCTeaq8IhMbcM

它不显示任何内容,没有翻译...为什么? :( 如果有任何帮助,我将非常高兴。

最佳答案

至于您的问题,由于以下错误, View 没有显示任何内容:

一些错误:首先,ng-app应该移动到html标签。

<html ng-app="translateApp">

其次,如果您使用 Controller 中的变量,则应该使用 ng-controller。

<div ng-controller="mainCtrl">

最后,当您将变量从 View 绑定(bind)到 Controller 时,该变量应该位于 $scope 上。

  $scope.translation = $translate.instant('GENERAL');

用我的评论修复了你的问题:Plunker .

至于$translate的工作方式,我不太熟悉这项服务,但我会尝试看看。

编辑:我研究了 $translate 服务,以便给你一个完整的答案,包括修复你使用 Translate 的方式,所以首先我在尝试使用 translate.instant 之前设置了 2 秒的超时,原因是我让 trans 加载配置中的 JSON 文件。

我添加了 2 个按钮,以便您可以在语言之间切换并查看它是否正常工作。

享受吧!这是更新后的工作Plunker 。这是翻译documentation我使用的网站。

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

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