Skip to content

Commit

Permalink
Merge pull request #797 from ilyhalight/rework-l10n
Browse files Browse the repository at this point in the history
Rework l10n
  • Loading branch information
ilyhalight authored Sep 7, 2024
2 parents 3717475 + a36521a commit b456dbc
Show file tree
Hide file tree
Showing 100 changed files with 1,305 additions and 761 deletions.
67 changes: 43 additions & 24 deletions .webpack/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,45 @@ import {
} from "vot.js/alternativeUrls";
import configShared from "./config.shared.js";

const repo =
"https://raw.githubusercontent.com/ilyhalight/voice-over-translation";
import { repositoryUrl, contentUrl } from "../src/config/config.js";

const dev = process.env.NODE_ENV === "development";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.resolve(path.dirname(__filename), "..");
const localesDir = path.resolve(__dirname, "src", "localization", "locales");
const priorityLocales = ["auto", "en", "ru"];

let isBeta = getHeaders().version.includes("beta");
const availableLocales = getAvailableLocales();

console.log("development mode: ", dev);

function getHeaders(lang) {
const headersPath = path.resolve(
__dirname,
"src",
lang ? `locales/${lang}` : "",
"headers.json",
);
const headersPath = lang
? path.resolve(localesDir, "headers", lang)
: path.resolve(__dirname, "src", "headers.json");
return JSON.parse(fs.readFileSync(headersPath).toString());
}

function getAvailableLocales() {
const files = fs.readdirSync(localesDir);
const locales = files.reduce((result, file) => {
if (!file.endsWith(".json")) {
return result;
}

const locale = file.replace(".json", "");
if (priorityLocales.includes(locale)) {
return result;
}

result.push(locale);
return result;
}, []);

return [...priorityLocales, ...locales];
}

export default (env) => {
const build_type = env.build_type;
console.log("build type: ", build_type);
Expand Down Expand Up @@ -82,23 +102,25 @@ export default (env) => {
resolve: path.resolve(__dirname, "src", "headers.json"),
transform({ meta }) {
const extFileName = getFilename().slice(0, -8);
const finalURL = `${repo}/${
const finalURL = `${contentUrl}/${
isBeta ? "dev" : "master"
}/dist/${extFileName}.user.js`;

meta.namespace = extFileName;
meta.homepageURL = repositoryUrl;
meta.updateURL = meta.downloadURL = finalURL;

const files = fs.readdirSync(
path.resolve(__dirname, "src", "locales"),
);

meta.name = {
default: meta.name,
};

meta.description = {
default: meta.description,
meta.supportURL = `${repositoryUrl}/issues`;

const files = fs.readdirSync(path.resolve(localesDir, "headers"));
meta = {
...meta,
name: {
default: meta.name,
},
description: {
default: meta.description,
},
match: Array.from(new Set([...meta.match, ...altUrlsToMatch()])),
};

for (const file of files) {
Expand All @@ -109,10 +131,6 @@ export default (env) => {
meta.description[lang] = localeHeaders.description;
}

meta.match = Array.from(
new Set([...meta.match, ...altUrlsToMatch()]),
);

return meta;
},
},
Expand All @@ -127,6 +145,7 @@ export default (env) => {
new webpack.DefinePlugin({
DEBUG_MODE: dev,
IS_BETA_VERSION: isBeta,
AVAILABLE_LOCALES: JSON.stringify(availableLocales),
...(() => {
if (!dev) {
return {
Expand Down
12 changes: 12 additions & 0 deletions README-EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,18 @@ bunx patch-package --use-yarn vot.js

Do not use patches from the `bun patch` or from any npm packages. They will be incompatible with the patch-package, and may also break when updating the package.

### How to update localization files

For all interaction with localization files, the l10n-tui utility is made.

To call the utility, use the command:

```bash
bun l10n
```

You can read more about the utility [here](scripts/l10n-tui/README.md)

## Customization of appearance:

The extension supports customization of the appearance using Stylus, Stylish and other similar extensions
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,18 @@ bunx patch-package --use-yarn vot.js

Не пользуйтесь патчами из `bun patch` или из каких-либо npm пакетов. Они будут несовместимы с patch-package, а так же могут ломаться при обновлении пакета.

### Как обновлять файлы локализации

Для всего взаимодействия с файлами локализации сделана консольная утилита l10n-tui.

Для вызова утилиты используйте команду:

```bash
bun l10n
```

Подробнее о утилите можно прочитать [тут](scripts/l10n-tui/README.md)

## Кастомизация внешнего вида:

Расширение поддерживает кастомизацию внешнего вида с помощью Stylus, Stylish и других подобных расширений
Expand Down
Binary file modified bun.lockb
Binary file not shown.
5 changes: 4 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
<!-- Добавить двухстороннюю синхронизацию слайдера громкости в меню со слайдером громкости плееров для Twitch, OK (работает, если плеер не замучен) -->
<!-- #600 aniboom (referer + useragent, mpd), sibnet (referer) "*://video.sibnet.ru/*", -->
<!-- Фикс vk mobile -->
<!-- Rework l10n -->
<!-- Add subs -->

# 1.6.x

- Переработана логика обновления переводов для меню расширения
- Добавлена кнопка для ручной проверки обновлений локализации
- Добавлена настройка горячей клавиши перевода (#485 в #760)
- Добавлена поддержка путей `/inbox/` и `/bk/` для Видео Mail.ru (#763)
- Добавлена поддержка 9animetv с возможностью отображения субтитров от сайта (#748)
Expand All @@ -18,6 +19,7 @@
- Добавлено округление до целого процента в слайдере "Уменьшить громкость видео до"
- Добавлена возможность включить загрузку аудио дорожки и субтитров с названием видео, если расширение его нашло (#791)
- Добавлено автоопределение возвращаемого типа данных из LocalStorage, если присутствует стандартное значение
- Убрано выставление языка `auto` по умолчанию для Invidious и Piped
- Автосгенериванные субтитры с YouTube, теперь, используют уже существующие токены, а не генерируют новые
- В субтитрах от самого веб-сайта, теперь, показывается полный домен сайта, а не его внутреннее название
- Изменена логика работы субтитров на "кастомных" сайтах. Теперь, вместо ошибки, возвращаются пустые данные
Expand All @@ -31,6 +33,7 @@
- Исправлено появление кнопки в Rumble (#784)
- Исправлен жирный размер текста в меню и кнопке перевода на некоторых сайтах
- Исправлена растянутая кнопка перевода в Safari (#497)
- Исправлена попытка активации расширения на accounts.youtube.com
- Автоперевод и первичное получение субтитров, теперь, происходит параллельно
- Некоторые другие мелкие улучшения

Expand Down
41 changes: 21 additions & 20 deletions dist/vot-min.user.js

Large diffs are not rendered by default.

Loading

0 comments on commit b456dbc

Please sign in to comment.