AngularJS + i18n локализация загрузки JSON с другого сервера

Мы используем угловые 1.2.16 и i18next 0.2.6 для разработки. В нашем приложении локализация отлично работает, когда JSON с того же сервера.

Теперь мы столкнулись с новым требованием - загружать строку ресурсов, т.е. файлы JSON, с другого контент-сервера. скажем, загрузите JSON из " http://mysite/locales/en-us/sample.json"

<head>
    <meta charset="utf-8"/>
    <title>i18next test</title>
    <script src="i18next.js"></script>
    <script src="angularjs/1.2.16/angular.min.js"></script>
    <script src="ngI18next.js"></script>

    <script>

    angular.module('jm.i18next').config(function ($i18nextProvider) {

            'use strict';

            $i18nextProvider.options = {
                lng: 'dev',
                useCookie: false,
                useLocalStorage: false,
                fallbackLng: 'dev',
                resGetPath: '../locales/__lng__/__ns__.json',
                ns: {
                    namespaces: ['messages', 'options'],
                    defaultNs: 'messages'
                }
            };

    });
    angular.module('MyApp', ['jm.i18next']).controller('MyProviderCtrl', function ($rootScope, $scope, $i18next) {
        $rootScope.$on('i18nextLanguageChange', function () {
            $scope.hello = $i18next('messages:header.name');
        });
    });
    </script>
</head>
<body ng-app="MyApp">
    <div ng-controller="MyProviderCtrl">
        <div>{{hello}}</div>
        <div ng-i18next="options:moment-i18n"></div>
        <div ng-i18next="messages:header.name"></div>
        <div ng-i18next="header.name"></div>
    </div>
</body>

Я попытался изменить resGetPath: '../locales/__lng__/__ns__.json' на resGetPath: ' http://mysite/locales/en-us/sample.json' загружающий JSON-файл с сервера, но не переводящий текст на UI.

Есть предложения как перевести?

1 ответ

Похоже, вы используете более старую версию http://i18next.com/. Поэтому я не уверен, что уже разрешена загрузка с других серверов (CORS).

Я бы предложил обновить его до текущей версии и включить доступ "кросс-домен" в бэкэнде: https://github.com/i18next/i18next-xhr-backend

Другие вопросы по тегам