UNPKG

2gis-maps

Version:

Interactive 2GIS maps API, based on Leaflet

50 lines 5.29 kB
<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>&lt;html lang=&quot;it&quot;&gt; &lt;head&gt;&lt;/head&gt; &lt;body&gt;&lt;/body&gt; &lt;/html&gt; </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(&#39;it&#39;); map.getLang(); // вернет &#39;it&#39; </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 &mdash; английский;</div></li><li><div class="restore-color">ru &mdash; русский;</div></li><li><div class="restore-color">it &mdash; итальянский;</div></li><li><div class="restore-color">cs &mdash; чешский;</div></li><li><div class="restore-color">es &mdash; испанский;</div></li><li><div class="restore-color">ar &mdash; арабский.</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(&#39;langchange&#39;, this._updateText, this); </code></pre><p>Перевод строки на текущий язык карты:</p> <pre><code>container.innerHTML = this.t(&quot;{n} people&quot;, 16700000) + &#39; &#39; + this.t(&quot;regularly use 2GIS&quot;); </code></pre><p>Создание собственных словарей на итальянском и русском языках:</p> <p>Cодержимое файла lang/it.js:</p> <pre><code>DG.LocaleExample.Dictionary.it = DG.extend({ &quot;{n} people&quot; : [&quot;{n} utente&quot;, &quot;{n} utenti&quot;], &quot;regularly use 2GIS&quot; : &quot;utilizzano regolarmente 2GIS&quot; }, DG.Dictionary.it); </code></pre><p>Cодержимое файла lang/ru.js:</p> <pre><code> DG.LocaleExample.Dictionary.ru = DG.extend({ &quot;{n} people&quot; : [&quot;{n} пользователь&quot;, &quot;{n} пользователя&quot;, &quot;{n} пользователей&quot;], &quot;regularly use 2GIS&quot; : &quot;регулярно используют 2GIS&quot; }, DG.Dictionary.ru); </code></pre>