как создать файл языка для текста в файлах JavaScript?

Как упомянуто, ленивая загрузка и задержанное выполнение

, Как LINQ к Объектам и LINQ к XML (IEnumerable) отличаются от LINQ до SQL (IQueryable)

КАК для создания Уровня доступа к данным, Бизнес-Слоя и Уровня представления с LINQ во всех слоях.... и хорошем примере.

8
задан mrblah 27 October 2009 в 02:10
поделиться

3 ответа

Создайте литерал объекта:

var messages = {
    welcome: "Welcome",
    goodbye: "Goodbye",
    error: "Something bad happend. Sowwy!"
};

На который вы затем можете ссылаться, например:

if (error) alert(messages.error);


Это отлично работает, если вы хотите реализовать несколько языков. Что я обычно делаю, так это включаю файл на стороне сервера, который отображает объект «сообщений» в соответствии с языком, выбранным в конфигурации приложения, или в соответствии с культурой пользовательского интерфейса (в случае ASP.NET).

Вот как вы могли бы использовать его, в строке:

<head>
    <!-- messages.aspx renders out the object literal -->
    <script type="text/javascript" src="messages.aspx"></script>

    <script type="text/javascript">

        /* when messages.aspx is included it provides you with an object literal
           as a global variable. The example below would alert "Something bad
           happend. Sowwy!" */

        if (error) alert(messages.error);

    </script>
</head>


Изящная вещь в использовании литерала объекта заключается в том, что код более подробный. Вместо того, чтобы использовать массив, например: alert (messages [0]) , вы делаете это: alert (messages.error) , что является немного более пояснительным.

примечание: все ваши сообщения определены в одном объекте, вместо того, чтобы быть определенным набором переменных, что позволяет избежать загрязнения глобального пространства имен.


В JavaScript вы можете изменять объекты во время выполнения. Поэтому, если вы хотите добавить к объекту больше сообщений, позже в коде, вы просто сделаете это:

messages.newMessageAddedLaterOnInTheCode = "This is a new message";
17
ответ дан 5 December 2019 в 07:11
поделиться

Я вижу, что другие рассказали вам, как сохранить его в файле JS (как вы и просили). Но могу ли я предложить вам вместо этого сохранить его в файле XML? Управлять им несколько проще (IMO).

Создайте XML-файл с такими записями:

<text id="welcome_to_site">Welcome to our site!</text>
<text id="come_back_soon">Come back soon!</text>

Затем вы можете легко получить весь нужный текст в своем обычном JS / jQuery:

var text = new Object();
$.ajax({
    async: false,
    type: 'GET',
    url: 'text.xml',
    dataType: "xml",
    success: function(xml){
        $(xml).find('text').each(function(){
            text[$(this).attr('id')] = $(this).text();
        });
    }
});

И вызвать некоторые text, это так просто:

alert (text ['welcome_to_site']);

И вы всегда можете легко изменить его в XML-файле: добавить текст, удалить текст, отредактировать текст. Все очень просто. Это также помогает разделить ваш дизайн и открывает двери для вас, позволяя другим редактировать текст, которые иначе не смогли бы сделать, если бы им пришлось сортировать кучу JavaScript.

5
ответ дан 5 December 2019 в 07:11
поделиться

Один из способов сделать это - добавить на страницу отдельный js-файл, который фактически указывает на серверный скрипт. Затем этот скрипт может отображать нужные вам строки следующим образом:

var STRINGS = {'greeting': "Hello", 'error': "Something went wrong"};

А на вашей веб-странице укажите следующее:

Мы делаем это для http://addons.mozilla.org здесь: http://addons.mozilla.org/en-US/firefox/pages/js_constants.js

1
ответ дан 5 December 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: