diff --git a/README.md b/README.md
index a05fbe657b..8b89c01ac3 100644
--- a/README.md
+++ b/README.md
@@ -85,7 +85,7 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
-:heart: Backers & Sponsors
+:heart: Backers
----------------------------------------------------------------
diff --git a/locales/index.d.ts b/locales/index.d.ts
new file mode 100644
index 0000000000..4a9672c63f
--- /dev/null
+++ b/locales/index.d.ts
@@ -0,0 +1,5 @@
+type Locale = { [key: string]: string };
+
+declare const locales: { [lang: string]: Locale };
+
+export default locales;
diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml
index ea549dfd67..d32d2ea59c 100644
--- a/locales/pl-PL.yml
+++ b/locales/pl-PL.yml
@@ -356,7 +356,7 @@ common/views/components/user-menu.vue:
block: "Zablokuj"
unblock: "Odblokuj"
push-to-list: "Dodaj do listy"
- select-list: "リストを選択してください"
+ select-list: "Wybierz listę"
report-abuse: "Zgłoś nadużycie"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
@@ -395,11 +395,11 @@ common/views/components/signin.vue:
token: "Token"
signing-in: "Logowanie…"
signin: "Zaloguj"
- or: "または"
+ or: "lub"
signin-with-twitter: "Zaloguj się za pomocą Twittera"
signin-with-github: "Zaloguj się za pomocą GitHuba"
signin-with-discord: "Zaloguj się za pomocą Discorda"
- login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
+ login-failed: "Logowanie nie powiodło się. Upewnij się, że podałeś prawidłową nazwę użytkownika i hasło."
common/views/components/signup.vue:
invitation-code: "Kod zaproszenia"
invitation-info: "招待コードをお持ちでない方は、管理者までご連絡ください。"
@@ -472,13 +472,13 @@ common/views/components/visibility-chooser.vue:
local-followers: "Dla śledzących (tylko lokalnie)"
common/views/components/trends.vue:
count: "{}人が投稿"
- empty: "トレンドなし"
+ empty: "Brak popularnych hashtagów"
common/views/components/language-settings.vue:
title: "Język"
pick-language: "Wybierz język"
recommended: "Zalecane"
auto: "Automatyczny"
- specify-language: "言語を指定"
+ specify-language: "Wybierz język"
info: "Musisz odświeżyć stronę, aby zmiany zostały uwzględnione."
common/views/components/profile-editor.vue:
title: "Twój profil"
@@ -504,15 +504,15 @@ common/views/components/profile-editor.vue:
upload-failed: "Wysyłanie nie powiodło się"
email: "Ustawienia e-mail"
email-address: "Adres e-mail"
- email-verified: "メールアドレスが確認されました"
+ email-verified: "Twój adres e-mail został zweryfikowany."
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "Użytkownicy"
rename: "Zmień nazwę listy"
delete: "Usuń listę"
remove-user: "Usuń z tej listy"
- delete-are-you-sure: "リスト「$1」を削除しますか?"
- deleted: "削除しました"
+ delete-are-you-sure: "Usunąć listę \"$1\"?"
+ deleted: "Usunięto"
common/views/widgets/broadcast.vue:
fetching: "Sprawdzanie"
no-broadcasts: "Brak transmisji"
@@ -595,7 +595,7 @@ desktop/views/components/activity.vue:
title: "Aktywność"
toggle: "Przełącz widok"
desktop/views/components/calendar.vue:
- title: "{year}年 {month}月"
+ title: "{year} / {month}"
prev: "Poprzedni miesiąc"
next: "Następny miesiąc"
go: "Naciśnij, aby przejść"
@@ -706,7 +706,7 @@ desktop/views/components/note.vue:
add-reaction: "Dodaj reakcję"
undo-reaction: "リアクション解除"
detail: "Szczegóły"
- private: "この投稿は非公開です"
+ private: "Ten wpis jest prywatny"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "Ładowanie nie powiodło się."
@@ -1011,7 +1011,7 @@ admin/views/abuse.vue:
target: "対象"
reporter: "報告者"
details: "詳細"
- remove-report: "削除"
+ remove-report: "Usuń"
admin/views/instance.vue:
instance: "インスタンス"
instance-name: "インスタンス名"
diff --git a/package.json b/package.json
index 820c76bad1..614bd3cc24 100644
--- a/package.json
+++ b/package.json
@@ -46,6 +46,7 @@
"@types/gulp-util": "3.0.34",
"@types/is-root": "1.0.0",
"@types/is-svg": "3.0.0",
+ "@types/is-url": "1.2.28",
"@types/js-yaml": "3.12.0",
"@types/jsdom": "12.2.1",
"@types/katex": "0.5.0",
diff --git a/src/@types/const.json.d.ts b/src/@types/const.json.d.ts
new file mode 100644
index 0000000000..40a96f2a2a
--- /dev/null
+++ b/src/@types/const.json.d.ts
@@ -0,0 +1,3 @@
+declare module '*/const.json' {
+ const copyright: string;
+}
diff --git a/src/server/web/docs.ts b/src/server/web/docs.ts
index f823c308c2..0597f50a9c 100644
--- a/src/server/web/docs.ts
+++ b/src/server/web/docs.ts
@@ -14,9 +14,9 @@ import * as glob from 'glob';
import * as yaml from 'js-yaml';
import config from '../../config';
import { licenseHtml } from '../../misc/license';
-const constants = require('../../const.json');
+import { copyright } from '../../const.json';
import endpoints from '../api/endpoints';
-const locales = require('../../../locales');
+import locales from '../../../locales';
import * as nestedProperty from 'nested-property';
function getLang(lang: string): string {
@@ -59,7 +59,7 @@ async function genVars(lang: string): Promise<{ [key: string]: any }> {
vars['config'] = config;
- vars['copyright'] = constants.copyright;
+ vars['copyright'] = copyright;
vars['license'] = licenseHtml;