Skip to content

Commit

Permalink
Implement i18n, add ru-RU locale, fix hydration bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
stanriders committed Jun 16, 2024
1 parent 5ec1e3a commit fdca84e
Show file tree
Hide file tree
Showing 20 changed files with 1,031 additions and 247 deletions.
90 changes: 90 additions & 0 deletions frontend/locales/en-US.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"Generic": {
"loading": "Loading...",
"page-not-found": "Page not found",
"sort-by-rank": "Sort by rank"
},
"Header": {
"friends": "Friends",
"followers": "Followers",
"leaderboard": "Rankings",

"login": "Login",
"logout": "Logout",
"settings": "Settings",
"user-tooltip": "Open settings"
},
"Footer": {
"made-by": "Made by <stanr>StanR</stanr>, icon by <arhella>Arhella</arhella>.",
"stats": "Stats",
"source": "Source code",
"donate": "Donate ❤"
},
"Home": {
"faq-title": "Mutualify - a friend list database for osu!",

"faq-q": "Q",
"faq-a": "A",

"faq-q1": "What is this?",
"faq-a1": "Mutualify is a database for osu! players' friend lists. It stores friend list of every player that logged in as well as some other relevant data.",

"faq-q2": "How does it work?",
"faq-a2": "osu! API allows websites to get player's friend list. Mutualify cross-checks friend lists of all registered players to see who follows who.",

"faq-q3": "Can it steal my account/password/private data?",
"faq-a3": "No, it can only access what osu! website shows you when you log in which is your friend list, your public profile data and you friend's public profile data. It will never ask for your login/password or anything like that.",

"faq-q4": "Why can I see only some of my followers?",
"faq-a4": "Mutualify can only find people that logged in before, so spread the word! More registered people means more information about followers."
},
"Stats": {
"title": "Stats",
"registered": "Registered users: {registered} ({lastDayRegistered} in the last 24hr)",
"relations": "Relation count: {relations}",
"autoupdate": "Users eligible for autoupdate: {eligible}"
},
"Leaderboard": {
"title": "Leaderboard",
"your-rank": "Your rank is #{rank}.",

"table-header-rank": "#",
"table-header-player": "Player",
"table-header-followers": "Followers"
},
"Followers": {
"title": "Followers",

"followers-count": "Known followers: {knownCount} out of {totalCount}.",
"hide-mutuals": "Hide mutuals"
},
"Friends": {
"title": "Friends",

"friend-count": "You have {friendCount} friends."
},
"User": {
"unknown-user-title": "Unknown user",
"unknown-user-message": "This user never logged in! You might wanna tell them to ;)",

"private-list": "<user>{username}</user>'s friend list is private.",
"friend-count": "<user>{username}</user> has {friendsCount} friends."
},
"Settings": {
"title": "Settings",

"refresh": "Refresh your friend list",
"refresh-success": "Updated!",
"refresh-tooltip": "Updated {updatedAgo}",

"allow-friendlist-access": "Allow other users to access your friend list",
"profile-link": "Your friend list link"
},
"Restricted": {
"title": "Not allowed",
"message": "Sorry, but restricted players are not allowed to log in!"
},
"Unauthorized": {
"message": "Log in first!"
}
}
90 changes: 90 additions & 0 deletions frontend/locales/ru-RU.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"Generic": {
"loading": "Загрузка...",
"page-not-found": "Страница не найдена",
"sort-by-rank": "Сортировать по ранку"
},
"Header": {
"friends": "Друзья",
"followers": "Подписчики",
"leaderboard": "Рейтинг",

"login": "Войти",
"logout": "Выйти",
"settings": "Настройки",
"user-tooltip": "Открыть настройки"
},
"Footer": {
"made-by": "Сделано <stanr>StanR</stanr>, логотип <arhella>Arhella</arhella>.",
"stats": "Статистика",
"source": "Исходный код",
"donate": "Пожертвовать ❤"
},
"Home": {
"faq-title": "Mutualify - база списков друзей игровок в osu!",

"faq-q": "Вопрос",
"faq-a": "Ответ",

"faq-q1": "Что это?",
"faq-a1": "Mutualify это база даннах для списков друзей игроков в osu!. Сайт хранит и периодически обновляет списки друзей всех игроков которые на него заходили.",

"faq-q2": "Как это работает?",
"faq-a2": "Сайт osu! позволяет другим сайтам получать список друзей игроков. Mutualify сравнивает списки друзей всех зарегистрированных на нём игроков и таким образом находит кто на кого подписан.",

"faq-q3": "Может ли сайт украсть мой аккаунт/пароль/личные данные?",
"faq-a3": "Нет, сайт имеет доступ только к данным, которые предоставляет osu!, то бишь публичные данные об аккаунтах и список друзей. Он никогда не будет спрашивать логин/пароль или что-либо подобное.",

"faq-q4": "Почему я вижу не всех подписчиков?",
"faq-a4": "Mutualify может находить только тех людей, которые уже заходили на сайт, поэтому рассказывайте всем о нём! Чем больше зарегистрированных игроков - тем больше данных о подписках."
},
"Stats": {
"title": "Статистика",
"registered": "Зарегистрированных игроков: {registered} ({lastDayRegistered} за последние 24 часа)",
"relations": "Количество связей: {relations}",
"autoupdate": "Игроков попадающих под автообновление: {eligible}"
},
"Leaderboard": {
"title": "Leaderboard",
"your-rank": "Ваше место в таблице #{rank}.",

"table-header-rank": "#",
"table-header-player": "Игрок",
"table-header-followers": "Подписчиков"
},
"Followers": {
"title": "Подписчики",

"followers-count": "Известные подписчики: {knownCount} из {totalCount}.",
"hide-mutuals": "Скрыть взаимные подписки"
},
"Friends": {
"title": "Друзья",

"friend-count": "У вас {friendCount} друзей."
},
"User": {
"unknown-user-title": "Неизвестный игрок",
"unknown-user-message": "Этот игрок никогда не заходил на сайт! Возможно стоит ему об этом сказать ;)",

"private-list": "Список друзей <user>{username}</user> скрыт.",
"friend-count": "У <user>{username}</user> {friendsCount} друзей."
},
"Settings": {
"title": "Настройки",

"refresh": "Обновить список друзей",
"refresh-success": "Обновлен!",
"refresh-tooltip": "Обновлен {updatedAgo}",

"allow-friendlist-access": "Разрешить другим людям видеть список ваших друзей",
"profile-link": "Публичная ссылка на список друзей"
},
"Restricted": {
"title": "Вход запрещен",
"message": "Извините, игроки в рестрикте не могут войти на сайт!"
},
"Unauthorized": {
"message": "Сначала нужно войти!"
}
}
4 changes: 4 additions & 0 deletions frontend/next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,9 @@ module.exports = {
compiler: {
emotion: true,
},
i18n: {
locales: ["en-US", "ru-RU"],
defaultLocale: "en-US"
},
output: 'standalone'
};
Loading

0 comments on commit fdca84e

Please sign in to comment.