@levchak0910
answer.correct ? press({correct: true}) : next()

Как получить доступ к переменной?

Привет.
Вопрос 1.
Не могу получить переменную используя модуль y18n для node.
Подскажите как правильно? Какой сепаратор должен быть ("user.name")?
en.json
{"hello": "Hello", "user": {"name": "David"}}
app.js
let y18n = require("y18n");
let str = y18n.__("hello") + " " + y18n.__("user.name");
console.log(str)

console
Ожидания: Hello David
Реальность: Hello user.name

Вопрос 2. Почему метод y18n.__ возвращает такую строку
en.json
{"house": {"flat": {"room": "kitchen"}}}
app.js
let y18n = require("y18n");
let house = y18n.__("house");
console.log(house); // {flat: {room: "kitchen"}}
console.log(typeof house); // string
console.log(JSON.parse(house)); // Error, Unexpected token h in JSON at position 2

Строка для парсинга должна быть {'flat': {'room': "kitchen"}}, а получается хоть что.
Конфиг опустил. Файл находит.
  • Вопрос задан
  • 258 просмотров
Решения вопроса 2
vitali1995
@vitali1995
Возможно, этот модуль поддерживает только одноуровневый словарь. В этом случае придётся записывать весь путь в один ключ:
{"hello": "Hello", "user.name": "David"}

Для преобразования объектов в такой словарь существуют специальные модули, например такой: dataobject-parser
Лучше поищите аналоги - кажется, я использовал вариант по-лучше.
Ответ написан
@levchak0910 Автор вопроса
answer.correct ? press({correct: true}) : next()
Короче используйте i18n-2 :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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