npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@yamato-daiwa/es-extensions-localization-russian

v1.7.2

Published

Russian localization for @yamato-daiwa/es-extensions package.

Downloads

124

Readme

Русификация @yamato-daiwa/es-extensions

Установка

@yamato-daiwa/es-extensions-localization-russian имеет основной пакет (@yamato-daiwa/es-extensions) в качестве одноранговой зависимости (peer dependency), что означает необходимость его отдельной установки. Версии должны совпадать с точностью до минорной (число между двумя точками). Например, версия 1.5.0 пакета локализации @yamato-daiwa/es-extensions-localization-russian совместима с версиями @yamato-daiwa/es-extensions от 1.5.0 до любой, меньшей 1.6.0.

npm i @yamato-daiwa/es-extensions-localization-russian @yamato-daiwa/es-extensions -E

Подход

Локализация хотя и не содержит "тяжёлых" вычислений, но даёт дополнительный код, что критично для скриптов, которые будут выполняться в браузерной среде. Поэтому локализовать всё (даже то, что не использовано) - не рекомендуемый подход, когда речь идёт о подготовке скриптов к продакшену.

В связи в этим, на данный момент функциональности, полностью локализующей библиотеку не предлагается. См. "доступная функциональность" ниже о том, как и что из библиотеки @yamato-daiwa/es-extensions можно локализовать.

Локализованная функциональность основного пакета

Локализация класса RawObjectDataProcessor

Класс RawObjectDataProcessor можно локализовать как на время одного выполнения метода process, так и на всё время выполнения приложения. В любом случае понадобится объект локализации rawObjectDataProcessorLocalization__russian.

Для локализации на время одного выполнения метода process необходимо передать rawObjectDataProcessorLocalization__russian через свойство localization третьего параметра:

import { RawObjectDataProcessor } from "@yamato-daiwa/es-extensions";
import { rawObjectDataProcessorLocalization__russian } from "@yamato-daiwa/es-extensions-localization-russian";

type User = {
  ID: string;
  familyName: string;
  givenName: string;
};


const processingResult: RawObjectDataProcessor.ProcessingResult<User> = RawObjectDataProcessor.process(
  rawData, 
  {
    nameForLogging: "User",
    subtype: RawObjectDataProcessor.ObjectSubtypes.fixedKeyAndValuePairsObject,
    properties: { /* */ }
  },
  { localization: rawObjectDataProcessorLocalization__russian }
);

Для локализации на всё время выполнения приложения необходимо вызывать метод setDefaultLocalization:

import { RawObjectDataProcessor } from "@yamato-daiwa/es-extensions";
import { rawObjectDataProcessorLocalization__russian } from "@yamato-daiwa/es-extensions-localization-russian";


RawObjectDataProcessor.setDefaultLocalization(rawObjectDataProcessorLocalization__russian);

Локализация фасада Logger

Объект loggerLocalization__russian локализует только те строки, которые принадлежат непосредственно классу Logger (а таких немного), однако сообщения об ошибках должны быть локализованы отдельно (см. локализация классов ошибок для примера с готовыми классами ошибок этой той же библиотеки).

import { Logger } from "@yamato-daiwa/es-extensions";
import loggerLocalization__russian from "@yamato-daiwa/es-extensions-localization-russian";


Logger.setLocalization(loggerLocalization__russian);

Локализация классов ошибок

Объект, содержащий данные локализации конкретного класса ошибки, имеет имя согласно схеме

[ имя класса ошибки ]Localization__russian

Например, для AlgorithmMismatchError это будет algorithmMismatchErrorLocalization__russian. Имена всех доступных классов ошибок можно посмотреть в официальной документации.

Импортированный объект локализации следует присвоить открытому статическому полю localization соответствующего класса ошибки. Например, для AlgorithmMismatchError это будет:

import { AlgorithmMismatchError } from "@yamato-daiwa/es-extensions";
import { algorithmMismatchErrorLocalization__russian } from "@yamato-daiwa/es-extensions-localization-russian";

AlgorithmMismatchError.localization = algorithmMismatchErrorLocalization__russian;

Дополнительная функциональность

Константы и перечисления

Дата и время

Перечисление RussianDaysOfWeek

Перечисление, содержащее русские названия дней недели. Ключи перечисления совпадают с ключами DaysOfWeek.

console.log(RussianDaysOfWeek.sunday); // -> "ВОСКРЕСЕНЬЕ"
console.log(RussianDaysOfWeek.monday); // -> "ПОНЕДЕЛЬНИК"
console.log(RussianDaysOfWeek.tuesday); // -> "ВТОРНИК"
console.log(RussianDaysOfWeek.wednesday); // -> "СРЕДА"
console.log(RussianDaysOfWeek.thursday); // -> "ЧЕТВЕРГ"
console.log(RussianDaysOfWeek.friday); // -> "ПЯТНИЦА"
console.log(RussianDaysOfWeek.saturday); // -> "СУББОТА"
Перечисление RussianMonthsNames

Перечисление, содержащее русские названия месяцев. Ключи перечисления совпадают с ключами MonthsNames.

console.log(RussianMonthsNames.january); // -> "ЯНВАРЬ"
console.log(RussianMonthsNames.february); // -> "ФЕВРАЛЬ"
console.log(RussianMonthsNames.march); // -> "МАРТ"
console.log(RussianMonthsNames.april); // -> "АПРЕЛЬ"
console.log(RussianMonthsNames.may); // -> "МАЙ"
console.log(RussianMonthsNames.june); // -> "ИЮНЬ"
console.log(RussianMonthsNames.july); // -> "ИЮЛЬ"
console.log(RussianMonthsNames.august); // -> "АВГУСТ"
console.log(RussianMonthsNames.september); // -> "СЕНТЯБРЬ"
console.log(RussianMonthsNames.october); // -> "ОКТЯБРЬ"
console.log(RussianMonthsNames.november); // -> "НОЯБРЬ"
console.log(RussianMonthsNames.december); // -> "ДЕКАБРЬ"