web-dev-qa-db-ja.com

角度変換では、文字のアクセントまたはウムラウトが正しく表示されません

私はangular-translateを使い始めました。よく働く!

ただし、ウムラウトまたはアクセントまたは...(üまたはúまたはñなど)のある文字には、翻訳された文字�が表示されます。これらの同じ文字値は、HTMLテキストおよびAngularJS変数として正しく表示されます。

これがサンプル出力です。 HTMLテキストとangular変数の出力は正しく表示されます。$ translateフィルターとディレクティブの結果は正しいウムラウト文字を表示しません。

htmlテキスト-UndsieuntersütztmehrereSprachen!

角度変数-UndsieuntersütztmehrereSprachen!

$ translatefilter-Undsieunters�tztmehrereSprachen!

$ translateディレクティブ-Undsieunters�tztmehrereSprachen!

コードは次のとおりです。

'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>
13
user3108158

簡単な質問ですが、尋ねる価値があります(私はいつもこの間違いをします:))JSファイルが保存され、サーバーによってUTF-8形式で提供されていることを確認しますか?あなたのコードには何も問題がないように見えるからです。私はそれを� ここ なしで動作させました。それだけだといいのですが。

16
Nicolas ABRIC

私の場合、問題はEclipseSTSがUTF-8形式なしでJSONファイルを保存していたことでした。 Notepad ++を使用してJSONファイルとして保存しました。これで、アクセントと特殊文字がディレクティブに正しく表示されます。

4
Rafael Paredes