angular-translate 无法正确显示字符重音或变音符号 [英] angular-translate does not display character accent or umlaut correctly

查看:26
本文介绍了angular-translate 无法正确显示字符重音或变音符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始使用角度翻译.效果很好!

I started using angular-translate. Works great!

但是对于带有变音符号或重音符号或 ...(如 ü 或 ú 或 ñ)的字符,会显示翻译字符 .这些相同的字符值在 HTML 文本中正确显示并作为 AngularJS 变量显示.

But a translated character � is displayed for characters with umlaut or accent or ... (like ü or ú or ñ). These same character values are displayed correctly in HTML text and as AngularJS variables.

这是一个示例输出.html 文本和角度变量的输出正确显示.$translate 过滤器和指令的结果未显示正确的变音符号.

Here's a sample output. The output for html text and angular variable display correctly. The results from $translate filter and directive don't display the correct umlaut character.

html text - Und sie untersützt mehrere Sprachen!

html text - Und sie untersützt mehrere Sprachen!

角度变量 - Und sie untersützt mehrere Sprachen!

angular variable - Und sie untersützt mehrere Sprachen!

$translate 过滤器 - Und sie unters tzt mehrere Sprachen!

$translate filter - Und sie unters�tzt mehrere Sprachen!

$translate 指令 - Und sie unters tzt mehrere Sprachen!

$translate directive - Und sie unters�tzt mehrere Sprachen!

代码如下:

'use strict';

var translations =
{
    "TEST_DE": "Und sie untersützt mehrere Sprachen!",
    "TEST_ES": "Menú Señor"
};

angular.module('testApp', ['testApp.controllers', 'pascalprecht.translate'])
  .config(['$translateProvider', function($translateProvider) {

      $translateProvider.translations({
        TEST_DE: "Und sie untersützt mehrere Sprachen!",
        TEST_ES: "Menú Señor"
      });

}]);

angular.module('testApp.controllers', ['ui.bootstrap']);

这是 HTML:

<!doctype html>
<html lang="en" ng-app="testApp">
   <head>
     <meta charset="utf-8">

     <title>Test angular-translate</title>

   </head>

   <body ng-controller="testAppController">

     <!-- Declare the view/controller router -->
     <div ng-view></div>

     <!-- angular files -->
     <script src="angular.js"></script>
     <script src="angular-translate.js"></script>
     <script src="ui-bootstrap-tpls-0.4.0.js"></script>

     <!-- Application routing file -->
     <script src="app.js"></script>

     <!-- Application Controller -->
     <script src="testAppController.js"></script>


     <!-- Test translations -->
     <br />
     html text - Und sie untersützt mehrere Sprachen!
     <br />
     angular variable - {{ testPhraseDE }}
     <br />
     $translate filter - {{ 'TEST_DE' | translate }}
     <br />
     $translate directive - <a translate="TEST_DE"> </a>

     <br />

     <br />
     html text - Menú Señor
     <br />
     angular variable - {{ testPhraseES }}
     <br />
     $translate filter - {{ 'TEST_ES' | translate }}
     <br />
     $translate directive - <a translate="TEST_ES"> </a>

   </body>
</html>

推荐答案

快速的问题,但值得一问(因为我总是犯这个错误:))你确定你的 JS 文件是由你的服务器以 UTF-8格式?因为您的代码似乎没有任何问题.我什至在没有 这里的情况下让它工作.希望仅此而已.

Quick question but worth asking (as I always do this mistake :) ) are you sure that your JS file is saved and served by your server in an UTF-8 format? Because nothing seems wrong with your code. I even made it work without the � here. Hope it's only that.

这篇关于angular-translate 无法正确显示字符重音或变音符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆