2gis-maps
Version:
Interactive 2GIS maps API, based on Leaflet
50 lines • 5.29 kB
HTML
<h2 id="локализация">Локализация</h2><p><dl class="api-incut"><ul class="page-contents"><li><a href="#описание">Описание</a></li><li><a href="#dglocale">DG.Locale</a><ul><li><a href="#пример-использования">Пример использования</a></li></ul></dl></p>
<h3 id="описание">Описание</h3><p>API карт предоставляет возможность отображения элементов пользовательского интерфейса на нескольких языках.</p>
<p>По умолчанию задается такой же язык, как и у корневого тега html:</p>
<pre><code><html lang="it">
<head></head>
<body></body>
</html>
</code></pre><p>Если язык в корневом теге не указан, тогда будет использоваться язык по умолчанию — русский.</p>
<p>Получить или динамически изменить язык можно с помощью соответствующих методов карты
<a href="/doc/maps/ru/manual/map#map-getlang">getLang</a> и <a href="/doc/maps/ru/manual/map#map-setlang">setLang</a>:</p>
<pre><code>map.setLang('it');
map.getLang(); // вернет 'it'
</code></pre><p>или проинициализировав карту со следующей опцией <a href="/doc/maps/ru/manual/map#map-currentlang">currentLang</a>.</p>
<p>На данный момент поддерживаются следующие языки:</p>
<ul class="list-v-disc">
<li><div class="restore-color">en — английский;</div></li><li><div class="restore-color">ru — русский;</div></li><li><div class="restore-color">it — итальянский;</div></li><li><div class="restore-color">cs — чешский;</div></li><li><div class="restore-color">es — испанский;</div></li><li><div class="restore-color">ar — арабский.</div></li></ul>
<h3 id="dglocale">DG.Locale</h3><p>Осуществляет <a href="/doc/maps/ru/manual/dg-locale">перевод пользовательского интерфейса</a>.</p>
<p>Добавляет в карту два метода: <a href="/doc/maps/ru/manual/map#map-setlang">setLang</a> и
<a href="/doc/maps/ru/manual/map#map-getlang">getLang</a>. Также имеется объект DG.Locale, который можно подмешать
в любой <a href="/doc/maps/ru/manual/dg-external-modules">внешний модуль</a>, после чего в нем появится метод t,
с помощью которого можно осуществить перевод. Классы модулей, к которым примешивается DG.Locale должны
содержать внутри себя свойство <code>_map</code> и статическое свойство <code>Dictionary</code>.</p>
<p>Базовым для всех словарей является словарь <code>DG.Dictionary</code>, в котором хранятся правила перевода слов во
множественные формы (plural rules). При создании модуля, использующего свои словари, необходимо их разместить
в папке lang. К примеру, если вы будете использовать итальянский и русский языки, тогда необходимо создать
файлы <code>lang/it.js</code> и <code>lang/ru.js</code>. Примеры создания словарей рассмотрены ниже.</p>
<h4 id="пример-использования">Пример использования</h4><p>Подмешивание (mixin) возможности локализации в модуль:</p>
<pre><code>DG.LocaleExample = DG.Control.extend({
includes: DG.Locale,
statics: {
Dictionary: {}
}
...
}
</code></pre><p>Подписка на событие langchange:</p>
<pre><code>this._map.on('langchange', this._updateText, this);
</code></pre><p>Перевод строки на текущий язык карты:</p>
<pre><code>container.innerHTML = this.t("{n} people", 16700000) + ' ' + this.t("regularly use 2GIS");
</code></pre><p>Создание собственных словарей на итальянском и русском языках:</p>
<p>Cодержимое файла lang/it.js:</p>
<pre><code>DG.LocaleExample.Dictionary.it = DG.extend({
"{n} people" : ["{n} utente", "{n} utenti"],
"regularly use 2GIS" : "utilizzano regolarmente 2GIS"
}, DG.Dictionary.it);
</code></pre><p>Cодержимое файла lang/ru.js:</p>
<pre><code> DG.LocaleExample.Dictionary.ru = DG.extend({
"{n} people" : ["{n} пользователь", "{n} пользователя", "{n} пользователей"],
"regularly use 2GIS" : "регулярно используют 2GIS"
}, DG.Dictionary.ru);
</code></pre>