diff --git a/.tx/config b/.tx/config index d6f267592c..a745278980 100644 --- a/.tx/config +++ b/.tx/config @@ -986,4 +986,2072 @@ trans.tr = public/language/tr/uploads.json trans.vi = public/language/vi/uploads.json trans.zh_CN = public/language/zh-CN/uploads.json trans.zh_TW = public/language/zh-TW/uploads.json +type = KEYVALUEJSON + +[nodebb.admin-admin] +file_filter = public/language//admin/admin.json +source_file = public/language/en-GB/admin/admin.json +source_lang = en_GB +trans.ar = public/language/ar/admin/admin.json +trans.bn = public/language/bn/admin/admin.json +trans.bg = public/language/bg/admin/admin.json +trans.cs = public/language/cs/admin/admin.json +trans.da = public/language/da/admin/admin.json +trans.de = public/language/de/admin/admin.json +trans.el = public/language/el/admin/admin.json +trans.en_US = public/language/en-US/admin/admin.json +trans.en@pirate = public/language/en-x-pirate/admin/admin.json +trans.es = public/language/es/admin/admin.json +trans.et = public/language/et/admin/admin.json +trans.fa_IR = public/language/fa-IR/admin/admin.json +trans.fi = public/language/fi/admin/admin.json +trans.fr = public/language/fr/admin/admin.json +trans.gl = public/language/gl/admin/admin.json +trans.he = public/language/he/admin/admin.json +trans.hu = public/language/hu/admin/admin.json +trans.id = public/language/id/admin/admin.json +trans.it = public/language/it/admin/admin.json +trans.ja = public/language/ja/admin/admin.json +trans.ko = public/language/ko/admin/admin.json +trans.lt = public/language/lt/admin/admin.json +trans.ms = public/language/ms/admin/admin.json +trans.nb = public/language/nb/admin/admin.json +trans.nl = public/language/nl/admin/admin.json +trans.pl = public/language/pl/admin/admin.json +trans.pt_BR = public/language/pt-BR/admin/admin.json +trans.pt_PT = public/language/pt-PT/admin/admin.json +trans.ru = public/language/ru/admin/admin.json +trans.ro = public/language/ro/admin/admin.json +trans.rw = public/language/rw/admin/admin.json +trans.sc = public/language/sc/admin/admin.json +trans.sk = public/language/sk/admin/admin.json +trans.sl = public/language/sl/admin/admin.json +trans.sr = public/language/sr/admin/admin.json +trans.sv = public/language/sv/admin/admin.json +trans.th = public/language/th/admin/admin.json +trans.tr = public/language/tr/admin/admin.json +trans.vi = public/language/vi/admin/admin.json +trans.zh_CN = public/language/zh-CN/admin/admin.json +trans.zh_TW = public/language/zh-TW/admin/admin.json +type = KEYVALUEJSON + +[nodebb.admin-menu] +file_filter = public/language//admin/menu.json +source_file = public/language/en-GB/admin/menu.json +source_lang = en_GB +trans.ar = public/language/ar/admin/menu.json +trans.bn = public/language/bn/admin/menu.json +trans.bg = public/language/bg/admin/menu.json +trans.cs = public/language/cs/admin/menu.json +trans.da = public/language/da/admin/menu.json +trans.de = public/language/de/admin/menu.json +trans.el = public/language/el/admin/menu.json +trans.en_US = public/language/en-US/admin/menu.json +trans.en@pirate = public/language/en-x-pirate/admin/menu.json +trans.es = public/language/es/admin/menu.json +trans.et = public/language/et/admin/menu.json +trans.fa_IR = public/language/fa-IR/admin/menu.json +trans.fi = public/language/fi/admin/menu.json +trans.fr = public/language/fr/admin/menu.json +trans.gl = public/language/gl/admin/menu.json +trans.he = public/language/he/admin/menu.json +trans.hu = public/language/hu/admin/menu.json +trans.id = public/language/id/admin/menu.json +trans.it = public/language/it/admin/menu.json +trans.ja = public/language/ja/admin/menu.json +trans.ko = public/language/ko/admin/menu.json +trans.lt = public/language/lt/admin/menu.json +trans.ms = public/language/ms/admin/menu.json +trans.nb = public/language/nb/admin/menu.json +trans.nl = public/language/nl/admin/menu.json +trans.pl = public/language/pl/admin/menu.json +trans.pt_BR = public/language/pt-BR/admin/menu.json +trans.pt_PT = public/language/pt-PT/admin/menu.json +trans.ru = public/language/ru/admin/menu.json +trans.ro = public/language/ro/admin/menu.json +trans.rw = public/language/rw/admin/menu.json +trans.sc = public/language/sc/admin/menu.json +trans.sk = public/language/sk/admin/menu.json +trans.sl = public/language/sl/admin/menu.json +trans.sr = public/language/sr/admin/menu.json +trans.sv = public/language/sv/admin/menu.json +trans.th = public/language/th/admin/menu.json +trans.tr = public/language/tr/admin/menu.json +trans.vi = public/language/vi/admin/menu.json +trans.zh_CN = public/language/zh-CN/admin/menu.json +trans.zh_TW = public/language/zh-TW/admin/menu.json +type = KEYVALUEJSON + +[nodebb.admin-advanced-cache] +file_filter = public/language//admin/advanced/cache.json +source_file = public/language/en-GB/admin/advanced/cache.json +source_lang = en_GB +trans.ar = public/language/ar/admin/advanced/cache.json +trans.bn = public/language/bn/admin/advanced/cache.json +trans.bg = public/language/bg/admin/advanced/cache.json +trans.cs = public/language/cs/admin/advanced/cache.json +trans.da = public/language/da/admin/advanced/cache.json +trans.de = public/language/de/admin/advanced/cache.json +trans.el = public/language/el/admin/advanced/cache.json +trans.en_US = public/language/en-US/admin/advanced/cache.json +trans.en@pirate = public/language/en-x-pirate/admin/advanced/cache.json +trans.es = public/language/es/admin/advanced/cache.json +trans.et = public/language/et/admin/advanced/cache.json +trans.fa_IR = public/language/fa-IR/admin/advanced/cache.json +trans.fi = public/language/fi/admin/advanced/cache.json +trans.fr = public/language/fr/admin/advanced/cache.json +trans.gl = public/language/gl/admin/advanced/cache.json +trans.he = public/language/he/admin/advanced/cache.json +trans.hu = public/language/hu/admin/advanced/cache.json +trans.id = public/language/id/admin/advanced/cache.json +trans.it = public/language/it/admin/advanced/cache.json +trans.ja = public/language/ja/admin/advanced/cache.json +trans.ko = public/language/ko/admin/advanced/cache.json +trans.lt = public/language/lt/admin/advanced/cache.json +trans.ms = public/language/ms/admin/advanced/cache.json +trans.nb = public/language/nb/admin/advanced/cache.json +trans.nl = public/language/nl/admin/advanced/cache.json +trans.pl = public/language/pl/admin/advanced/cache.json +trans.pt_BR = public/language/pt-BR/admin/advanced/cache.json +trans.pt_PT = public/language/pt-PT/admin/advanced/cache.json +trans.ru = public/language/ru/admin/advanced/cache.json +trans.ro = public/language/ro/admin/advanced/cache.json +trans.rw = public/language/rw/admin/advanced/cache.json +trans.sc = public/language/sc/admin/advanced/cache.json +trans.sk = public/language/sk/admin/advanced/cache.json +trans.sl = public/language/sl/admin/advanced/cache.json +trans.sr = public/language/sr/admin/advanced/cache.json +trans.sv = public/language/sv/admin/advanced/cache.json +trans.th = public/language/th/admin/advanced/cache.json +trans.tr = public/language/tr/admin/advanced/cache.json +trans.vi = public/language/vi/admin/advanced/cache.json +trans.zh_CN = public/language/zh-CN/admin/advanced/cache.json +trans.zh_TW = public/language/zh-TW/admin/advanced/cache.json +type = KEYVALUEJSON + +[nodebb.admin-advanced-database] +file_filter = public/language//admin/advanced/database.json +source_file = public/language/en-GB/admin/advanced/database.json +source_lang = en_GB +trans.ar = public/language/ar/admin/advanced/database.json +trans.bn = public/language/bn/admin/advanced/database.json +trans.bg = public/language/bg/admin/advanced/database.json +trans.cs = public/language/cs/admin/advanced/database.json +trans.da = public/language/da/admin/advanced/database.json +trans.de = public/language/de/admin/advanced/database.json +trans.el = public/language/el/admin/advanced/database.json +trans.en_US = public/language/en-US/admin/advanced/database.json +trans.en@pirate = public/language/en-x-pirate/admin/advanced/database.json +trans.es = public/language/es/admin/advanced/database.json +trans.et = public/language/et/admin/advanced/database.json +trans.fa_IR = public/language/fa-IR/admin/advanced/database.json +trans.fi = public/language/fi/admin/advanced/database.json +trans.fr = public/language/fr/admin/advanced/database.json +trans.gl = public/language/gl/admin/advanced/database.json +trans.he = public/language/he/admin/advanced/database.json +trans.hu = public/language/hu/admin/advanced/database.json +trans.id = public/language/id/admin/advanced/database.json +trans.it = public/language/it/admin/advanced/database.json +trans.ja = public/language/ja/admin/advanced/database.json +trans.ko = public/language/ko/admin/advanced/database.json +trans.lt = public/language/lt/admin/advanced/database.json +trans.ms = public/language/ms/admin/advanced/database.json +trans.nb = public/language/nb/admin/advanced/database.json +trans.nl = public/language/nl/admin/advanced/database.json +trans.pl = public/language/pl/admin/advanced/database.json +trans.pt_BR = public/language/pt-BR/admin/advanced/database.json +trans.pt_PT = public/language/pt-PT/admin/advanced/database.json +trans.ru = public/language/ru/admin/advanced/database.json +trans.ro = public/language/ro/admin/advanced/database.json +trans.rw = public/language/rw/admin/advanced/database.json +trans.sc = public/language/sc/admin/advanced/database.json +trans.sk = public/language/sk/admin/advanced/database.json +trans.sl = public/language/sl/admin/advanced/database.json +trans.sr = public/language/sr/admin/advanced/database.json +trans.sv = public/language/sv/admin/advanced/database.json +trans.th = public/language/th/admin/advanced/database.json +trans.tr = public/language/tr/admin/advanced/database.json +trans.vi = public/language/vi/admin/advanced/database.json +trans.zh_CN = public/language/zh-CN/admin/advanced/database.json +trans.zh_TW = public/language/zh-TW/admin/advanced/database.json +type = KEYVALUEJSON + +[nodebb.admin-advanced-errors] +file_filter = public/language//admin/advanced/errors.json +source_file = public/language/en-GB/admin/advanced/errors.json +source_lang = en_GB +trans.ar = public/language/ar/admin/advanced/errors.json +trans.bn = public/language/bn/admin/advanced/errors.json +trans.bg = public/language/bg/admin/advanced/errors.json +trans.cs = public/language/cs/admin/advanced/errors.json +trans.da = public/language/da/admin/advanced/errors.json +trans.de = public/language/de/admin/advanced/errors.json +trans.el = public/language/el/admin/advanced/errors.json +trans.en_US = public/language/en-US/admin/advanced/errors.json +trans.en@pirate = public/language/en-x-pirate/admin/advanced/errors.json +trans.es = public/language/es/admin/advanced/errors.json +trans.et = public/language/et/admin/advanced/errors.json +trans.fa_IR = public/language/fa-IR/admin/advanced/errors.json +trans.fi = public/language/fi/admin/advanced/errors.json +trans.fr = public/language/fr/admin/advanced/errors.json +trans.gl = public/language/gl/admin/advanced/errors.json +trans.he = public/language/he/admin/advanced/errors.json +trans.hu = public/language/hu/admin/advanced/errors.json +trans.id = public/language/id/admin/advanced/errors.json +trans.it = public/language/it/admin/advanced/errors.json +trans.ja = public/language/ja/admin/advanced/errors.json +trans.ko = public/language/ko/admin/advanced/errors.json +trans.lt = public/language/lt/admin/advanced/errors.json +trans.ms = public/language/ms/admin/advanced/errors.json +trans.nb = public/language/nb/admin/advanced/errors.json +trans.nl = public/language/nl/admin/advanced/errors.json +trans.pl = public/language/pl/admin/advanced/errors.json +trans.pt_BR = public/language/pt-BR/admin/advanced/errors.json +trans.pt_PT = public/language/pt-PT/admin/advanced/errors.json +trans.ru = public/language/ru/admin/advanced/errors.json +trans.ro = public/language/ro/admin/advanced/errors.json +trans.rw = public/language/rw/admin/advanced/errors.json +trans.sc = public/language/sc/admin/advanced/errors.json +trans.sk = public/language/sk/admin/advanced/errors.json +trans.sl = public/language/sl/admin/advanced/errors.json +trans.sr = public/language/sr/admin/advanced/errors.json +trans.sv = public/language/sv/admin/advanced/errors.json +trans.th = public/language/th/admin/advanced/errors.json +trans.tr = public/language/tr/admin/advanced/errors.json +trans.vi = public/language/vi/admin/advanced/errors.json +trans.zh_CN = public/language/zh-CN/admin/advanced/errors.json +trans.zh_TW = public/language/zh-TW/admin/advanced/errors.json +type = KEYVALUEJSON + +[nodebb.admin-advanced-events] +file_filter = public/language//admin/advanced/events.json +source_file = public/language/en-GB/admin/advanced/events.json +source_lang = en_GB +trans.ar = public/language/ar/admin/advanced/events.json +trans.bn = public/language/bn/admin/advanced/events.json +trans.bg = public/language/bg/admin/advanced/events.json +trans.cs = public/language/cs/admin/advanced/events.json +trans.da = public/language/da/admin/advanced/events.json +trans.de = public/language/de/admin/advanced/events.json +trans.el = public/language/el/admin/advanced/events.json +trans.en_US = public/language/en-US/admin/advanced/events.json +trans.en@pirate = public/language/en-x-pirate/admin/advanced/events.json +trans.es = public/language/es/admin/advanced/events.json +trans.et = public/language/et/admin/advanced/events.json +trans.fa_IR = public/language/fa-IR/admin/advanced/events.json +trans.fi = public/language/fi/admin/advanced/events.json +trans.fr = public/language/fr/admin/advanced/events.json +trans.gl = public/language/gl/admin/advanced/events.json +trans.he = public/language/he/admin/advanced/events.json +trans.hu = public/language/hu/admin/advanced/events.json +trans.id = public/language/id/admin/advanced/events.json +trans.it = public/language/it/admin/advanced/events.json +trans.ja = public/language/ja/admin/advanced/events.json +trans.ko = public/language/ko/admin/advanced/events.json +trans.lt = public/language/lt/admin/advanced/events.json +trans.ms = public/language/ms/admin/advanced/events.json +trans.nb = public/language/nb/admin/advanced/events.json +trans.nl = public/language/nl/admin/advanced/events.json +trans.pl = public/language/pl/admin/advanced/events.json +trans.pt_BR = public/language/pt-BR/admin/advanced/events.json +trans.pt_PT = public/language/pt-PT/admin/advanced/events.json +trans.ru = public/language/ru/admin/advanced/events.json +trans.ro = public/language/ro/admin/advanced/events.json +trans.rw = public/language/rw/admin/advanced/events.json +trans.sc = public/language/sc/admin/advanced/events.json +trans.sk = public/language/sk/admin/advanced/events.json +trans.sl = public/language/sl/admin/advanced/events.json +trans.sr = public/language/sr/admin/advanced/events.json +trans.sv = public/language/sv/admin/advanced/events.json +trans.th = public/language/th/admin/advanced/events.json +trans.tr = public/language/tr/admin/advanced/events.json +trans.vi = public/language/vi/admin/advanced/events.json +trans.zh_CN = public/language/zh-CN/admin/advanced/events.json +trans.zh_TW = public/language/zh-TW/admin/advanced/events.json +type = KEYVALUEJSON + +[nodebb.admin-advanced-logs] +file_filter = public/language//admin/advanced/logs.json +source_file = public/language/en-GB/admin/advanced/logs.json +source_lang = en_GB +trans.ar = public/language/ar/admin/advanced/logs.json +trans.bn = public/language/bn/admin/advanced/logs.json +trans.bg = public/language/bg/admin/advanced/logs.json +trans.cs = public/language/cs/admin/advanced/logs.json +trans.da = public/language/da/admin/advanced/logs.json +trans.de = public/language/de/admin/advanced/logs.json +trans.el = public/language/el/admin/advanced/logs.json +trans.en_US = public/language/en-US/admin/advanced/logs.json +trans.en@pirate = public/language/en-x-pirate/admin/advanced/logs.json +trans.es = public/language/es/admin/advanced/logs.json +trans.et = public/language/et/admin/advanced/logs.json +trans.fa_IR = public/language/fa-IR/admin/advanced/logs.json +trans.fi = public/language/fi/admin/advanced/logs.json +trans.fr = public/language/fr/admin/advanced/logs.json +trans.gl = public/language/gl/admin/advanced/logs.json +trans.he = public/language/he/admin/advanced/logs.json +trans.hu = public/language/hu/admin/advanced/logs.json +trans.id = public/language/id/admin/advanced/logs.json +trans.it = public/language/it/admin/advanced/logs.json +trans.ja = public/language/ja/admin/advanced/logs.json +trans.ko = public/language/ko/admin/advanced/logs.json +trans.lt = public/language/lt/admin/advanced/logs.json +trans.ms = public/language/ms/admin/advanced/logs.json +trans.nb = public/language/nb/admin/advanced/logs.json +trans.nl = public/language/nl/admin/advanced/logs.json +trans.pl = public/language/pl/admin/advanced/logs.json +trans.pt_BR = public/language/pt-BR/admin/advanced/logs.json +trans.pt_PT = public/language/pt-PT/admin/advanced/logs.json +trans.ru = public/language/ru/admin/advanced/logs.json +trans.ro = public/language/ro/admin/advanced/logs.json +trans.rw = public/language/rw/admin/advanced/logs.json +trans.sc = public/language/sc/admin/advanced/logs.json +trans.sk = public/language/sk/admin/advanced/logs.json +trans.sl = public/language/sl/admin/advanced/logs.json +trans.sr = public/language/sr/admin/advanced/logs.json +trans.sv = public/language/sv/admin/advanced/logs.json +trans.th = public/language/th/admin/advanced/logs.json +trans.tr = public/language/tr/admin/advanced/logs.json +trans.vi = public/language/vi/admin/advanced/logs.json +trans.zh_CN = public/language/zh-CN/admin/advanced/logs.json +trans.zh_TW = public/language/zh-TW/admin/advanced/logs.json +type = KEYVALUEJSON + +[nodebb.admin-appearance-customise] +file_filter = public/language//admin/appearance/customise.json +source_file = public/language/en-GB/admin/appearance/customise.json +source_lang = en_GB +trans.ar = public/language/ar/admin/appearance/customise.json +trans.bn = public/language/bn/admin/appearance/customise.json +trans.bg = public/language/bg/admin/appearance/customise.json +trans.cs = public/language/cs/admin/appearance/customise.json +trans.da = public/language/da/admin/appearance/customise.json +trans.de = public/language/de/admin/appearance/customise.json +trans.el = public/language/el/admin/appearance/customise.json +trans.en_US = public/language/en-US/admin/appearance/customise.json +trans.en@pirate = public/language/en-x-pirate/admin/appearance/customise.json +trans.es = public/language/es/admin/appearance/customise.json +trans.et = public/language/et/admin/appearance/customise.json +trans.fa_IR = public/language/fa-IR/admin/appearance/customise.json +trans.fi = public/language/fi/admin/appearance/customise.json +trans.fr = public/language/fr/admin/appearance/customise.json +trans.gl = public/language/gl/admin/appearance/customise.json +trans.he = public/language/he/admin/appearance/customise.json +trans.hu = public/language/hu/admin/appearance/customise.json +trans.id = public/language/id/admin/appearance/customise.json +trans.it = public/language/it/admin/appearance/customise.json +trans.ja = public/language/ja/admin/appearance/customise.json +trans.ko = public/language/ko/admin/appearance/customise.json +trans.lt = public/language/lt/admin/appearance/customise.json +trans.ms = public/language/ms/admin/appearance/customise.json +trans.nb = public/language/nb/admin/appearance/customise.json +trans.nl = public/language/nl/admin/appearance/customise.json +trans.pl = public/language/pl/admin/appearance/customise.json +trans.pt_BR = public/language/pt-BR/admin/appearance/customise.json +trans.pt_PT = public/language/pt-PT/admin/appearance/customise.json +trans.ru = public/language/ru/admin/appearance/customise.json +trans.ro = public/language/ro/admin/appearance/customise.json +trans.rw = public/language/rw/admin/appearance/customise.json +trans.sc = public/language/sc/admin/appearance/customise.json +trans.sk = public/language/sk/admin/appearance/customise.json +trans.sl = public/language/sl/admin/appearance/customise.json +trans.sr = public/language/sr/admin/appearance/customise.json +trans.sv = public/language/sv/admin/appearance/customise.json +trans.th = public/language/th/admin/appearance/customise.json +trans.tr = public/language/tr/admin/appearance/customise.json +trans.vi = public/language/vi/admin/appearance/customise.json +trans.zh_CN = public/language/zh-CN/admin/appearance/customise.json +trans.zh_TW = public/language/zh-TW/admin/appearance/customise.json +type = KEYVALUEJSON + +[nodebb.admin-appearance-skins] +file_filter = public/language//admin/appearance/skins.json +source_file = public/language/en-GB/admin/appearance/skins.json +source_lang = en_GB +trans.ar = public/language/ar/admin/appearance/skins.json +trans.bn = public/language/bn/admin/appearance/skins.json +trans.bg = public/language/bg/admin/appearance/skins.json +trans.cs = public/language/cs/admin/appearance/skins.json +trans.da = public/language/da/admin/appearance/skins.json +trans.de = public/language/de/admin/appearance/skins.json +trans.el = public/language/el/admin/appearance/skins.json +trans.en_US = public/language/en-US/admin/appearance/skins.json +trans.en@pirate = public/language/en-x-pirate/admin/appearance/skins.json +trans.es = public/language/es/admin/appearance/skins.json +trans.et = public/language/et/admin/appearance/skins.json +trans.fa_IR = public/language/fa-IR/admin/appearance/skins.json +trans.fi = public/language/fi/admin/appearance/skins.json +trans.fr = public/language/fr/admin/appearance/skins.json +trans.gl = public/language/gl/admin/appearance/skins.json +trans.he = public/language/he/admin/appearance/skins.json +trans.hu = public/language/hu/admin/appearance/skins.json +trans.id = public/language/id/admin/appearance/skins.json +trans.it = public/language/it/admin/appearance/skins.json +trans.ja = public/language/ja/admin/appearance/skins.json +trans.ko = public/language/ko/admin/appearance/skins.json +trans.lt = public/language/lt/admin/appearance/skins.json +trans.ms = public/language/ms/admin/appearance/skins.json +trans.nb = public/language/nb/admin/appearance/skins.json +trans.nl = public/language/nl/admin/appearance/skins.json +trans.pl = public/language/pl/admin/appearance/skins.json +trans.pt_BR = public/language/pt-BR/admin/appearance/skins.json +trans.pt_PT = public/language/pt-PT/admin/appearance/skins.json +trans.ru = public/language/ru/admin/appearance/skins.json +trans.ro = public/language/ro/admin/appearance/skins.json +trans.rw = public/language/rw/admin/appearance/skins.json +trans.sc = public/language/sc/admin/appearance/skins.json +trans.sk = public/language/sk/admin/appearance/skins.json +trans.sl = public/language/sl/admin/appearance/skins.json +trans.sr = public/language/sr/admin/appearance/skins.json +trans.sv = public/language/sv/admin/appearance/skins.json +trans.th = public/language/th/admin/appearance/skins.json +trans.tr = public/language/tr/admin/appearance/skins.json +trans.vi = public/language/vi/admin/appearance/skins.json +trans.zh_CN = public/language/zh-CN/admin/appearance/skins.json +trans.zh_TW = public/language/zh-TW/admin/appearance/skins.json +type = KEYVALUEJSON + +[nodebb.admin-appearance-themes] +file_filter = public/language//admin/appearance/themes.json +source_file = public/language/en-GB/admin/appearance/themes.json +source_lang = en_GB +trans.ar = public/language/ar/admin/appearance/themes.json +trans.bn = public/language/bn/admin/appearance/themes.json +trans.bg = public/language/bg/admin/appearance/themes.json +trans.cs = public/language/cs/admin/appearance/themes.json +trans.da = public/language/da/admin/appearance/themes.json +trans.de = public/language/de/admin/appearance/themes.json +trans.el = public/language/el/admin/appearance/themes.json +trans.en_US = public/language/en-US/admin/appearance/themes.json +trans.en@pirate = public/language/en-x-pirate/admin/appearance/themes.json +trans.es = public/language/es/admin/appearance/themes.json +trans.et = public/language/et/admin/appearance/themes.json +trans.fa_IR = public/language/fa-IR/admin/appearance/themes.json +trans.fi = public/language/fi/admin/appearance/themes.json +trans.fr = public/language/fr/admin/appearance/themes.json +trans.gl = public/language/gl/admin/appearance/themes.json +trans.he = public/language/he/admin/appearance/themes.json +trans.hu = public/language/hu/admin/appearance/themes.json +trans.id = public/language/id/admin/appearance/themes.json +trans.it = public/language/it/admin/appearance/themes.json +trans.ja = public/language/ja/admin/appearance/themes.json +trans.ko = public/language/ko/admin/appearance/themes.json +trans.lt = public/language/lt/admin/appearance/themes.json +trans.ms = public/language/ms/admin/appearance/themes.json +trans.nb = public/language/nb/admin/appearance/themes.json +trans.nl = public/language/nl/admin/appearance/themes.json +trans.pl = public/language/pl/admin/appearance/themes.json +trans.pt_BR = public/language/pt-BR/admin/appearance/themes.json +trans.pt_PT = public/language/pt-PT/admin/appearance/themes.json +trans.ru = public/language/ru/admin/appearance/themes.json +trans.ro = public/language/ro/admin/appearance/themes.json +trans.rw = public/language/rw/admin/appearance/themes.json +trans.sc = public/language/sc/admin/appearance/themes.json +trans.sk = public/language/sk/admin/appearance/themes.json +trans.sl = public/language/sl/admin/appearance/themes.json +trans.sr = public/language/sr/admin/appearance/themes.json +trans.sv = public/language/sv/admin/appearance/themes.json +trans.th = public/language/th/admin/appearance/themes.json +trans.tr = public/language/tr/admin/appearance/themes.json +trans.vi = public/language/vi/admin/appearance/themes.json +trans.zh_CN = public/language/zh-CN/admin/appearance/themes.json +trans.zh_TW = public/language/zh-TW/admin/appearance/themes.json +type = KEYVALUEJSON + +[nodebb.admin-development-info] +file_filter = public/language//admin/development/info.json +source_file = public/language/en-GB/admin/development/info.json +source_lang = en_GB +trans.ar = public/language/ar/admin/development/info.json +trans.bn = public/language/bn/admin/development/info.json +trans.bg = public/language/bg/admin/development/info.json +trans.cs = public/language/cs/admin/development/info.json +trans.da = public/language/da/admin/development/info.json +trans.de = public/language/de/admin/development/info.json +trans.el = public/language/el/admin/development/info.json +trans.en_US = public/language/en-US/admin/development/info.json +trans.en@pirate = public/language/en-x-pirate/admin/development/info.json +trans.es = public/language/es/admin/development/info.json +trans.et = public/language/et/admin/development/info.json +trans.fa_IR = public/language/fa-IR/admin/development/info.json +trans.fi = public/language/fi/admin/development/info.json +trans.fr = public/language/fr/admin/development/info.json +trans.gl = public/language/gl/admin/development/info.json +trans.he = public/language/he/admin/development/info.json +trans.hu = public/language/hu/admin/development/info.json +trans.id = public/language/id/admin/development/info.json +trans.it = public/language/it/admin/development/info.json +trans.ja = public/language/ja/admin/development/info.json +trans.ko = public/language/ko/admin/development/info.json +trans.lt = public/language/lt/admin/development/info.json +trans.ms = public/language/ms/admin/development/info.json +trans.nb = public/language/nb/admin/development/info.json +trans.nl = public/language/nl/admin/development/info.json +trans.pl = public/language/pl/admin/development/info.json +trans.pt_BR = public/language/pt-BR/admin/development/info.json +trans.pt_PT = public/language/pt-PT/admin/development/info.json +trans.ru = public/language/ru/admin/development/info.json +trans.ro = public/language/ro/admin/development/info.json +trans.rw = public/language/rw/admin/development/info.json +trans.sc = public/language/sc/admin/development/info.json +trans.sk = public/language/sk/admin/development/info.json +trans.sl = public/language/sl/admin/development/info.json +trans.sr = public/language/sr/admin/development/info.json +trans.sv = public/language/sv/admin/development/info.json +trans.th = public/language/th/admin/development/info.json +trans.tr = public/language/tr/admin/development/info.json +trans.vi = public/language/vi/admin/development/info.json +trans.zh_CN = public/language/zh-CN/admin/development/info.json +trans.zh_TW = public/language/zh-TW/admin/development/info.json +type = KEYVALUEJSON + +[nodebb.admin-development-logger] +file_filter = public/language//admin/development/logger.json +source_file = public/language/en-GB/admin/development/logger.json +source_lang = en_GB +trans.ar = public/language/ar/admin/development/logger.json +trans.bn = public/language/bn/admin/development/logger.json +trans.bg = public/language/bg/admin/development/logger.json +trans.cs = public/language/cs/admin/development/logger.json +trans.da = public/language/da/admin/development/logger.json +trans.de = public/language/de/admin/development/logger.json +trans.el = public/language/el/admin/development/logger.json +trans.en_US = public/language/en-US/admin/development/logger.json +trans.en@pirate = public/language/en-x-pirate/admin/development/logger.json +trans.es = public/language/es/admin/development/logger.json +trans.et = public/language/et/admin/development/logger.json +trans.fa_IR = public/language/fa-IR/admin/development/logger.json +trans.fi = public/language/fi/admin/development/logger.json +trans.fr = public/language/fr/admin/development/logger.json +trans.gl = public/language/gl/admin/development/logger.json +trans.he = public/language/he/admin/development/logger.json +trans.hu = public/language/hu/admin/development/logger.json +trans.id = public/language/id/admin/development/logger.json +trans.it = public/language/it/admin/development/logger.json +trans.ja = public/language/ja/admin/development/logger.json +trans.ko = public/language/ko/admin/development/logger.json +trans.lt = public/language/lt/admin/development/logger.json +trans.ms = public/language/ms/admin/development/logger.json +trans.nb = public/language/nb/admin/development/logger.json +trans.nl = public/language/nl/admin/development/logger.json +trans.pl = public/language/pl/admin/development/logger.json +trans.pt_BR = public/language/pt-BR/admin/development/logger.json +trans.pt_PT = public/language/pt-PT/admin/development/logger.json +trans.ru = public/language/ru/admin/development/logger.json +trans.ro = public/language/ro/admin/development/logger.json +trans.rw = public/language/rw/admin/development/logger.json +trans.sc = public/language/sc/admin/development/logger.json +trans.sk = public/language/sk/admin/development/logger.json +trans.sl = public/language/sl/admin/development/logger.json +trans.sr = public/language/sr/admin/development/logger.json +trans.sv = public/language/sv/admin/development/logger.json +trans.th = public/language/th/admin/development/logger.json +trans.tr = public/language/tr/admin/development/logger.json +trans.vi = public/language/vi/admin/development/logger.json +trans.zh_CN = public/language/zh-CN/admin/development/logger.json +trans.zh_TW = public/language/zh-TW/admin/development/logger.json +type = KEYVALUEJSON + +[nodebb.admin-extend-plugins] +file_filter = public/language//admin/extend/plugins.json +source_file = public/language/en-GB/admin/extend/plugins.json +source_lang = en_GB +trans.ar = public/language/ar/admin/extend/plugins.json +trans.bn = public/language/bn/admin/extend/plugins.json +trans.bg = public/language/bg/admin/extend/plugins.json +trans.cs = public/language/cs/admin/extend/plugins.json +trans.da = public/language/da/admin/extend/plugins.json +trans.de = public/language/de/admin/extend/plugins.json +trans.el = public/language/el/admin/extend/plugins.json +trans.en_US = public/language/en-US/admin/extend/plugins.json +trans.en@pirate = public/language/en-x-pirate/admin/extend/plugins.json +trans.es = public/language/es/admin/extend/plugins.json +trans.et = public/language/et/admin/extend/plugins.json +trans.fa_IR = public/language/fa-IR/admin/extend/plugins.json +trans.fi = public/language/fi/admin/extend/plugins.json +trans.fr = public/language/fr/admin/extend/plugins.json +trans.gl = public/language/gl/admin/extend/plugins.json +trans.he = public/language/he/admin/extend/plugins.json +trans.hu = public/language/hu/admin/extend/plugins.json +trans.id = public/language/id/admin/extend/plugins.json +trans.it = public/language/it/admin/extend/plugins.json +trans.ja = public/language/ja/admin/extend/plugins.json +trans.ko = public/language/ko/admin/extend/plugins.json +trans.lt = public/language/lt/admin/extend/plugins.json +trans.ms = public/language/ms/admin/extend/plugins.json +trans.nb = public/language/nb/admin/extend/plugins.json +trans.nl = public/language/nl/admin/extend/plugins.json +trans.pl = public/language/pl/admin/extend/plugins.json +trans.pt_BR = public/language/pt-BR/admin/extend/plugins.json +trans.pt_PT = public/language/pt-PT/admin/extend/plugins.json +trans.ru = public/language/ru/admin/extend/plugins.json +trans.ro = public/language/ro/admin/extend/plugins.json +trans.rw = public/language/rw/admin/extend/plugins.json +trans.sc = public/language/sc/admin/extend/plugins.json +trans.sk = public/language/sk/admin/extend/plugins.json +trans.sl = public/language/sl/admin/extend/plugins.json +trans.sr = public/language/sr/admin/extend/plugins.json +trans.sv = public/language/sv/admin/extend/plugins.json +trans.th = public/language/th/admin/extend/plugins.json +trans.tr = public/language/tr/admin/extend/plugins.json +trans.vi = public/language/vi/admin/extend/plugins.json +trans.zh_CN = public/language/zh-CN/admin/extend/plugins.json +trans.zh_TW = public/language/zh-TW/admin/extend/plugins.json +type = KEYVALUEJSON + +[nodebb.admin-extend-rewards] +file_filter = public/language//admin/extend/rewards.json +source_file = public/language/en-GB/admin/extend/rewards.json +source_lang = en_GB +trans.ar = public/language/ar/admin/extend/rewards.json +trans.bn = public/language/bn/admin/extend/rewards.json +trans.bg = public/language/bg/admin/extend/rewards.json +trans.cs = public/language/cs/admin/extend/rewards.json +trans.da = public/language/da/admin/extend/rewards.json +trans.de = public/language/de/admin/extend/rewards.json +trans.el = public/language/el/admin/extend/rewards.json +trans.en_US = public/language/en-US/admin/extend/rewards.json +trans.en@pirate = public/language/en-x-pirate/admin/extend/rewards.json +trans.es = public/language/es/admin/extend/rewards.json +trans.et = public/language/et/admin/extend/rewards.json +trans.fa_IR = public/language/fa-IR/admin/extend/rewards.json +trans.fi = public/language/fi/admin/extend/rewards.json +trans.fr = public/language/fr/admin/extend/rewards.json +trans.gl = public/language/gl/admin/extend/rewards.json +trans.he = public/language/he/admin/extend/rewards.json +trans.hu = public/language/hu/admin/extend/rewards.json +trans.id = public/language/id/admin/extend/rewards.json +trans.it = public/language/it/admin/extend/rewards.json +trans.ja = public/language/ja/admin/extend/rewards.json +trans.ko = public/language/ko/admin/extend/rewards.json +trans.lt = public/language/lt/admin/extend/rewards.json +trans.ms = public/language/ms/admin/extend/rewards.json +trans.nb = public/language/nb/admin/extend/rewards.json +trans.nl = public/language/nl/admin/extend/rewards.json +trans.pl = public/language/pl/admin/extend/rewards.json +trans.pt_BR = public/language/pt-BR/admin/extend/rewards.json +trans.pt_PT = public/language/pt-PT/admin/extend/rewards.json +trans.ru = public/language/ru/admin/extend/rewards.json +trans.ro = public/language/ro/admin/extend/rewards.json +trans.rw = public/language/rw/admin/extend/rewards.json +trans.sc = public/language/sc/admin/extend/rewards.json +trans.sk = public/language/sk/admin/extend/rewards.json +trans.sl = public/language/sl/admin/extend/rewards.json +trans.sr = public/language/sr/admin/extend/rewards.json +trans.sv = public/language/sv/admin/extend/rewards.json +trans.th = public/language/th/admin/extend/rewards.json +trans.tr = public/language/tr/admin/extend/rewards.json +trans.vi = public/language/vi/admin/extend/rewards.json +trans.zh_CN = public/language/zh-CN/admin/extend/rewards.json +trans.zh_TW = public/language/zh-TW/admin/extend/rewards.json +type = KEYVALUEJSON + +[nodebb.admin-extend-widgets] +file_filter = public/language//admin/extend/widgets.json +source_file = public/language/en-GB/admin/extend/widgets.json +source_lang = en_GB +trans.ar = public/language/ar/admin/extend/widgets.json +trans.bn = public/language/bn/admin/extend/widgets.json +trans.bg = public/language/bg/admin/extend/widgets.json +trans.cs = public/language/cs/admin/extend/widgets.json +trans.da = public/language/da/admin/extend/widgets.json +trans.de = public/language/de/admin/extend/widgets.json +trans.el = public/language/el/admin/extend/widgets.json +trans.en_US = public/language/en-US/admin/extend/widgets.json +trans.en@pirate = public/language/en-x-pirate/admin/extend/widgets.json +trans.es = public/language/es/admin/extend/widgets.json +trans.et = public/language/et/admin/extend/widgets.json +trans.fa_IR = public/language/fa-IR/admin/extend/widgets.json +trans.fi = public/language/fi/admin/extend/widgets.json +trans.fr = public/language/fr/admin/extend/widgets.json +trans.gl = public/language/gl/admin/extend/widgets.json +trans.he = public/language/he/admin/extend/widgets.json +trans.hu = public/language/hu/admin/extend/widgets.json +trans.id = public/language/id/admin/extend/widgets.json +trans.it = public/language/it/admin/extend/widgets.json +trans.ja = public/language/ja/admin/extend/widgets.json +trans.ko = public/language/ko/admin/extend/widgets.json +trans.lt = public/language/lt/admin/extend/widgets.json +trans.ms = public/language/ms/admin/extend/widgets.json +trans.nb = public/language/nb/admin/extend/widgets.json +trans.nl = public/language/nl/admin/extend/widgets.json +trans.pl = public/language/pl/admin/extend/widgets.json +trans.pt_BR = public/language/pt-BR/admin/extend/widgets.json +trans.pt_PT = public/language/pt-PT/admin/extend/widgets.json +trans.ru = public/language/ru/admin/extend/widgets.json +trans.ro = public/language/ro/admin/extend/widgets.json +trans.rw = public/language/rw/admin/extend/widgets.json +trans.sc = public/language/sc/admin/extend/widgets.json +trans.sk = public/language/sk/admin/extend/widgets.json +trans.sl = public/language/sl/admin/extend/widgets.json +trans.sr = public/language/sr/admin/extend/widgets.json +trans.sv = public/language/sv/admin/extend/widgets.json +trans.th = public/language/th/admin/extend/widgets.json +trans.tr = public/language/tr/admin/extend/widgets.json +trans.vi = public/language/vi/admin/extend/widgets.json +trans.zh_CN = public/language/zh-CN/admin/extend/widgets.json +trans.zh_TW = public/language/zh-TW/admin/extend/widgets.json +type = KEYVALUEJSON + +[nodebb.admin-general-dashboard] +file_filter = public/language//admin/general/dashboard.json +source_file = public/language/en-GB/admin/general/dashboard.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/dashboard.json +trans.bn = public/language/bn/admin/general/dashboard.json +trans.bg = public/language/bg/admin/general/dashboard.json +trans.cs = public/language/cs/admin/general/dashboard.json +trans.da = public/language/da/admin/general/dashboard.json +trans.de = public/language/de/admin/general/dashboard.json +trans.el = public/language/el/admin/general/dashboard.json +trans.en_US = public/language/en-US/admin/general/dashboard.json +trans.en@pirate = public/language/en-x-pirate/admin/general/dashboard.json +trans.es = public/language/es/admin/general/dashboard.json +trans.et = public/language/et/admin/general/dashboard.json +trans.fa_IR = public/language/fa-IR/admin/general/dashboard.json +trans.fi = public/language/fi/admin/general/dashboard.json +trans.fr = public/language/fr/admin/general/dashboard.json +trans.gl = public/language/gl/admin/general/dashboard.json +trans.he = public/language/he/admin/general/dashboard.json +trans.hu = public/language/hu/admin/general/dashboard.json +trans.id = public/language/id/admin/general/dashboard.json +trans.it = public/language/it/admin/general/dashboard.json +trans.ja = public/language/ja/admin/general/dashboard.json +trans.ko = public/language/ko/admin/general/dashboard.json +trans.lt = public/language/lt/admin/general/dashboard.json +trans.ms = public/language/ms/admin/general/dashboard.json +trans.nb = public/language/nb/admin/general/dashboard.json +trans.nl = public/language/nl/admin/general/dashboard.json +trans.pl = public/language/pl/admin/general/dashboard.json +trans.pt_BR = public/language/pt-BR/admin/general/dashboard.json +trans.pt_PT = public/language/pt-PT/admin/general/dashboard.json +trans.ru = public/language/ru/admin/general/dashboard.json +trans.ro = public/language/ro/admin/general/dashboard.json +trans.rw = public/language/rw/admin/general/dashboard.json +trans.sc = public/language/sc/admin/general/dashboard.json +trans.sk = public/language/sk/admin/general/dashboard.json +trans.sl = public/language/sl/admin/general/dashboard.json +trans.sr = public/language/sr/admin/general/dashboard.json +trans.sv = public/language/sv/admin/general/dashboard.json +trans.th = public/language/th/admin/general/dashboard.json +trans.tr = public/language/tr/admin/general/dashboard.json +trans.vi = public/language/vi/admin/general/dashboard.json +trans.zh_CN = public/language/zh-CN/admin/general/dashboard.json +trans.zh_TW = public/language/zh-TW/admin/general/dashboard.json +type = KEYVALUEJSON + +[nodebb.admin-general-homepage] +file_filter = public/language//admin/general/homepage.json +source_file = public/language/en-GB/admin/general/homepage.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/homepage.json +trans.bn = public/language/bn/admin/general/homepage.json +trans.bg = public/language/bg/admin/general/homepage.json +trans.cs = public/language/cs/admin/general/homepage.json +trans.da = public/language/da/admin/general/homepage.json +trans.de = public/language/de/admin/general/homepage.json +trans.el = public/language/el/admin/general/homepage.json +trans.en_US = public/language/en-US/admin/general/homepage.json +trans.en@pirate = public/language/en-x-pirate/admin/general/homepage.json +trans.es = public/language/es/admin/general/homepage.json +trans.et = public/language/et/admin/general/homepage.json +trans.fa_IR = public/language/fa-IR/admin/general/homepage.json +trans.fi = public/language/fi/admin/general/homepage.json +trans.fr = public/language/fr/admin/general/homepage.json +trans.gl = public/language/gl/admin/general/homepage.json +trans.he = public/language/he/admin/general/homepage.json +trans.hu = public/language/hu/admin/general/homepage.json +trans.id = public/language/id/admin/general/homepage.json +trans.it = public/language/it/admin/general/homepage.json +trans.ja = public/language/ja/admin/general/homepage.json +trans.ko = public/language/ko/admin/general/homepage.json +trans.lt = public/language/lt/admin/general/homepage.json +trans.ms = public/language/ms/admin/general/homepage.json +trans.nb = public/language/nb/admin/general/homepage.json +trans.nl = public/language/nl/admin/general/homepage.json +trans.pl = public/language/pl/admin/general/homepage.json +trans.pt_BR = public/language/pt-BR/admin/general/homepage.json +trans.pt_PT = public/language/pt-PT/admin/general/homepage.json +trans.ru = public/language/ru/admin/general/homepage.json +trans.ro = public/language/ro/admin/general/homepage.json +trans.rw = public/language/rw/admin/general/homepage.json +trans.sc = public/language/sc/admin/general/homepage.json +trans.sk = public/language/sk/admin/general/homepage.json +trans.sl = public/language/sl/admin/general/homepage.json +trans.sr = public/language/sr/admin/general/homepage.json +trans.sv = public/language/sv/admin/general/homepage.json +trans.th = public/language/th/admin/general/homepage.json +trans.tr = public/language/tr/admin/general/homepage.json +trans.vi = public/language/vi/admin/general/homepage.json +trans.zh_CN = public/language/zh-CN/admin/general/homepage.json +trans.zh_TW = public/language/zh-TW/admin/general/homepage.json +type = KEYVALUEJSON + +[nodebb.admin-general-languages] +file_filter = public/language//admin/general/languages.json +source_file = public/language/en-GB/admin/general/languages.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/languages.json +trans.bn = public/language/bn/admin/general/languages.json +trans.bg = public/language/bg/admin/general/languages.json +trans.cs = public/language/cs/admin/general/languages.json +trans.da = public/language/da/admin/general/languages.json +trans.de = public/language/de/admin/general/languages.json +trans.el = public/language/el/admin/general/languages.json +trans.en_US = public/language/en-US/admin/general/languages.json +trans.en@pirate = public/language/en-x-pirate/admin/general/languages.json +trans.es = public/language/es/admin/general/languages.json +trans.et = public/language/et/admin/general/languages.json +trans.fa_IR = public/language/fa-IR/admin/general/languages.json +trans.fi = public/language/fi/admin/general/languages.json +trans.fr = public/language/fr/admin/general/languages.json +trans.gl = public/language/gl/admin/general/languages.json +trans.he = public/language/he/admin/general/languages.json +trans.hu = public/language/hu/admin/general/languages.json +trans.id = public/language/id/admin/general/languages.json +trans.it = public/language/it/admin/general/languages.json +trans.ja = public/language/ja/admin/general/languages.json +trans.ko = public/language/ko/admin/general/languages.json +trans.lt = public/language/lt/admin/general/languages.json +trans.ms = public/language/ms/admin/general/languages.json +trans.nb = public/language/nb/admin/general/languages.json +trans.nl = public/language/nl/admin/general/languages.json +trans.pl = public/language/pl/admin/general/languages.json +trans.pt_BR = public/language/pt-BR/admin/general/languages.json +trans.pt_PT = public/language/pt-PT/admin/general/languages.json +trans.ru = public/language/ru/admin/general/languages.json +trans.ro = public/language/ro/admin/general/languages.json +trans.rw = public/language/rw/admin/general/languages.json +trans.sc = public/language/sc/admin/general/languages.json +trans.sk = public/language/sk/admin/general/languages.json +trans.sl = public/language/sl/admin/general/languages.json +trans.sr = public/language/sr/admin/general/languages.json +trans.sv = public/language/sv/admin/general/languages.json +trans.th = public/language/th/admin/general/languages.json +trans.tr = public/language/tr/admin/general/languages.json +trans.vi = public/language/vi/admin/general/languages.json +trans.zh_CN = public/language/zh-CN/admin/general/languages.json +trans.zh_TW = public/language/zh-TW/admin/general/languages.json +type = KEYVALUEJSON + +[nodebb.admin-general-navigation] +file_filter = public/language//admin/general/navigation.json +source_file = public/language/en-GB/admin/general/navigation.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/navigation.json +trans.bn = public/language/bn/admin/general/navigation.json +trans.bg = public/language/bg/admin/general/navigation.json +trans.cs = public/language/cs/admin/general/navigation.json +trans.da = public/language/da/admin/general/navigation.json +trans.de = public/language/de/admin/general/navigation.json +trans.el = public/language/el/admin/general/navigation.json +trans.en_US = public/language/en-US/admin/general/navigation.json +trans.en@pirate = public/language/en-x-pirate/admin/general/navigation.json +trans.es = public/language/es/admin/general/navigation.json +trans.et = public/language/et/admin/general/navigation.json +trans.fa_IR = public/language/fa-IR/admin/general/navigation.json +trans.fi = public/language/fi/admin/general/navigation.json +trans.fr = public/language/fr/admin/general/navigation.json +trans.gl = public/language/gl/admin/general/navigation.json +trans.he = public/language/he/admin/general/navigation.json +trans.hu = public/language/hu/admin/general/navigation.json +trans.id = public/language/id/admin/general/navigation.json +trans.it = public/language/it/admin/general/navigation.json +trans.ja = public/language/ja/admin/general/navigation.json +trans.ko = public/language/ko/admin/general/navigation.json +trans.lt = public/language/lt/admin/general/navigation.json +trans.ms = public/language/ms/admin/general/navigation.json +trans.nb = public/language/nb/admin/general/navigation.json +trans.nl = public/language/nl/admin/general/navigation.json +trans.pl = public/language/pl/admin/general/navigation.json +trans.pt_BR = public/language/pt-BR/admin/general/navigation.json +trans.pt_PT = public/language/pt-PT/admin/general/navigation.json +trans.ru = public/language/ru/admin/general/navigation.json +trans.ro = public/language/ro/admin/general/navigation.json +trans.rw = public/language/rw/admin/general/navigation.json +trans.sc = public/language/sc/admin/general/navigation.json +trans.sk = public/language/sk/admin/general/navigation.json +trans.sl = public/language/sl/admin/general/navigation.json +trans.sr = public/language/sr/admin/general/navigation.json +trans.sv = public/language/sv/admin/general/navigation.json +trans.th = public/language/th/admin/general/navigation.json +trans.tr = public/language/tr/admin/general/navigation.json +trans.vi = public/language/vi/admin/general/navigation.json +trans.zh_CN = public/language/zh-CN/admin/general/navigation.json +trans.zh_TW = public/language/zh-TW/admin/general/navigation.json +type = KEYVALUEJSON + +[nodebb.admin-general-social] +file_filter = public/language//admin/general/social.json +source_file = public/language/en-GB/admin/general/social.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/social.json +trans.bn = public/language/bn/admin/general/social.json +trans.bg = public/language/bg/admin/general/social.json +trans.cs = public/language/cs/admin/general/social.json +trans.da = public/language/da/admin/general/social.json +trans.de = public/language/de/admin/general/social.json +trans.el = public/language/el/admin/general/social.json +trans.en_US = public/language/en-US/admin/general/social.json +trans.en@pirate = public/language/en-x-pirate/admin/general/social.json +trans.es = public/language/es/admin/general/social.json +trans.et = public/language/et/admin/general/social.json +trans.fa_IR = public/language/fa-IR/admin/general/social.json +trans.fi = public/language/fi/admin/general/social.json +trans.fr = public/language/fr/admin/general/social.json +trans.gl = public/language/gl/admin/general/social.json +trans.he = public/language/he/admin/general/social.json +trans.hu = public/language/hu/admin/general/social.json +trans.id = public/language/id/admin/general/social.json +trans.it = public/language/it/admin/general/social.json +trans.ja = public/language/ja/admin/general/social.json +trans.ko = public/language/ko/admin/general/social.json +trans.lt = public/language/lt/admin/general/social.json +trans.ms = public/language/ms/admin/general/social.json +trans.nb = public/language/nb/admin/general/social.json +trans.nl = public/language/nl/admin/general/social.json +trans.pl = public/language/pl/admin/general/social.json +trans.pt_BR = public/language/pt-BR/admin/general/social.json +trans.pt_PT = public/language/pt-PT/admin/general/social.json +trans.ru = public/language/ru/admin/general/social.json +trans.ro = public/language/ro/admin/general/social.json +trans.rw = public/language/rw/admin/general/social.json +trans.sc = public/language/sc/admin/general/social.json +trans.sk = public/language/sk/admin/general/social.json +trans.sl = public/language/sl/admin/general/social.json +trans.sr = public/language/sr/admin/general/social.json +trans.sv = public/language/sv/admin/general/social.json +trans.th = public/language/th/admin/general/social.json +trans.tr = public/language/tr/admin/general/social.json +trans.vi = public/language/vi/admin/general/social.json +trans.zh_CN = public/language/zh-CN/admin/general/social.json +trans.zh_TW = public/language/zh-TW/admin/general/social.json +type = KEYVALUEJSON + +[nodebb.admin-general-sounds] +file_filter = public/language//admin/general/sounds.json +source_file = public/language/en-GB/admin/general/sounds.json +source_lang = en_GB +trans.ar = public/language/ar/admin/general/sounds.json +trans.bn = public/language/bn/admin/general/sounds.json +trans.bg = public/language/bg/admin/general/sounds.json +trans.cs = public/language/cs/admin/general/sounds.json +trans.da = public/language/da/admin/general/sounds.json +trans.de = public/language/de/admin/general/sounds.json +trans.el = public/language/el/admin/general/sounds.json +trans.en_US = public/language/en-US/admin/general/sounds.json +trans.en@pirate = public/language/en-x-pirate/admin/general/sounds.json +trans.es = public/language/es/admin/general/sounds.json +trans.et = public/language/et/admin/general/sounds.json +trans.fa_IR = public/language/fa-IR/admin/general/sounds.json +trans.fi = public/language/fi/admin/general/sounds.json +trans.fr = public/language/fr/admin/general/sounds.json +trans.gl = public/language/gl/admin/general/sounds.json +trans.he = public/language/he/admin/general/sounds.json +trans.hu = public/language/hu/admin/general/sounds.json +trans.id = public/language/id/admin/general/sounds.json +trans.it = public/language/it/admin/general/sounds.json +trans.ja = public/language/ja/admin/general/sounds.json +trans.ko = public/language/ko/admin/general/sounds.json +trans.lt = public/language/lt/admin/general/sounds.json +trans.ms = public/language/ms/admin/general/sounds.json +trans.nb = public/language/nb/admin/general/sounds.json +trans.nl = public/language/nl/admin/general/sounds.json +trans.pl = public/language/pl/admin/general/sounds.json +trans.pt_BR = public/language/pt-BR/admin/general/sounds.json +trans.pt_PT = public/language/pt-PT/admin/general/sounds.json +trans.ru = public/language/ru/admin/general/sounds.json +trans.ro = public/language/ro/admin/general/sounds.json +trans.rw = public/language/rw/admin/general/sounds.json +trans.sc = public/language/sc/admin/general/sounds.json +trans.sk = public/language/sk/admin/general/sounds.json +trans.sl = public/language/sl/admin/general/sounds.json +trans.sr = public/language/sr/admin/general/sounds.json +trans.sv = public/language/sv/admin/general/sounds.json +trans.th = public/language/th/admin/general/sounds.json +trans.tr = public/language/tr/admin/general/sounds.json +trans.vi = public/language/vi/admin/general/sounds.json +trans.zh_CN = public/language/zh-CN/admin/general/sounds.json +trans.zh_TW = public/language/zh-TW/admin/general/sounds.json +type = KEYVALUEJSON + +[nodebb.admin-manage-categories] +file_filter = public/language//admin/manage/categories.json +source_file = public/language/en-GB/admin/manage/categories.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/categories.json +trans.bn = public/language/bn/admin/manage/categories.json +trans.bg = public/language/bg/admin/manage/categories.json +trans.cs = public/language/cs/admin/manage/categories.json +trans.da = public/language/da/admin/manage/categories.json +trans.de = public/language/de/admin/manage/categories.json +trans.el = public/language/el/admin/manage/categories.json +trans.en_US = public/language/en-US/admin/manage/categories.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/categories.json +trans.es = public/language/es/admin/manage/categories.json +trans.et = public/language/et/admin/manage/categories.json +trans.fa_IR = public/language/fa-IR/admin/manage/categories.json +trans.fi = public/language/fi/admin/manage/categories.json +trans.fr = public/language/fr/admin/manage/categories.json +trans.gl = public/language/gl/admin/manage/categories.json +trans.he = public/language/he/admin/manage/categories.json +trans.hu = public/language/hu/admin/manage/categories.json +trans.id = public/language/id/admin/manage/categories.json +trans.it = public/language/it/admin/manage/categories.json +trans.ja = public/language/ja/admin/manage/categories.json +trans.ko = public/language/ko/admin/manage/categories.json +trans.lt = public/language/lt/admin/manage/categories.json +trans.ms = public/language/ms/admin/manage/categories.json +trans.nb = public/language/nb/admin/manage/categories.json +trans.nl = public/language/nl/admin/manage/categories.json +trans.pl = public/language/pl/admin/manage/categories.json +trans.pt_BR = public/language/pt-BR/admin/manage/categories.json +trans.pt_PT = public/language/pt-PT/admin/manage/categories.json +trans.ru = public/language/ru/admin/manage/categories.json +trans.ro = public/language/ro/admin/manage/categories.json +trans.rw = public/language/rw/admin/manage/categories.json +trans.sc = public/language/sc/admin/manage/categories.json +trans.sk = public/language/sk/admin/manage/categories.json +trans.sl = public/language/sl/admin/manage/categories.json +trans.sr = public/language/sr/admin/manage/categories.json +trans.sv = public/language/sv/admin/manage/categories.json +trans.th = public/language/th/admin/manage/categories.json +trans.tr = public/language/tr/admin/manage/categories.json +trans.vi = public/language/vi/admin/manage/categories.json +trans.zh_CN = public/language/zh-CN/admin/manage/categories.json +trans.zh_TW = public/language/zh-TW/admin/manage/categories.json +type = KEYVALUEJSON + +[nodebb.admin-manage-flags] +file_filter = public/language//admin/manage/flags.json +source_file = public/language/en-GB/admin/manage/flags.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/flags.json +trans.bn = public/language/bn/admin/manage/flags.json +trans.bg = public/language/bg/admin/manage/flags.json +trans.cs = public/language/cs/admin/manage/flags.json +trans.da = public/language/da/admin/manage/flags.json +trans.de = public/language/de/admin/manage/flags.json +trans.el = public/language/el/admin/manage/flags.json +trans.en_US = public/language/en-US/admin/manage/flags.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/flags.json +trans.es = public/language/es/admin/manage/flags.json +trans.et = public/language/et/admin/manage/flags.json +trans.fa_IR = public/language/fa-IR/admin/manage/flags.json +trans.fi = public/language/fi/admin/manage/flags.json +trans.fr = public/language/fr/admin/manage/flags.json +trans.gl = public/language/gl/admin/manage/flags.json +trans.he = public/language/he/admin/manage/flags.json +trans.hu = public/language/hu/admin/manage/flags.json +trans.id = public/language/id/admin/manage/flags.json +trans.it = public/language/it/admin/manage/flags.json +trans.ja = public/language/ja/admin/manage/flags.json +trans.ko = public/language/ko/admin/manage/flags.json +trans.lt = public/language/lt/admin/manage/flags.json +trans.ms = public/language/ms/admin/manage/flags.json +trans.nb = public/language/nb/admin/manage/flags.json +trans.nl = public/language/nl/admin/manage/flags.json +trans.pl = public/language/pl/admin/manage/flags.json +trans.pt_BR = public/language/pt-BR/admin/manage/flags.json +trans.pt_PT = public/language/pt-PT/admin/manage/flags.json +trans.ru = public/language/ru/admin/manage/flags.json +trans.ro = public/language/ro/admin/manage/flags.json +trans.rw = public/language/rw/admin/manage/flags.json +trans.sc = public/language/sc/admin/manage/flags.json +trans.sk = public/language/sk/admin/manage/flags.json +trans.sl = public/language/sl/admin/manage/flags.json +trans.sr = public/language/sr/admin/manage/flags.json +trans.sv = public/language/sv/admin/manage/flags.json +trans.th = public/language/th/admin/manage/flags.json +trans.tr = public/language/tr/admin/manage/flags.json +trans.vi = public/language/vi/admin/manage/flags.json +trans.zh_CN = public/language/zh-CN/admin/manage/flags.json +trans.zh_TW = public/language/zh-TW/admin/manage/flags.json +type = KEYVALUEJSON + +[nodebb.admin-manage-groups] +file_filter = public/language//admin/manage/groups.json +source_file = public/language/en-GB/admin/manage/groups.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/groups.json +trans.bn = public/language/bn/admin/manage/groups.json +trans.bg = public/language/bg/admin/manage/groups.json +trans.cs = public/language/cs/admin/manage/groups.json +trans.da = public/language/da/admin/manage/groups.json +trans.de = public/language/de/admin/manage/groups.json +trans.el = public/language/el/admin/manage/groups.json +trans.en_US = public/language/en-US/admin/manage/groups.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/groups.json +trans.es = public/language/es/admin/manage/groups.json +trans.et = public/language/et/admin/manage/groups.json +trans.fa_IR = public/language/fa-IR/admin/manage/groups.json +trans.fi = public/language/fi/admin/manage/groups.json +trans.fr = public/language/fr/admin/manage/groups.json +trans.gl = public/language/gl/admin/manage/groups.json +trans.he = public/language/he/admin/manage/groups.json +trans.hu = public/language/hu/admin/manage/groups.json +trans.id = public/language/id/admin/manage/groups.json +trans.it = public/language/it/admin/manage/groups.json +trans.ja = public/language/ja/admin/manage/groups.json +trans.ko = public/language/ko/admin/manage/groups.json +trans.lt = public/language/lt/admin/manage/groups.json +trans.ms = public/language/ms/admin/manage/groups.json +trans.nb = public/language/nb/admin/manage/groups.json +trans.nl = public/language/nl/admin/manage/groups.json +trans.pl = public/language/pl/admin/manage/groups.json +trans.pt_BR = public/language/pt-BR/admin/manage/groups.json +trans.pt_PT = public/language/pt-PT/admin/manage/groups.json +trans.ru = public/language/ru/admin/manage/groups.json +trans.ro = public/language/ro/admin/manage/groups.json +trans.rw = public/language/rw/admin/manage/groups.json +trans.sc = public/language/sc/admin/manage/groups.json +trans.sk = public/language/sk/admin/manage/groups.json +trans.sl = public/language/sl/admin/manage/groups.json +trans.sr = public/language/sr/admin/manage/groups.json +trans.sv = public/language/sv/admin/manage/groups.json +trans.th = public/language/th/admin/manage/groups.json +trans.tr = public/language/tr/admin/manage/groups.json +trans.vi = public/language/vi/admin/manage/groups.json +trans.zh_CN = public/language/zh-CN/admin/manage/groups.json +trans.zh_TW = public/language/zh-TW/admin/manage/groups.json +type = KEYVALUEJSON + +[nodebb.admin-manage-ip-blacklist] +file_filter = public/language//admin/manage/ip-blacklist.json +source_file = public/language/en-GB/admin/manage/ip-blacklist.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/ip-blacklist.json +trans.bn = public/language/bn/admin/manage/ip-blacklist.json +trans.bg = public/language/bg/admin/manage/ip-blacklist.json +trans.cs = public/language/cs/admin/manage/ip-blacklist.json +trans.da = public/language/da/admin/manage/ip-blacklist.json +trans.de = public/language/de/admin/manage/ip-blacklist.json +trans.el = public/language/el/admin/manage/ip-blacklist.json +trans.en_US = public/language/en-US/admin/manage/ip-blacklist.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/ip-blacklist.json +trans.es = public/language/es/admin/manage/ip-blacklist.json +trans.et = public/language/et/admin/manage/ip-blacklist.json +trans.fa_IR = public/language/fa-IR/admin/manage/ip-blacklist.json +trans.fi = public/language/fi/admin/manage/ip-blacklist.json +trans.fr = public/language/fr/admin/manage/ip-blacklist.json +trans.gl = public/language/gl/admin/manage/ip-blacklist.json +trans.he = public/language/he/admin/manage/ip-blacklist.json +trans.hu = public/language/hu/admin/manage/ip-blacklist.json +trans.id = public/language/id/admin/manage/ip-blacklist.json +trans.it = public/language/it/admin/manage/ip-blacklist.json +trans.ja = public/language/ja/admin/manage/ip-blacklist.json +trans.ko = public/language/ko/admin/manage/ip-blacklist.json +trans.lt = public/language/lt/admin/manage/ip-blacklist.json +trans.ms = public/language/ms/admin/manage/ip-blacklist.json +trans.nb = public/language/nb/admin/manage/ip-blacklist.json +trans.nl = public/language/nl/admin/manage/ip-blacklist.json +trans.pl = public/language/pl/admin/manage/ip-blacklist.json +trans.pt_BR = public/language/pt-BR/admin/manage/ip-blacklist.json +trans.pt_PT = public/language/pt-PT/admin/manage/ip-blacklist.json +trans.ru = public/language/ru/admin/manage/ip-blacklist.json +trans.ro = public/language/ro/admin/manage/ip-blacklist.json +trans.rw = public/language/rw/admin/manage/ip-blacklist.json +trans.sc = public/language/sc/admin/manage/ip-blacklist.json +trans.sk = public/language/sk/admin/manage/ip-blacklist.json +trans.sl = public/language/sl/admin/manage/ip-blacklist.json +trans.sr = public/language/sr/admin/manage/ip-blacklist.json +trans.sv = public/language/sv/admin/manage/ip-blacklist.json +trans.th = public/language/th/admin/manage/ip-blacklist.json +trans.tr = public/language/tr/admin/manage/ip-blacklist.json +trans.vi = public/language/vi/admin/manage/ip-blacklist.json +trans.zh_CN = public/language/zh-CN/admin/manage/ip-blacklist.json +trans.zh_TW = public/language/zh-TW/admin/manage/ip-blacklist.json +type = KEYVALUEJSON + +[nodebb.admin-manage-registration] +file_filter = public/language//admin/manage/registration.json +source_file = public/language/en-GB/admin/manage/registration.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/registration.json +trans.bn = public/language/bn/admin/manage/registration.json +trans.bg = public/language/bg/admin/manage/registration.json +trans.cs = public/language/cs/admin/manage/registration.json +trans.da = public/language/da/admin/manage/registration.json +trans.de = public/language/de/admin/manage/registration.json +trans.el = public/language/el/admin/manage/registration.json +trans.en_US = public/language/en-US/admin/manage/registration.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/registration.json +trans.es = public/language/es/admin/manage/registration.json +trans.et = public/language/et/admin/manage/registration.json +trans.fa_IR = public/language/fa-IR/admin/manage/registration.json +trans.fi = public/language/fi/admin/manage/registration.json +trans.fr = public/language/fr/admin/manage/registration.json +trans.gl = public/language/gl/admin/manage/registration.json +trans.he = public/language/he/admin/manage/registration.json +trans.hu = public/language/hu/admin/manage/registration.json +trans.id = public/language/id/admin/manage/registration.json +trans.it = public/language/it/admin/manage/registration.json +trans.ja = public/language/ja/admin/manage/registration.json +trans.ko = public/language/ko/admin/manage/registration.json +trans.lt = public/language/lt/admin/manage/registration.json +trans.ms = public/language/ms/admin/manage/registration.json +trans.nb = public/language/nb/admin/manage/registration.json +trans.nl = public/language/nl/admin/manage/registration.json +trans.pl = public/language/pl/admin/manage/registration.json +trans.pt_BR = public/language/pt-BR/admin/manage/registration.json +trans.pt_PT = public/language/pt-PT/admin/manage/registration.json +trans.ru = public/language/ru/admin/manage/registration.json +trans.ro = public/language/ro/admin/manage/registration.json +trans.rw = public/language/rw/admin/manage/registration.json +trans.sc = public/language/sc/admin/manage/registration.json +trans.sk = public/language/sk/admin/manage/registration.json +trans.sl = public/language/sl/admin/manage/registration.json +trans.sr = public/language/sr/admin/manage/registration.json +trans.sv = public/language/sv/admin/manage/registration.json +trans.th = public/language/th/admin/manage/registration.json +trans.tr = public/language/tr/admin/manage/registration.json +trans.vi = public/language/vi/admin/manage/registration.json +trans.zh_CN = public/language/zh-CN/admin/manage/registration.json +trans.zh_TW = public/language/zh-TW/admin/manage/registration.json +type = KEYVALUEJSON + +[nodebb.admin-manage-tags] +file_filter = public/language//admin/manage/tags.json +source_file = public/language/en-GB/admin/manage/tags.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/tags.json +trans.bn = public/language/bn/admin/manage/tags.json +trans.bg = public/language/bg/admin/manage/tags.json +trans.cs = public/language/cs/admin/manage/tags.json +trans.da = public/language/da/admin/manage/tags.json +trans.de = public/language/de/admin/manage/tags.json +trans.el = public/language/el/admin/manage/tags.json +trans.en_US = public/language/en-US/admin/manage/tags.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/tags.json +trans.es = public/language/es/admin/manage/tags.json +trans.et = public/language/et/admin/manage/tags.json +trans.fa_IR = public/language/fa-IR/admin/manage/tags.json +trans.fi = public/language/fi/admin/manage/tags.json +trans.fr = public/language/fr/admin/manage/tags.json +trans.gl = public/language/gl/admin/manage/tags.json +trans.he = public/language/he/admin/manage/tags.json +trans.hu = public/language/hu/admin/manage/tags.json +trans.id = public/language/id/admin/manage/tags.json +trans.it = public/language/it/admin/manage/tags.json +trans.ja = public/language/ja/admin/manage/tags.json +trans.ko = public/language/ko/admin/manage/tags.json +trans.lt = public/language/lt/admin/manage/tags.json +trans.ms = public/language/ms/admin/manage/tags.json +trans.nb = public/language/nb/admin/manage/tags.json +trans.nl = public/language/nl/admin/manage/tags.json +trans.pl = public/language/pl/admin/manage/tags.json +trans.pt_BR = public/language/pt-BR/admin/manage/tags.json +trans.pt_PT = public/language/pt-PT/admin/manage/tags.json +trans.ru = public/language/ru/admin/manage/tags.json +trans.ro = public/language/ro/admin/manage/tags.json +trans.rw = public/language/rw/admin/manage/tags.json +trans.sc = public/language/sc/admin/manage/tags.json +trans.sk = public/language/sk/admin/manage/tags.json +trans.sl = public/language/sl/admin/manage/tags.json +trans.sr = public/language/sr/admin/manage/tags.json +trans.sv = public/language/sv/admin/manage/tags.json +trans.th = public/language/th/admin/manage/tags.json +trans.tr = public/language/tr/admin/manage/tags.json +trans.vi = public/language/vi/admin/manage/tags.json +trans.zh_CN = public/language/zh-CN/admin/manage/tags.json +trans.zh_TW = public/language/zh-TW/admin/manage/tags.json +type = KEYVALUEJSON + +[nodebb.admin-manage-users] +file_filter = public/language//admin/manage/users.json +source_file = public/language/en-GB/admin/manage/users.json +source_lang = en_GB +trans.ar = public/language/ar/admin/manage/users.json +trans.bn = public/language/bn/admin/manage/users.json +trans.bg = public/language/bg/admin/manage/users.json +trans.cs = public/language/cs/admin/manage/users.json +trans.da = public/language/da/admin/manage/users.json +trans.de = public/language/de/admin/manage/users.json +trans.el = public/language/el/admin/manage/users.json +trans.en_US = public/language/en-US/admin/manage/users.json +trans.en@pirate = public/language/en-x-pirate/admin/manage/users.json +trans.es = public/language/es/admin/manage/users.json +trans.et = public/language/et/admin/manage/users.json +trans.fa_IR = public/language/fa-IR/admin/manage/users.json +trans.fi = public/language/fi/admin/manage/users.json +trans.fr = public/language/fr/admin/manage/users.json +trans.gl = public/language/gl/admin/manage/users.json +trans.he = public/language/he/admin/manage/users.json +trans.hu = public/language/hu/admin/manage/users.json +trans.id = public/language/id/admin/manage/users.json +trans.it = public/language/it/admin/manage/users.json +trans.ja = public/language/ja/admin/manage/users.json +trans.ko = public/language/ko/admin/manage/users.json +trans.lt = public/language/lt/admin/manage/users.json +trans.ms = public/language/ms/admin/manage/users.json +trans.nb = public/language/nb/admin/manage/users.json +trans.nl = public/language/nl/admin/manage/users.json +trans.pl = public/language/pl/admin/manage/users.json +trans.pt_BR = public/language/pt-BR/admin/manage/users.json +trans.pt_PT = public/language/pt-PT/admin/manage/users.json +trans.ru = public/language/ru/admin/manage/users.json +trans.ro = public/language/ro/admin/manage/users.json +trans.rw = public/language/rw/admin/manage/users.json +trans.sc = public/language/sc/admin/manage/users.json +trans.sk = public/language/sk/admin/manage/users.json +trans.sl = public/language/sl/admin/manage/users.json +trans.sr = public/language/sr/admin/manage/users.json +trans.sv = public/language/sv/admin/manage/users.json +trans.th = public/language/th/admin/manage/users.json +trans.tr = public/language/tr/admin/manage/users.json +trans.vi = public/language/vi/admin/manage/users.json +trans.zh_CN = public/language/zh-CN/admin/manage/users.json +trans.zh_TW = public/language/zh-TW/admin/manage/users.json +type = KEYVALUEJSON + +[nodebb.admin-settings-advanced] +file_filter = public/language//admin/settings/advanced.json +source_file = public/language/en-GB/admin/settings/advanced.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/advanced.json +trans.bn = public/language/bn/admin/settings/advanced.json +trans.bg = public/language/bg/admin/settings/advanced.json +trans.cs = public/language/cs/admin/settings/advanced.json +trans.da = public/language/da/admin/settings/advanced.json +trans.de = public/language/de/admin/settings/advanced.json +trans.el = public/language/el/admin/settings/advanced.json +trans.en_US = public/language/en-US/admin/settings/advanced.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/advanced.json +trans.es = public/language/es/admin/settings/advanced.json +trans.et = public/language/et/admin/settings/advanced.json +trans.fa_IR = public/language/fa-IR/admin/settings/advanced.json +trans.fi = public/language/fi/admin/settings/advanced.json +trans.fr = public/language/fr/admin/settings/advanced.json +trans.gl = public/language/gl/admin/settings/advanced.json +trans.he = public/language/he/admin/settings/advanced.json +trans.hu = public/language/hu/admin/settings/advanced.json +trans.id = public/language/id/admin/settings/advanced.json +trans.it = public/language/it/admin/settings/advanced.json +trans.ja = public/language/ja/admin/settings/advanced.json +trans.ko = public/language/ko/admin/settings/advanced.json +trans.lt = public/language/lt/admin/settings/advanced.json +trans.ms = public/language/ms/admin/settings/advanced.json +trans.nb = public/language/nb/admin/settings/advanced.json +trans.nl = public/language/nl/admin/settings/advanced.json +trans.pl = public/language/pl/admin/settings/advanced.json +trans.pt_BR = public/language/pt-BR/admin/settings/advanced.json +trans.pt_PT = public/language/pt-PT/admin/settings/advanced.json +trans.ru = public/language/ru/admin/settings/advanced.json +trans.ro = public/language/ro/admin/settings/advanced.json +trans.rw = public/language/rw/admin/settings/advanced.json +trans.sc = public/language/sc/admin/settings/advanced.json +trans.sk = public/language/sk/admin/settings/advanced.json +trans.sl = public/language/sl/admin/settings/advanced.json +trans.sr = public/language/sr/admin/settings/advanced.json +trans.sv = public/language/sv/admin/settings/advanced.json +trans.th = public/language/th/admin/settings/advanced.json +trans.tr = public/language/tr/admin/settings/advanced.json +trans.vi = public/language/vi/admin/settings/advanced.json +trans.zh_CN = public/language/zh-CN/admin/settings/advanced.json +trans.zh_TW = public/language/zh-TW/admin/settings/advanced.json +type = KEYVALUEJSON + +[nodebb.admin-settings-cookies] +file_filter = public/language//admin/settings/cookies.json +source_file = public/language/en-GB/admin/settings/cookies.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/cookies.json +trans.bn = public/language/bn/admin/settings/cookies.json +trans.bg = public/language/bg/admin/settings/cookies.json +trans.cs = public/language/cs/admin/settings/cookies.json +trans.da = public/language/da/admin/settings/cookies.json +trans.de = public/language/de/admin/settings/cookies.json +trans.el = public/language/el/admin/settings/cookies.json +trans.en_US = public/language/en-US/admin/settings/cookies.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/cookies.json +trans.es = public/language/es/admin/settings/cookies.json +trans.et = public/language/et/admin/settings/cookies.json +trans.fa_IR = public/language/fa-IR/admin/settings/cookies.json +trans.fi = public/language/fi/admin/settings/cookies.json +trans.fr = public/language/fr/admin/settings/cookies.json +trans.gl = public/language/gl/admin/settings/cookies.json +trans.he = public/language/he/admin/settings/cookies.json +trans.hu = public/language/hu/admin/settings/cookies.json +trans.id = public/language/id/admin/settings/cookies.json +trans.it = public/language/it/admin/settings/cookies.json +trans.ja = public/language/ja/admin/settings/cookies.json +trans.ko = public/language/ko/admin/settings/cookies.json +trans.lt = public/language/lt/admin/settings/cookies.json +trans.ms = public/language/ms/admin/settings/cookies.json +trans.nb = public/language/nb/admin/settings/cookies.json +trans.nl = public/language/nl/admin/settings/cookies.json +trans.pl = public/language/pl/admin/settings/cookies.json +trans.pt_BR = public/language/pt-BR/admin/settings/cookies.json +trans.pt_PT = public/language/pt-PT/admin/settings/cookies.json +trans.ru = public/language/ru/admin/settings/cookies.json +trans.ro = public/language/ro/admin/settings/cookies.json +trans.rw = public/language/rw/admin/settings/cookies.json +trans.sc = public/language/sc/admin/settings/cookies.json +trans.sk = public/language/sk/admin/settings/cookies.json +trans.sl = public/language/sl/admin/settings/cookies.json +trans.sr = public/language/sr/admin/settings/cookies.json +trans.sv = public/language/sv/admin/settings/cookies.json +trans.th = public/language/th/admin/settings/cookies.json +trans.tr = public/language/tr/admin/settings/cookies.json +trans.vi = public/language/vi/admin/settings/cookies.json +trans.zh_CN = public/language/zh-CN/admin/settings/cookies.json +trans.zh_TW = public/language/zh-TW/admin/settings/cookies.json +type = KEYVALUEJSON + +[nodebb.admin-settings-general] +file_filter = public/language//admin/settings/general.json +source_file = public/language/en-GB/admin/settings/general.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/general.json +trans.bn = public/language/bn/admin/settings/general.json +trans.bg = public/language/bg/admin/settings/general.json +trans.cs = public/language/cs/admin/settings/general.json +trans.da = public/language/da/admin/settings/general.json +trans.de = public/language/de/admin/settings/general.json +trans.el = public/language/el/admin/settings/general.json +trans.en_US = public/language/en-US/admin/settings/general.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/general.json +trans.es = public/language/es/admin/settings/general.json +trans.et = public/language/et/admin/settings/general.json +trans.fa_IR = public/language/fa-IR/admin/settings/general.json +trans.fi = public/language/fi/admin/settings/general.json +trans.fr = public/language/fr/admin/settings/general.json +trans.gl = public/language/gl/admin/settings/general.json +trans.he = public/language/he/admin/settings/general.json +trans.hu = public/language/hu/admin/settings/general.json +trans.id = public/language/id/admin/settings/general.json +trans.it = public/language/it/admin/settings/general.json +trans.ja = public/language/ja/admin/settings/general.json +trans.ko = public/language/ko/admin/settings/general.json +trans.lt = public/language/lt/admin/settings/general.json +trans.ms = public/language/ms/admin/settings/general.json +trans.nb = public/language/nb/admin/settings/general.json +trans.nl = public/language/nl/admin/settings/general.json +trans.pl = public/language/pl/admin/settings/general.json +trans.pt_BR = public/language/pt-BR/admin/settings/general.json +trans.pt_PT = public/language/pt-PT/admin/settings/general.json +trans.ru = public/language/ru/admin/settings/general.json +trans.ro = public/language/ro/admin/settings/general.json +trans.rw = public/language/rw/admin/settings/general.json +trans.sc = public/language/sc/admin/settings/general.json +trans.sk = public/language/sk/admin/settings/general.json +trans.sl = public/language/sl/admin/settings/general.json +trans.sr = public/language/sr/admin/settings/general.json +trans.sv = public/language/sv/admin/settings/general.json +trans.th = public/language/th/admin/settings/general.json +trans.tr = public/language/tr/admin/settings/general.json +trans.vi = public/language/vi/admin/settings/general.json +trans.zh_CN = public/language/zh-CN/admin/settings/general.json +trans.zh_TW = public/language/zh-TW/admin/settings/general.json +type = KEYVALUEJSON + +[nodebb.admin-settings-guest] +file_filter = public/language//admin/settings/guest.json +source_file = public/language/en-GB/admin/settings/guest.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/guest.json +trans.bn = public/language/bn/admin/settings/guest.json +trans.bg = public/language/bg/admin/settings/guest.json +trans.cs = public/language/cs/admin/settings/guest.json +trans.da = public/language/da/admin/settings/guest.json +trans.de = public/language/de/admin/settings/guest.json +trans.el = public/language/el/admin/settings/guest.json +trans.en_US = public/language/en-US/admin/settings/guest.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/guest.json +trans.es = public/language/es/admin/settings/guest.json +trans.et = public/language/et/admin/settings/guest.json +trans.fa_IR = public/language/fa-IR/admin/settings/guest.json +trans.fi = public/language/fi/admin/settings/guest.json +trans.fr = public/language/fr/admin/settings/guest.json +trans.gl = public/language/gl/admin/settings/guest.json +trans.he = public/language/he/admin/settings/guest.json +trans.hu = public/language/hu/admin/settings/guest.json +trans.id = public/language/id/admin/settings/guest.json +trans.it = public/language/it/admin/settings/guest.json +trans.ja = public/language/ja/admin/settings/guest.json +trans.ko = public/language/ko/admin/settings/guest.json +trans.lt = public/language/lt/admin/settings/guest.json +trans.ms = public/language/ms/admin/settings/guest.json +trans.nb = public/language/nb/admin/settings/guest.json +trans.nl = public/language/nl/admin/settings/guest.json +trans.pl = public/language/pl/admin/settings/guest.json +trans.pt_BR = public/language/pt-BR/admin/settings/guest.json +trans.pt_PT = public/language/pt-PT/admin/settings/guest.json +trans.ru = public/language/ru/admin/settings/guest.json +trans.ro = public/language/ro/admin/settings/guest.json +trans.rw = public/language/rw/admin/settings/guest.json +trans.sc = public/language/sc/admin/settings/guest.json +trans.sk = public/language/sk/admin/settings/guest.json +trans.sl = public/language/sl/admin/settings/guest.json +trans.sr = public/language/sr/admin/settings/guest.json +trans.sv = public/language/sv/admin/settings/guest.json +trans.th = public/language/th/admin/settings/guest.json +trans.tr = public/language/tr/admin/settings/guest.json +trans.vi = public/language/vi/admin/settings/guest.json +trans.zh_CN = public/language/zh-CN/admin/settings/guest.json +trans.zh_TW = public/language/zh-TW/admin/settings/guest.json +type = KEYVALUEJSON + +[nodebb.admin-settings-pagination] +file_filter = public/language//admin/settings/pagination.json +source_file = public/language/en-GB/admin/settings/pagination.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/pagination.json +trans.bn = public/language/bn/admin/settings/pagination.json +trans.bg = public/language/bg/admin/settings/pagination.json +trans.cs = public/language/cs/admin/settings/pagination.json +trans.da = public/language/da/admin/settings/pagination.json +trans.de = public/language/de/admin/settings/pagination.json +trans.el = public/language/el/admin/settings/pagination.json +trans.en_US = public/language/en-US/admin/settings/pagination.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/pagination.json +trans.es = public/language/es/admin/settings/pagination.json +trans.et = public/language/et/admin/settings/pagination.json +trans.fa_IR = public/language/fa-IR/admin/settings/pagination.json +trans.fi = public/language/fi/admin/settings/pagination.json +trans.fr = public/language/fr/admin/settings/pagination.json +trans.gl = public/language/gl/admin/settings/pagination.json +trans.he = public/language/he/admin/settings/pagination.json +trans.hu = public/language/hu/admin/settings/pagination.json +trans.id = public/language/id/admin/settings/pagination.json +trans.it = public/language/it/admin/settings/pagination.json +trans.ja = public/language/ja/admin/settings/pagination.json +trans.ko = public/language/ko/admin/settings/pagination.json +trans.lt = public/language/lt/admin/settings/pagination.json +trans.ms = public/language/ms/admin/settings/pagination.json +trans.nb = public/language/nb/admin/settings/pagination.json +trans.nl = public/language/nl/admin/settings/pagination.json +trans.pl = public/language/pl/admin/settings/pagination.json +trans.pt_BR = public/language/pt-BR/admin/settings/pagination.json +trans.pt_PT = public/language/pt-PT/admin/settings/pagination.json +trans.ru = public/language/ru/admin/settings/pagination.json +trans.ro = public/language/ro/admin/settings/pagination.json +trans.rw = public/language/rw/admin/settings/pagination.json +trans.sc = public/language/sc/admin/settings/pagination.json +trans.sk = public/language/sk/admin/settings/pagination.json +trans.sl = public/language/sl/admin/settings/pagination.json +trans.sr = public/language/sr/admin/settings/pagination.json +trans.sv = public/language/sv/admin/settings/pagination.json +trans.th = public/language/th/admin/settings/pagination.json +trans.tr = public/language/tr/admin/settings/pagination.json +trans.vi = public/language/vi/admin/settings/pagination.json +trans.zh_CN = public/language/zh-CN/admin/settings/pagination.json +trans.zh_TW = public/language/zh-TW/admin/settings/pagination.json +type = KEYVALUEJSON + +[nodebb.admin-settings-reputation] +file_filter = public/language//admin/settings/reputation.json +source_file = public/language/en-GB/admin/settings/reputation.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/reputation.json +trans.bn = public/language/bn/admin/settings/reputation.json +trans.bg = public/language/bg/admin/settings/reputation.json +trans.cs = public/language/cs/admin/settings/reputation.json +trans.da = public/language/da/admin/settings/reputation.json +trans.de = public/language/de/admin/settings/reputation.json +trans.el = public/language/el/admin/settings/reputation.json +trans.en_US = public/language/en-US/admin/settings/reputation.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/reputation.json +trans.es = public/language/es/admin/settings/reputation.json +trans.et = public/language/et/admin/settings/reputation.json +trans.fa_IR = public/language/fa-IR/admin/settings/reputation.json +trans.fi = public/language/fi/admin/settings/reputation.json +trans.fr = public/language/fr/admin/settings/reputation.json +trans.gl = public/language/gl/admin/settings/reputation.json +trans.he = public/language/he/admin/settings/reputation.json +trans.hu = public/language/hu/admin/settings/reputation.json +trans.id = public/language/id/admin/settings/reputation.json +trans.it = public/language/it/admin/settings/reputation.json +trans.ja = public/language/ja/admin/settings/reputation.json +trans.ko = public/language/ko/admin/settings/reputation.json +trans.lt = public/language/lt/admin/settings/reputation.json +trans.ms = public/language/ms/admin/settings/reputation.json +trans.nb = public/language/nb/admin/settings/reputation.json +trans.nl = public/language/nl/admin/settings/reputation.json +trans.pl = public/language/pl/admin/settings/reputation.json +trans.pt_BR = public/language/pt-BR/admin/settings/reputation.json +trans.pt_PT = public/language/pt-PT/admin/settings/reputation.json +trans.ru = public/language/ru/admin/settings/reputation.json +trans.ro = public/language/ro/admin/settings/reputation.json +trans.rw = public/language/rw/admin/settings/reputation.json +trans.sc = public/language/sc/admin/settings/reputation.json +trans.sk = public/language/sk/admin/settings/reputation.json +trans.sl = public/language/sl/admin/settings/reputation.json +trans.sr = public/language/sr/admin/settings/reputation.json +trans.sv = public/language/sv/admin/settings/reputation.json +trans.th = public/language/th/admin/settings/reputation.json +trans.tr = public/language/tr/admin/settings/reputation.json +trans.vi = public/language/vi/admin/settings/reputation.json +trans.zh_CN = public/language/zh-CN/admin/settings/reputation.json +trans.zh_TW = public/language/zh-TW/admin/settings/reputation.json +type = KEYVALUEJSON + +[nodebb.admin-settings-tags] +file_filter = public/language//admin/settings/tags.json +source_file = public/language/en-GB/admin/settings/tags.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/tags.json +trans.bn = public/language/bn/admin/settings/tags.json +trans.bg = public/language/bg/admin/settings/tags.json +trans.cs = public/language/cs/admin/settings/tags.json +trans.da = public/language/da/admin/settings/tags.json +trans.de = public/language/de/admin/settings/tags.json +trans.el = public/language/el/admin/settings/tags.json +trans.en_US = public/language/en-US/admin/settings/tags.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/tags.json +trans.es = public/language/es/admin/settings/tags.json +trans.et = public/language/et/admin/settings/tags.json +trans.fa_IR = public/language/fa-IR/admin/settings/tags.json +trans.fi = public/language/fi/admin/settings/tags.json +trans.fr = public/language/fr/admin/settings/tags.json +trans.gl = public/language/gl/admin/settings/tags.json +trans.he = public/language/he/admin/settings/tags.json +trans.hu = public/language/hu/admin/settings/tags.json +trans.id = public/language/id/admin/settings/tags.json +trans.it = public/language/it/admin/settings/tags.json +trans.ja = public/language/ja/admin/settings/tags.json +trans.ko = public/language/ko/admin/settings/tags.json +trans.lt = public/language/lt/admin/settings/tags.json +trans.ms = public/language/ms/admin/settings/tags.json +trans.nb = public/language/nb/admin/settings/tags.json +trans.nl = public/language/nl/admin/settings/tags.json +trans.pl = public/language/pl/admin/settings/tags.json +trans.pt_BR = public/language/pt-BR/admin/settings/tags.json +trans.pt_PT = public/language/pt-PT/admin/settings/tags.json +trans.ru = public/language/ru/admin/settings/tags.json +trans.ro = public/language/ro/admin/settings/tags.json +trans.rw = public/language/rw/admin/settings/tags.json +trans.sc = public/language/sc/admin/settings/tags.json +trans.sk = public/language/sk/admin/settings/tags.json +trans.sl = public/language/sl/admin/settings/tags.json +trans.sr = public/language/sr/admin/settings/tags.json +trans.sv = public/language/sv/admin/settings/tags.json +trans.th = public/language/th/admin/settings/tags.json +trans.tr = public/language/tr/admin/settings/tags.json +trans.vi = public/language/vi/admin/settings/tags.json +trans.zh_CN = public/language/zh-CN/admin/settings/tags.json +trans.zh_TW = public/language/zh-TW/admin/settings/tags.json +type = KEYVALUEJSON + +[nodebb.admin-settings-user] +file_filter = public/language//admin/settings/user.json +source_file = public/language/en-GB/admin/settings/user.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/user.json +trans.bn = public/language/bn/admin/settings/user.json +trans.bg = public/language/bg/admin/settings/user.json +trans.cs = public/language/cs/admin/settings/user.json +trans.da = public/language/da/admin/settings/user.json +trans.de = public/language/de/admin/settings/user.json +trans.el = public/language/el/admin/settings/user.json +trans.en_US = public/language/en-US/admin/settings/user.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/user.json +trans.es = public/language/es/admin/settings/user.json +trans.et = public/language/et/admin/settings/user.json +trans.fa_IR = public/language/fa-IR/admin/settings/user.json +trans.fi = public/language/fi/admin/settings/user.json +trans.fr = public/language/fr/admin/settings/user.json +trans.gl = public/language/gl/admin/settings/user.json +trans.he = public/language/he/admin/settings/user.json +trans.hu = public/language/hu/admin/settings/user.json +trans.id = public/language/id/admin/settings/user.json +trans.it = public/language/it/admin/settings/user.json +trans.ja = public/language/ja/admin/settings/user.json +trans.ko = public/language/ko/admin/settings/user.json +trans.lt = public/language/lt/admin/settings/user.json +trans.ms = public/language/ms/admin/settings/user.json +trans.nb = public/language/nb/admin/settings/user.json +trans.nl = public/language/nl/admin/settings/user.json +trans.pl = public/language/pl/admin/settings/user.json +trans.pt_BR = public/language/pt-BR/admin/settings/user.json +trans.pt_PT = public/language/pt-PT/admin/settings/user.json +trans.ru = public/language/ru/admin/settings/user.json +trans.ro = public/language/ro/admin/settings/user.json +trans.rw = public/language/rw/admin/settings/user.json +trans.sc = public/language/sc/admin/settings/user.json +trans.sk = public/language/sk/admin/settings/user.json +trans.sl = public/language/sl/admin/settings/user.json +trans.sr = public/language/sr/admin/settings/user.json +trans.sv = public/language/sv/admin/settings/user.json +trans.th = public/language/th/admin/settings/user.json +trans.tr = public/language/tr/admin/settings/user.json +trans.vi = public/language/vi/admin/settings/user.json +trans.zh_CN = public/language/zh-CN/admin/settings/user.json +trans.zh_TW = public/language/zh-TW/admin/settings/user.json +type = KEYVALUEJSON + +[nodebb.admin-settings-chat] +file_filter = public/language//admin/settings/chat.json +source_file = public/language/en-GB/admin/settings/chat.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/chat.json +trans.bn = public/language/bn/admin/settings/chat.json +trans.bg = public/language/bg/admin/settings/chat.json +trans.cs = public/language/cs/admin/settings/chat.json +trans.da = public/language/da/admin/settings/chat.json +trans.de = public/language/de/admin/settings/chat.json +trans.el = public/language/el/admin/settings/chat.json +trans.en_US = public/language/en-US/admin/settings/chat.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/chat.json +trans.es = public/language/es/admin/settings/chat.json +trans.et = public/language/et/admin/settings/chat.json +trans.fa_IR = public/language/fa-IR/admin/settings/chat.json +trans.fi = public/language/fi/admin/settings/chat.json +trans.fr = public/language/fr/admin/settings/chat.json +trans.gl = public/language/gl/admin/settings/chat.json +trans.he = public/language/he/admin/settings/chat.json +trans.hu = public/language/hu/admin/settings/chat.json +trans.id = public/language/id/admin/settings/chat.json +trans.it = public/language/it/admin/settings/chat.json +trans.ja = public/language/ja/admin/settings/chat.json +trans.ko = public/language/ko/admin/settings/chat.json +trans.lt = public/language/lt/admin/settings/chat.json +trans.ms = public/language/ms/admin/settings/chat.json +trans.nb = public/language/nb/admin/settings/chat.json +trans.nl = public/language/nl/admin/settings/chat.json +trans.pl = public/language/pl/admin/settings/chat.json +trans.pt_BR = public/language/pt-BR/admin/settings/chat.json +trans.pt_PT = public/language/pt-PT/admin/settings/chat.json +trans.ru = public/language/ru/admin/settings/chat.json +trans.ro = public/language/ro/admin/settings/chat.json +trans.rw = public/language/rw/admin/settings/chat.json +trans.sc = public/language/sc/admin/settings/chat.json +trans.sk = public/language/sk/admin/settings/chat.json +trans.sl = public/language/sl/admin/settings/chat.json +trans.sr = public/language/sr/admin/settings/chat.json +trans.sv = public/language/sv/admin/settings/chat.json +trans.th = public/language/th/admin/settings/chat.json +trans.tr = public/language/tr/admin/settings/chat.json +trans.vi = public/language/vi/admin/settings/chat.json +trans.zh_CN = public/language/zh-CN/admin/settings/chat.json +trans.zh_TW = public/language/zh-TW/admin/settings/chat.json +type = KEYVALUEJSON + +[nodebb.admin-settings-email] +file_filter = public/language//admin/settings/email.json +source_file = public/language/en-GB/admin/settings/email.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/email.json +trans.bn = public/language/bn/admin/settings/email.json +trans.bg = public/language/bg/admin/settings/email.json +trans.cs = public/language/cs/admin/settings/email.json +trans.da = public/language/da/admin/settings/email.json +trans.de = public/language/de/admin/settings/email.json +trans.el = public/language/el/admin/settings/email.json +trans.en_US = public/language/en-US/admin/settings/email.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/email.json +trans.es = public/language/es/admin/settings/email.json +trans.et = public/language/et/admin/settings/email.json +trans.fa_IR = public/language/fa-IR/admin/settings/email.json +trans.fi = public/language/fi/admin/settings/email.json +trans.fr = public/language/fr/admin/settings/email.json +trans.gl = public/language/gl/admin/settings/email.json +trans.he = public/language/he/admin/settings/email.json +trans.hu = public/language/hu/admin/settings/email.json +trans.id = public/language/id/admin/settings/email.json +trans.it = public/language/it/admin/settings/email.json +trans.ja = public/language/ja/admin/settings/email.json +trans.ko = public/language/ko/admin/settings/email.json +trans.lt = public/language/lt/admin/settings/email.json +trans.ms = public/language/ms/admin/settings/email.json +trans.nb = public/language/nb/admin/settings/email.json +trans.nl = public/language/nl/admin/settings/email.json +trans.pl = public/language/pl/admin/settings/email.json +trans.pt_BR = public/language/pt-BR/admin/settings/email.json +trans.pt_PT = public/language/pt-PT/admin/settings/email.json +trans.ru = public/language/ru/admin/settings/email.json +trans.ro = public/language/ro/admin/settings/email.json +trans.rw = public/language/rw/admin/settings/email.json +trans.sc = public/language/sc/admin/settings/email.json +trans.sk = public/language/sk/admin/settings/email.json +trans.sl = public/language/sl/admin/settings/email.json +trans.sr = public/language/sr/admin/settings/email.json +trans.sv = public/language/sv/admin/settings/email.json +trans.th = public/language/th/admin/settings/email.json +trans.tr = public/language/tr/admin/settings/email.json +trans.vi = public/language/vi/admin/settings/email.json +trans.zh_CN = public/language/zh-CN/admin/settings/email.json +trans.zh_TW = public/language/zh-TW/admin/settings/email.json +type = KEYVALUEJSON + +[nodebb.admin-settings-group] +file_filter = public/language//admin/settings/group.json +source_file = public/language/en-GB/admin/settings/group.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/group.json +trans.bn = public/language/bn/admin/settings/group.json +trans.bg = public/language/bg/admin/settings/group.json +trans.cs = public/language/cs/admin/settings/group.json +trans.da = public/language/da/admin/settings/group.json +trans.de = public/language/de/admin/settings/group.json +trans.el = public/language/el/admin/settings/group.json +trans.en_US = public/language/en-US/admin/settings/group.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/group.json +trans.es = public/language/es/admin/settings/group.json +trans.et = public/language/et/admin/settings/group.json +trans.fa_IR = public/language/fa-IR/admin/settings/group.json +trans.fi = public/language/fi/admin/settings/group.json +trans.fr = public/language/fr/admin/settings/group.json +trans.gl = public/language/gl/admin/settings/group.json +trans.he = public/language/he/admin/settings/group.json +trans.hu = public/language/hu/admin/settings/group.json +trans.id = public/language/id/admin/settings/group.json +trans.it = public/language/it/admin/settings/group.json +trans.ja = public/language/ja/admin/settings/group.json +trans.ko = public/language/ko/admin/settings/group.json +trans.lt = public/language/lt/admin/settings/group.json +trans.ms = public/language/ms/admin/settings/group.json +trans.nb = public/language/nb/admin/settings/group.json +trans.nl = public/language/nl/admin/settings/group.json +trans.pl = public/language/pl/admin/settings/group.json +trans.pt_BR = public/language/pt-BR/admin/settings/group.json +trans.pt_PT = public/language/pt-PT/admin/settings/group.json +trans.ru = public/language/ru/admin/settings/group.json +trans.ro = public/language/ro/admin/settings/group.json +trans.rw = public/language/rw/admin/settings/group.json +trans.sc = public/language/sc/admin/settings/group.json +trans.sk = public/language/sk/admin/settings/group.json +trans.sl = public/language/sl/admin/settings/group.json +trans.sr = public/language/sr/admin/settings/group.json +trans.sv = public/language/sv/admin/settings/group.json +trans.th = public/language/th/admin/settings/group.json +trans.tr = public/language/tr/admin/settings/group.json +trans.vi = public/language/vi/admin/settings/group.json +trans.zh_CN = public/language/zh-CN/admin/settings/group.json +trans.zh_TW = public/language/zh-TW/admin/settings/group.json +type = KEYVALUEJSON + +[nodebb.admin-settings-notifications] +file_filter = public/language//admin/settings/notifications.json +source_file = public/language/en-GB/admin/settings/notifications.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/notifications.json +trans.bn = public/language/bn/admin/settings/notifications.json +trans.bg = public/language/bg/admin/settings/notifications.json +trans.cs = public/language/cs/admin/settings/notifications.json +trans.da = public/language/da/admin/settings/notifications.json +trans.de = public/language/de/admin/settings/notifications.json +trans.el = public/language/el/admin/settings/notifications.json +trans.en_US = public/language/en-US/admin/settings/notifications.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/notifications.json +trans.es = public/language/es/admin/settings/notifications.json +trans.et = public/language/et/admin/settings/notifications.json +trans.fa_IR = public/language/fa-IR/admin/settings/notifications.json +trans.fi = public/language/fi/admin/settings/notifications.json +trans.fr = public/language/fr/admin/settings/notifications.json +trans.gl = public/language/gl/admin/settings/notifications.json +trans.he = public/language/he/admin/settings/notifications.json +trans.hu = public/language/hu/admin/settings/notifications.json +trans.id = public/language/id/admin/settings/notifications.json +trans.it = public/language/it/admin/settings/notifications.json +trans.ja = public/language/ja/admin/settings/notifications.json +trans.ko = public/language/ko/admin/settings/notifications.json +trans.lt = public/language/lt/admin/settings/notifications.json +trans.ms = public/language/ms/admin/settings/notifications.json +trans.nb = public/language/nb/admin/settings/notifications.json +trans.nl = public/language/nl/admin/settings/notifications.json +trans.pl = public/language/pl/admin/settings/notifications.json +trans.pt_BR = public/language/pt-BR/admin/settings/notifications.json +trans.pt_PT = public/language/pt-PT/admin/settings/notifications.json +trans.ru = public/language/ru/admin/settings/notifications.json +trans.ro = public/language/ro/admin/settings/notifications.json +trans.rw = public/language/rw/admin/settings/notifications.json +trans.sc = public/language/sc/admin/settings/notifications.json +trans.sk = public/language/sk/admin/settings/notifications.json +trans.sl = public/language/sl/admin/settings/notifications.json +trans.sr = public/language/sr/admin/settings/notifications.json +trans.sv = public/language/sv/admin/settings/notifications.json +trans.th = public/language/th/admin/settings/notifications.json +trans.tr = public/language/tr/admin/settings/notifications.json +trans.vi = public/language/vi/admin/settings/notifications.json +trans.zh_CN = public/language/zh-CN/admin/settings/notifications.json +trans.zh_TW = public/language/zh-TW/admin/settings/notifications.json +type = KEYVALUEJSON + +[nodebb.admin-settings-post] +file_filter = public/language//admin/settings/post.json +source_file = public/language/en-GB/admin/settings/post.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/post.json +trans.bn = public/language/bn/admin/settings/post.json +trans.bg = public/language/bg/admin/settings/post.json +trans.cs = public/language/cs/admin/settings/post.json +trans.da = public/language/da/admin/settings/post.json +trans.de = public/language/de/admin/settings/post.json +trans.el = public/language/el/admin/settings/post.json +trans.en_US = public/language/en-US/admin/settings/post.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/post.json +trans.es = public/language/es/admin/settings/post.json +trans.et = public/language/et/admin/settings/post.json +trans.fa_IR = public/language/fa-IR/admin/settings/post.json +trans.fi = public/language/fi/admin/settings/post.json +trans.fr = public/language/fr/admin/settings/post.json +trans.gl = public/language/gl/admin/settings/post.json +trans.he = public/language/he/admin/settings/post.json +trans.hu = public/language/hu/admin/settings/post.json +trans.id = public/language/id/admin/settings/post.json +trans.it = public/language/it/admin/settings/post.json +trans.ja = public/language/ja/admin/settings/post.json +trans.ko = public/language/ko/admin/settings/post.json +trans.lt = public/language/lt/admin/settings/post.json +trans.ms = public/language/ms/admin/settings/post.json +trans.nb = public/language/nb/admin/settings/post.json +trans.nl = public/language/nl/admin/settings/post.json +trans.pl = public/language/pl/admin/settings/post.json +trans.pt_BR = public/language/pt-BR/admin/settings/post.json +trans.pt_PT = public/language/pt-PT/admin/settings/post.json +trans.ru = public/language/ru/admin/settings/post.json +trans.ro = public/language/ro/admin/settings/post.json +trans.rw = public/language/rw/admin/settings/post.json +trans.sc = public/language/sc/admin/settings/post.json +trans.sk = public/language/sk/admin/settings/post.json +trans.sl = public/language/sl/admin/settings/post.json +trans.sr = public/language/sr/admin/settings/post.json +trans.sv = public/language/sv/admin/settings/post.json +trans.th = public/language/th/admin/settings/post.json +trans.tr = public/language/tr/admin/settings/post.json +trans.vi = public/language/vi/admin/settings/post.json +trans.zh_CN = public/language/zh-CN/admin/settings/post.json +trans.zh_TW = public/language/zh-TW/admin/settings/post.json +type = KEYVALUEJSON + +[nodebb.admin-settings-sockets] +file_filter = public/language//admin/settings/sockets.json +source_file = public/language/en-GB/admin/settings/sockets.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/sockets.json +trans.bn = public/language/bn/admin/settings/sockets.json +trans.bg = public/language/bg/admin/settings/sockets.json +trans.cs = public/language/cs/admin/settings/sockets.json +trans.da = public/language/da/admin/settings/sockets.json +trans.de = public/language/de/admin/settings/sockets.json +trans.el = public/language/el/admin/settings/sockets.json +trans.en_US = public/language/en-US/admin/settings/sockets.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/sockets.json +trans.es = public/language/es/admin/settings/sockets.json +trans.et = public/language/et/admin/settings/sockets.json +trans.fa_IR = public/language/fa-IR/admin/settings/sockets.json +trans.fi = public/language/fi/admin/settings/sockets.json +trans.fr = public/language/fr/admin/settings/sockets.json +trans.gl = public/language/gl/admin/settings/sockets.json +trans.he = public/language/he/admin/settings/sockets.json +trans.hu = public/language/hu/admin/settings/sockets.json +trans.id = public/language/id/admin/settings/sockets.json +trans.it = public/language/it/admin/settings/sockets.json +trans.ja = public/language/ja/admin/settings/sockets.json +trans.ko = public/language/ko/admin/settings/sockets.json +trans.lt = public/language/lt/admin/settings/sockets.json +trans.ms = public/language/ms/admin/settings/sockets.json +trans.nb = public/language/nb/admin/settings/sockets.json +trans.nl = public/language/nl/admin/settings/sockets.json +trans.pl = public/language/pl/admin/settings/sockets.json +trans.pt_BR = public/language/pt-BR/admin/settings/sockets.json +trans.pt_PT = public/language/pt-PT/admin/settings/sockets.json +trans.ru = public/language/ru/admin/settings/sockets.json +trans.ro = public/language/ro/admin/settings/sockets.json +trans.rw = public/language/rw/admin/settings/sockets.json +trans.sc = public/language/sc/admin/settings/sockets.json +trans.sk = public/language/sk/admin/settings/sockets.json +trans.sl = public/language/sl/admin/settings/sockets.json +trans.sr = public/language/sr/admin/settings/sockets.json +trans.sv = public/language/sv/admin/settings/sockets.json +trans.th = public/language/th/admin/settings/sockets.json +trans.tr = public/language/tr/admin/settings/sockets.json +trans.vi = public/language/vi/admin/settings/sockets.json +trans.zh_CN = public/language/zh-CN/admin/settings/sockets.json +trans.zh_TW = public/language/zh-TW/admin/settings/sockets.json +type = KEYVALUEJSON + +[nodebb.admin-settings-uploads] +file_filter = public/language//admin/settings/uploads.json +source_file = public/language/en-GB/admin/settings/uploads.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/uploads.json +trans.bn = public/language/bn/admin/settings/uploads.json +trans.bg = public/language/bg/admin/settings/uploads.json +trans.cs = public/language/cs/admin/settings/uploads.json +trans.da = public/language/da/admin/settings/uploads.json +trans.de = public/language/de/admin/settings/uploads.json +trans.el = public/language/el/admin/settings/uploads.json +trans.en_US = public/language/en-US/admin/settings/uploads.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/uploads.json +trans.es = public/language/es/admin/settings/uploads.json +trans.et = public/language/et/admin/settings/uploads.json +trans.fa_IR = public/language/fa-IR/admin/settings/uploads.json +trans.fi = public/language/fi/admin/settings/uploads.json +trans.fr = public/language/fr/admin/settings/uploads.json +trans.gl = public/language/gl/admin/settings/uploads.json +trans.he = public/language/he/admin/settings/uploads.json +trans.hu = public/language/hu/admin/settings/uploads.json +trans.id = public/language/id/admin/settings/uploads.json +trans.it = public/language/it/admin/settings/uploads.json +trans.ja = public/language/ja/admin/settings/uploads.json +trans.ko = public/language/ko/admin/settings/uploads.json +trans.lt = public/language/lt/admin/settings/uploads.json +trans.ms = public/language/ms/admin/settings/uploads.json +trans.nb = public/language/nb/admin/settings/uploads.json +trans.nl = public/language/nl/admin/settings/uploads.json +trans.pl = public/language/pl/admin/settings/uploads.json +trans.pt_BR = public/language/pt-BR/admin/settings/uploads.json +trans.pt_PT = public/language/pt-PT/admin/settings/uploads.json +trans.ru = public/language/ru/admin/settings/uploads.json +trans.ro = public/language/ro/admin/settings/uploads.json +trans.rw = public/language/rw/admin/settings/uploads.json +trans.sc = public/language/sc/admin/settings/uploads.json +trans.sk = public/language/sk/admin/settings/uploads.json +trans.sl = public/language/sl/admin/settings/uploads.json +trans.sr = public/language/sr/admin/settings/uploads.json +trans.sv = public/language/sv/admin/settings/uploads.json +trans.th = public/language/th/admin/settings/uploads.json +trans.tr = public/language/tr/admin/settings/uploads.json +trans.vi = public/language/vi/admin/settings/uploads.json +trans.zh_CN = public/language/zh-CN/admin/settings/uploads.json +trans.zh_TW = public/language/zh-TW/admin/settings/uploads.json +type = KEYVALUEJSON + +[nodebb.admin-settings-web-crawler] +file_filter = public/language//admin/settings/web-crawler.json +source_file = public/language/en-GB/admin/settings/web-crawler.json +source_lang = en_GB +trans.ar = public/language/ar/admin/settings/web-crawler.json +trans.bn = public/language/bn/admin/settings/web-crawler.json +trans.bg = public/language/bg/admin/settings/web-crawler.json +trans.cs = public/language/cs/admin/settings/web-crawler.json +trans.da = public/language/da/admin/settings/web-crawler.json +trans.de = public/language/de/admin/settings/web-crawler.json +trans.el = public/language/el/admin/settings/web-crawler.json +trans.en_US = public/language/en-US/admin/settings/web-crawler.json +trans.en@pirate = public/language/en-x-pirate/admin/settings/web-crawler.json +trans.es = public/language/es/admin/settings/web-crawler.json +trans.et = public/language/et/admin/settings/web-crawler.json +trans.fa_IR = public/language/fa-IR/admin/settings/web-crawler.json +trans.fi = public/language/fi/admin/settings/web-crawler.json +trans.fr = public/language/fr/admin/settings/web-crawler.json +trans.gl = public/language/gl/admin/settings/web-crawler.json +trans.he = public/language/he/admin/settings/web-crawler.json +trans.hu = public/language/hu/admin/settings/web-crawler.json +trans.id = public/language/id/admin/settings/web-crawler.json +trans.it = public/language/it/admin/settings/web-crawler.json +trans.ja = public/language/ja/admin/settings/web-crawler.json +trans.ko = public/language/ko/admin/settings/web-crawler.json +trans.lt = public/language/lt/admin/settings/web-crawler.json +trans.ms = public/language/ms/admin/settings/web-crawler.json +trans.nb = public/language/nb/admin/settings/web-crawler.json +trans.nl = public/language/nl/admin/settings/web-crawler.json +trans.pl = public/language/pl/admin/settings/web-crawler.json +trans.pt_BR = public/language/pt-BR/admin/settings/web-crawler.json +trans.pt_PT = public/language/pt-PT/admin/settings/web-crawler.json +trans.ru = public/language/ru/admin/settings/web-crawler.json +trans.ro = public/language/ro/admin/settings/web-crawler.json +trans.rw = public/language/rw/admin/settings/web-crawler.json +trans.sc = public/language/sc/admin/settings/web-crawler.json +trans.sk = public/language/sk/admin/settings/web-crawler.json +trans.sl = public/language/sl/admin/settings/web-crawler.json +trans.sr = public/language/sr/admin/settings/web-crawler.json +trans.sv = public/language/sv/admin/settings/web-crawler.json +trans.th = public/language/th/admin/settings/web-crawler.json +trans.tr = public/language/tr/admin/settings/web-crawler.json +trans.vi = public/language/vi/admin/settings/web-crawler.json +trans.zh_CN = public/language/zh-CN/admin/settings/web-crawler.json +trans.zh_TW = public/language/zh-TW/admin/settings/web-crawler.json type = KEYVALUEJSON \ No newline at end of file diff --git a/package.json b/package.json index 83c62b7e9e..1175c38319 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "1.4.0", + "version": "1.4.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -13,8 +13,8 @@ "start": "node loader.js", "lint": "eslint --cache .", "pretest": "npm run lint", - "test": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec", - "coveralls": "istanbul cover _mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" + "test": "istanbul cover node_modules/mocha/bin/_mocha -- -R dot", + "coveralls": "istanbul cover _mocha --report lcovonly -- -R dot && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" }, "dependencies": { "async": "~1.5.0", @@ -61,8 +61,8 @@ "nodebb-plugin-spam-be-gone": "0.4.10", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "3.0.15", - "nodebb-theme-persona": "4.1.88", - "nodebb-theme-vanilla": "5.1.56", + "nodebb-theme-persona": "4.1.90", + "nodebb-theme-vanilla": "5.1.57", "nodebb-widget-essentials": "2.0.13", "nodemailer": "2.6.4", "nodemailer-sendmail-transport": "1.0.0", diff --git a/public/language/ar/admin/admin.json b/public/language/ar/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ar/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ar/admin/advanced/cache.json b/public/language/ar/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ar/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ar/admin/advanced/database.json b/public/language/ar/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ar/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ar/admin/advanced/errors.json b/public/language/ar/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ar/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ar/admin/advanced/events.json b/public/language/ar/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ar/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ar/admin/advanced/logs.json b/public/language/ar/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ar/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ar/admin/appearance/customise.json b/public/language/ar/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ar/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ar/admin/appearance/skins.json b/public/language/ar/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ar/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ar/admin/appearance/themes.json b/public/language/ar/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ar/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ar/admin/development/info.json b/public/language/ar/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ar/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ar/admin/development/logger.json b/public/language/ar/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ar/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ar/admin/extend/plugins.json b/public/language/ar/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ar/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ar/admin/extend/rewards.json b/public/language/ar/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ar/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ar/admin/extend/widgets.json b/public/language/ar/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ar/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ar/admin/general/dashboard.json b/public/language/ar/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ar/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ar/admin/general/homepage.json b/public/language/ar/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ar/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ar/admin/general/languages.json b/public/language/ar/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ar/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ar/admin/general/navigation.json b/public/language/ar/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ar/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ar/admin/general/social.json b/public/language/ar/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ar/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ar/admin/general/sounds.json b/public/language/ar/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ar/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/categories.json b/public/language/ar/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ar/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/flags.json b/public/language/ar/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ar/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/groups.json b/public/language/ar/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ar/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/ip-blacklist.json b/public/language/ar/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ar/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/registration.json b/public/language/ar/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ar/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/tags.json b/public/language/ar/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ar/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ar/admin/manage/users.json b/public/language/ar/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ar/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ar/admin/menu.json b/public/language/ar/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ar/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/advanced.json b/public/language/ar/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ar/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/chat.json b/public/language/ar/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ar/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/cookies.json b/public/language/ar/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ar/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/email.json b/public/language/ar/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ar/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/general.json b/public/language/ar/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ar/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/group.json b/public/language/ar/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ar/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/guest.json b/public/language/ar/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ar/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/notifications.json b/public/language/ar/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ar/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/pagination.json b/public/language/ar/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ar/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/post.json b/public/language/ar/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ar/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/reputation.json b/public/language/ar/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ar/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/sockets.json b/public/language/ar/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ar/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/tags.json b/public/language/ar/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ar/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/uploads.json b/public/language/ar/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ar/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/user.json b/public/language/ar/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ar/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ar/admin/settings/web-crawler.json b/public/language/ar/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ar/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/bg/admin/admin.json b/public/language/bg/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/bg/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/bg/admin/advanced/cache.json b/public/language/bg/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/bg/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/bg/admin/advanced/database.json b/public/language/bg/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/bg/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/bg/admin/advanced/errors.json b/public/language/bg/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/bg/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/bg/admin/advanced/events.json b/public/language/bg/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/bg/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/bg/admin/advanced/logs.json b/public/language/bg/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/bg/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/bg/admin/appearance/customise.json b/public/language/bg/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/bg/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/bg/admin/appearance/skins.json b/public/language/bg/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/bg/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/bg/admin/appearance/themes.json b/public/language/bg/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/bg/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/bg/admin/development/info.json b/public/language/bg/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/bg/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/bg/admin/development/logger.json b/public/language/bg/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/bg/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/bg/admin/extend/plugins.json b/public/language/bg/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/bg/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/bg/admin/extend/rewards.json b/public/language/bg/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/bg/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/bg/admin/extend/widgets.json b/public/language/bg/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/bg/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/bg/admin/general/dashboard.json b/public/language/bg/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/bg/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/bg/admin/general/homepage.json b/public/language/bg/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/bg/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/bg/admin/general/languages.json b/public/language/bg/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/bg/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/bg/admin/general/navigation.json b/public/language/bg/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/bg/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/bg/admin/general/social.json b/public/language/bg/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/bg/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/bg/admin/general/sounds.json b/public/language/bg/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/bg/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/categories.json b/public/language/bg/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/bg/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/flags.json b/public/language/bg/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/bg/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/groups.json b/public/language/bg/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/bg/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/ip-blacklist.json b/public/language/bg/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/bg/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/registration.json b/public/language/bg/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/bg/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/tags.json b/public/language/bg/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/bg/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/bg/admin/manage/users.json b/public/language/bg/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/bg/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/bg/admin/menu.json b/public/language/bg/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/bg/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/advanced.json b/public/language/bg/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/bg/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/chat.json b/public/language/bg/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/bg/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/cookies.json b/public/language/bg/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/bg/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/email.json b/public/language/bg/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/bg/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/general.json b/public/language/bg/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/bg/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/group.json b/public/language/bg/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/bg/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/guest.json b/public/language/bg/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/bg/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/notifications.json b/public/language/bg/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/bg/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/pagination.json b/public/language/bg/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/bg/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/post.json b/public/language/bg/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/bg/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/reputation.json b/public/language/bg/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/bg/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/sockets.json b/public/language/bg/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/bg/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/tags.json b/public/language/bg/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/bg/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/uploads.json b/public/language/bg/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/bg/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/user.json b/public/language/bg/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/bg/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/bg/admin/settings/web-crawler.json b/public/language/bg/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/bg/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/bn/admin/admin.json b/public/language/bn/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/bn/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/bn/admin/advanced/cache.json b/public/language/bn/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/bn/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/bn/admin/advanced/database.json b/public/language/bn/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/bn/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/bn/admin/advanced/errors.json b/public/language/bn/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/bn/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/bn/admin/advanced/events.json b/public/language/bn/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/bn/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/bn/admin/advanced/logs.json b/public/language/bn/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/bn/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/bn/admin/appearance/customise.json b/public/language/bn/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/bn/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/bn/admin/appearance/skins.json b/public/language/bn/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/bn/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/bn/admin/appearance/themes.json b/public/language/bn/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/bn/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/bn/admin/development/info.json b/public/language/bn/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/bn/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/bn/admin/development/logger.json b/public/language/bn/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/bn/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/bn/admin/extend/plugins.json b/public/language/bn/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/bn/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/bn/admin/extend/rewards.json b/public/language/bn/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/bn/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/bn/admin/extend/widgets.json b/public/language/bn/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/bn/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/bn/admin/general/dashboard.json b/public/language/bn/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/bn/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/bn/admin/general/homepage.json b/public/language/bn/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/bn/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/bn/admin/general/languages.json b/public/language/bn/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/bn/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/bn/admin/general/navigation.json b/public/language/bn/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/bn/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/bn/admin/general/social.json b/public/language/bn/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/bn/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/bn/admin/general/sounds.json b/public/language/bn/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/bn/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/categories.json b/public/language/bn/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/bn/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/flags.json b/public/language/bn/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/bn/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/groups.json b/public/language/bn/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/bn/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/ip-blacklist.json b/public/language/bn/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/bn/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/registration.json b/public/language/bn/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/bn/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/tags.json b/public/language/bn/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/bn/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/bn/admin/manage/users.json b/public/language/bn/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/bn/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/bn/admin/menu.json b/public/language/bn/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/bn/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/advanced.json b/public/language/bn/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/bn/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/chat.json b/public/language/bn/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/bn/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/cookies.json b/public/language/bn/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/bn/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/email.json b/public/language/bn/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/bn/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/general.json b/public/language/bn/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/bn/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/group.json b/public/language/bn/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/bn/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/guest.json b/public/language/bn/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/bn/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/notifications.json b/public/language/bn/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/bn/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/pagination.json b/public/language/bn/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/bn/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/post.json b/public/language/bn/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/bn/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/reputation.json b/public/language/bn/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/bn/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/sockets.json b/public/language/bn/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/bn/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/tags.json b/public/language/bn/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/bn/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/uploads.json b/public/language/bn/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/bn/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/user.json b/public/language/bn/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/bn/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/bn/admin/settings/web-crawler.json b/public/language/bn/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/bn/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/cs/admin/admin.json b/public/language/cs/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/cs/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/cs/admin/advanced/cache.json b/public/language/cs/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/cs/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/cs/admin/advanced/database.json b/public/language/cs/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/cs/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/cs/admin/advanced/errors.json b/public/language/cs/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/cs/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/cs/admin/advanced/events.json b/public/language/cs/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/cs/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/cs/admin/advanced/logs.json b/public/language/cs/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/cs/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/cs/admin/appearance/customise.json b/public/language/cs/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/cs/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/cs/admin/appearance/skins.json b/public/language/cs/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/cs/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/cs/admin/appearance/themes.json b/public/language/cs/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/cs/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/cs/admin/development/info.json b/public/language/cs/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/cs/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/cs/admin/development/logger.json b/public/language/cs/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/cs/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/cs/admin/extend/plugins.json b/public/language/cs/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/cs/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/cs/admin/extend/rewards.json b/public/language/cs/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/cs/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/cs/admin/extend/widgets.json b/public/language/cs/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/cs/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/cs/admin/general/dashboard.json b/public/language/cs/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/cs/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/cs/admin/general/homepage.json b/public/language/cs/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/cs/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/cs/admin/general/languages.json b/public/language/cs/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/cs/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/cs/admin/general/navigation.json b/public/language/cs/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/cs/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/cs/admin/general/social.json b/public/language/cs/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/cs/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/cs/admin/general/sounds.json b/public/language/cs/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/cs/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/categories.json b/public/language/cs/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/cs/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/flags.json b/public/language/cs/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/cs/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/groups.json b/public/language/cs/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/cs/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/ip-blacklist.json b/public/language/cs/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/cs/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/registration.json b/public/language/cs/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/cs/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/tags.json b/public/language/cs/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/cs/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/cs/admin/manage/users.json b/public/language/cs/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/cs/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/cs/admin/menu.json b/public/language/cs/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/cs/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/advanced.json b/public/language/cs/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/cs/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/chat.json b/public/language/cs/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/cs/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/cookies.json b/public/language/cs/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/cs/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/email.json b/public/language/cs/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/cs/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/general.json b/public/language/cs/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/cs/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/group.json b/public/language/cs/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/cs/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/guest.json b/public/language/cs/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/cs/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/notifications.json b/public/language/cs/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/cs/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/pagination.json b/public/language/cs/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/cs/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/post.json b/public/language/cs/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/cs/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/reputation.json b/public/language/cs/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/cs/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/sockets.json b/public/language/cs/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/cs/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/tags.json b/public/language/cs/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/cs/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/uploads.json b/public/language/cs/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/cs/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/user.json b/public/language/cs/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/cs/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/cs/admin/settings/web-crawler.json b/public/language/cs/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/cs/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/da/admin/admin.json b/public/language/da/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/da/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/da/admin/advanced/cache.json b/public/language/da/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/da/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/da/admin/advanced/database.json b/public/language/da/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/da/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/da/admin/advanced/errors.json b/public/language/da/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/da/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/da/admin/advanced/events.json b/public/language/da/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/da/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/da/admin/advanced/logs.json b/public/language/da/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/da/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/da/admin/appearance/customise.json b/public/language/da/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/da/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/da/admin/appearance/skins.json b/public/language/da/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/da/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/da/admin/appearance/themes.json b/public/language/da/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/da/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/da/admin/development/info.json b/public/language/da/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/da/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/da/admin/development/logger.json b/public/language/da/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/da/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/da/admin/extend/plugins.json b/public/language/da/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/da/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/da/admin/extend/rewards.json b/public/language/da/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/da/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/da/admin/extend/widgets.json b/public/language/da/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/da/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/da/admin/general/dashboard.json b/public/language/da/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/da/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/da/admin/general/homepage.json b/public/language/da/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/da/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/da/admin/general/languages.json b/public/language/da/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/da/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/da/admin/general/navigation.json b/public/language/da/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/da/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/da/admin/general/social.json b/public/language/da/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/da/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/da/admin/general/sounds.json b/public/language/da/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/da/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/categories.json b/public/language/da/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/da/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/da/admin/manage/flags.json b/public/language/da/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/da/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/groups.json b/public/language/da/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/da/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/ip-blacklist.json b/public/language/da/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/da/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/registration.json b/public/language/da/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/da/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/tags.json b/public/language/da/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/da/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/da/admin/manage/users.json b/public/language/da/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/da/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/da/admin/menu.json b/public/language/da/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/da/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/da/admin/settings/advanced.json b/public/language/da/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/da/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/chat.json b/public/language/da/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/da/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/cookies.json b/public/language/da/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/da/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/email.json b/public/language/da/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/da/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/da/admin/settings/general.json b/public/language/da/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/da/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/group.json b/public/language/da/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/da/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/guest.json b/public/language/da/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/da/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/notifications.json b/public/language/da/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/da/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/pagination.json b/public/language/da/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/da/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/post.json b/public/language/da/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/da/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/reputation.json b/public/language/da/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/da/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/sockets.json b/public/language/da/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/da/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/tags.json b/public/language/da/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/da/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/uploads.json b/public/language/da/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/da/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/user.json b/public/language/da/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/da/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/da/admin/settings/web-crawler.json b/public/language/da/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/da/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/de/admin/admin.json b/public/language/de/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/de/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/de/admin/advanced/cache.json b/public/language/de/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/de/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/de/admin/advanced/database.json b/public/language/de/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/de/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/de/admin/advanced/errors.json b/public/language/de/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/de/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/de/admin/advanced/events.json b/public/language/de/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/de/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/de/admin/advanced/logs.json b/public/language/de/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/de/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/de/admin/appearance/customise.json b/public/language/de/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/de/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/de/admin/appearance/skins.json b/public/language/de/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/de/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/de/admin/appearance/themes.json b/public/language/de/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/de/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/de/admin/development/info.json b/public/language/de/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/de/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/de/admin/development/logger.json b/public/language/de/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/de/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/de/admin/extend/plugins.json b/public/language/de/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/de/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/de/admin/extend/rewards.json b/public/language/de/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/de/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/de/admin/extend/widgets.json b/public/language/de/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/de/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/de/admin/general/dashboard.json b/public/language/de/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/de/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/de/admin/general/homepage.json b/public/language/de/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/de/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/de/admin/general/languages.json b/public/language/de/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/de/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/de/admin/general/navigation.json b/public/language/de/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/de/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/de/admin/general/social.json b/public/language/de/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/de/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/de/admin/general/sounds.json b/public/language/de/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/de/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/categories.json b/public/language/de/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/de/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/de/admin/manage/flags.json b/public/language/de/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/de/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/groups.json b/public/language/de/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/de/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/ip-blacklist.json b/public/language/de/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/de/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/registration.json b/public/language/de/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/de/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/tags.json b/public/language/de/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/de/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/de/admin/manage/users.json b/public/language/de/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/de/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/de/admin/menu.json b/public/language/de/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/de/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/de/admin/settings/advanced.json b/public/language/de/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/de/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/chat.json b/public/language/de/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/de/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/cookies.json b/public/language/de/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/de/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/email.json b/public/language/de/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/de/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/de/admin/settings/general.json b/public/language/de/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/de/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/group.json b/public/language/de/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/de/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/guest.json b/public/language/de/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/de/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/notifications.json b/public/language/de/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/de/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/pagination.json b/public/language/de/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/de/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/post.json b/public/language/de/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/de/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/reputation.json b/public/language/de/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/de/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/sockets.json b/public/language/de/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/de/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/tags.json b/public/language/de/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/de/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/uploads.json b/public/language/de/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/de/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/user.json b/public/language/de/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/de/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/de/admin/settings/web-crawler.json b/public/language/de/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/de/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/el/admin/admin.json b/public/language/el/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/el/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/el/admin/advanced/cache.json b/public/language/el/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/el/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/el/admin/advanced/database.json b/public/language/el/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/el/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/el/admin/advanced/errors.json b/public/language/el/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/el/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/el/admin/advanced/events.json b/public/language/el/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/el/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/el/admin/advanced/logs.json b/public/language/el/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/el/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/el/admin/appearance/customise.json b/public/language/el/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/el/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/el/admin/appearance/skins.json b/public/language/el/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/el/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/el/admin/appearance/themes.json b/public/language/el/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/el/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/el/admin/development/info.json b/public/language/el/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/el/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/el/admin/development/logger.json b/public/language/el/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/el/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/el/admin/extend/plugins.json b/public/language/el/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/el/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/el/admin/extend/rewards.json b/public/language/el/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/el/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/el/admin/extend/widgets.json b/public/language/el/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/el/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/el/admin/general/dashboard.json b/public/language/el/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/el/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/el/admin/general/homepage.json b/public/language/el/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/el/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/el/admin/general/languages.json b/public/language/el/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/el/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/el/admin/general/navigation.json b/public/language/el/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/el/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/el/admin/general/social.json b/public/language/el/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/el/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/el/admin/general/sounds.json b/public/language/el/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/el/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/categories.json b/public/language/el/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/el/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/el/admin/manage/flags.json b/public/language/el/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/el/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/groups.json b/public/language/el/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/el/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/ip-blacklist.json b/public/language/el/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/el/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/registration.json b/public/language/el/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/el/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/tags.json b/public/language/el/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/el/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/el/admin/manage/users.json b/public/language/el/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/el/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/el/admin/menu.json b/public/language/el/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/el/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/el/admin/settings/advanced.json b/public/language/el/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/el/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/chat.json b/public/language/el/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/el/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/cookies.json b/public/language/el/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/el/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/email.json b/public/language/el/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/el/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/el/admin/settings/general.json b/public/language/el/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/el/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/group.json b/public/language/el/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/el/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/guest.json b/public/language/el/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/el/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/notifications.json b/public/language/el/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/el/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/pagination.json b/public/language/el/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/el/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/post.json b/public/language/el/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/el/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/reputation.json b/public/language/el/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/el/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/sockets.json b/public/language/el/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/el/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/tags.json b/public/language/el/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/el/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/uploads.json b/public/language/el/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/el/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/user.json b/public/language/el/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/el/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/el/admin/settings/web-crawler.json b/public/language/el/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/el/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/admin.json b/public/language/en-GB/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/en-GB/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/advanced/cache.json b/public/language/en-GB/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/en-GB/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/advanced/database.json b/public/language/en-GB/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/en-GB/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/advanced/errors.json b/public/language/en-GB/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/en-GB/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/advanced/events.json b/public/language/en-GB/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/en-GB/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/advanced/logs.json b/public/language/en-GB/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/en-GB/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/appearance/customise.json b/public/language/en-GB/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/en-GB/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/development/info.json b/public/language/en-GB/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/en-GB/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/development/logger.json b/public/language/en-GB/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/en-GB/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/extend/plugins.json b/public/language/en-GB/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/en-GB/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/extend/rewards.json b/public/language/en-GB/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/en-GB/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/extend/widgets.json b/public/language/en-GB/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/en-GB/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/dashboard.json b/public/language/en-GB/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/en-GB/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/homepage.json b/public/language/en-GB/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/en-GB/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/languages.json b/public/language/en-GB/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/en-GB/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/navigation.json b/public/language/en-GB/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/en-GB/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/social.json b/public/language/en-GB/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/en-GB/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/general/sounds.json b/public/language/en-GB/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/en-GB/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/categories.json b/public/language/en-GB/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/en-GB/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/flags.json b/public/language/en-GB/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/en-GB/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/groups.json b/public/language/en-GB/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/en-GB/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/ip-blacklist.json b/public/language/en-GB/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/en-GB/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/registration.json b/public/language/en-GB/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/en-GB/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/tags.json b/public/language/en-GB/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/en-GB/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/manage/users.json b/public/language/en-GB/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/en-GB/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/en-GB/admin/menu.json b/public/language/en-GB/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/en-GB/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/advanced.json b/public/language/en-GB/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/en-GB/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/chat.json b/public/language/en-GB/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/en-GB/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/cookies.json b/public/language/en-GB/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/en-GB/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/email.json b/public/language/en-GB/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/en-GB/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/general.json b/public/language/en-GB/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/en-GB/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/group.json b/public/language/en-GB/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/en-GB/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/guest.json b/public/language/en-GB/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/en-GB/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/notifications.json b/public/language/en-GB/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/en-GB/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/pagination.json b/public/language/en-GB/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/en-GB/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/post.json b/public/language/en-GB/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/en-GB/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/reputation.json b/public/language/en-GB/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/en-GB/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/sockets.json b/public/language/en-GB/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/en-GB/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/tags.json b/public/language/en-GB/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/en-GB/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/uploads.json b/public/language/en-GB/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/en-GB/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/user.json b/public/language/en-GB/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/en-GB/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/en-GB/admin/settings/web-crawler.json b/public/language/en-GB/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/en-GB/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/en-GB/search.json b/public/language/en-GB/search.json index fde9db35f6..98c1afcea2 100644 --- a/public/language/en-GB/search.json +++ b/public/language/en-GB/search.json @@ -8,6 +8,7 @@ "posted-by": "Posted by", "in-categories": "In Categories", "search-child-categories": "Search child categories", + "has-tags": "Has tags", "reply-count": "Reply Count", "at-least": "At least", "at-most": "At most", diff --git a/public/language/en-US/admin/admin.json b/public/language/en-US/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/en-US/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/en-US/admin/advanced/cache.json b/public/language/en-US/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/en-US/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/en-US/admin/advanced/database.json b/public/language/en-US/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/en-US/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/en-US/admin/advanced/errors.json b/public/language/en-US/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/en-US/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/en-US/admin/advanced/events.json b/public/language/en-US/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/en-US/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/en-US/admin/advanced/logs.json b/public/language/en-US/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/en-US/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/en-US/admin/appearance/customise.json b/public/language/en-US/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/en-US/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/en-US/admin/appearance/skins.json b/public/language/en-US/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/en-US/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/en-US/admin/appearance/themes.json b/public/language/en-US/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/en-US/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/en-US/admin/development/info.json b/public/language/en-US/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/en-US/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/en-US/admin/development/logger.json b/public/language/en-US/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/en-US/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/en-US/admin/extend/plugins.json b/public/language/en-US/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/en-US/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/en-US/admin/extend/rewards.json b/public/language/en-US/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/en-US/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/en-US/admin/extend/widgets.json b/public/language/en-US/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/en-US/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/dashboard.json b/public/language/en-US/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/en-US/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/homepage.json b/public/language/en-US/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/en-US/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/languages.json b/public/language/en-US/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/en-US/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/navigation.json b/public/language/en-US/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/en-US/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/social.json b/public/language/en-US/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/en-US/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/en-US/admin/general/sounds.json b/public/language/en-US/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/en-US/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/categories.json b/public/language/en-US/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/en-US/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/flags.json b/public/language/en-US/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/en-US/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/groups.json b/public/language/en-US/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/en-US/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/ip-blacklist.json b/public/language/en-US/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/en-US/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/registration.json b/public/language/en-US/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/en-US/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/tags.json b/public/language/en-US/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/en-US/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/en-US/admin/manage/users.json b/public/language/en-US/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/en-US/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/en-US/admin/menu.json b/public/language/en-US/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/en-US/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/advanced.json b/public/language/en-US/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/en-US/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/chat.json b/public/language/en-US/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/en-US/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/cookies.json b/public/language/en-US/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/en-US/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/email.json b/public/language/en-US/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/en-US/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/general.json b/public/language/en-US/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/en-US/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/group.json b/public/language/en-US/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/en-US/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/guest.json b/public/language/en-US/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/en-US/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/notifications.json b/public/language/en-US/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/en-US/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/pagination.json b/public/language/en-US/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/en-US/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/post.json b/public/language/en-US/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/en-US/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/reputation.json b/public/language/en-US/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/en-US/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/sockets.json b/public/language/en-US/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/en-US/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/tags.json b/public/language/en-US/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/en-US/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/uploads.json b/public/language/en-US/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/en-US/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/user.json b/public/language/en-US/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/en-US/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/en-US/admin/settings/web-crawler.json b/public/language/en-US/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/en-US/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/admin.json b/public/language/en-x-pirate/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/en-x-pirate/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/advanced/cache.json b/public/language/en-x-pirate/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/en-x-pirate/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/advanced/database.json b/public/language/en-x-pirate/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/en-x-pirate/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/advanced/errors.json b/public/language/en-x-pirate/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/en-x-pirate/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/advanced/events.json b/public/language/en-x-pirate/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/en-x-pirate/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/advanced/logs.json b/public/language/en-x-pirate/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/en-x-pirate/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/appearance/customise.json b/public/language/en-x-pirate/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/en-x-pirate/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/appearance/skins.json b/public/language/en-x-pirate/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/en-x-pirate/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/appearance/themes.json b/public/language/en-x-pirate/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/en-x-pirate/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/development/info.json b/public/language/en-x-pirate/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/en-x-pirate/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/development/logger.json b/public/language/en-x-pirate/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/en-x-pirate/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/extend/plugins.json b/public/language/en-x-pirate/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/en-x-pirate/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/extend/rewards.json b/public/language/en-x-pirate/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/en-x-pirate/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/extend/widgets.json b/public/language/en-x-pirate/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/en-x-pirate/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/dashboard.json b/public/language/en-x-pirate/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/en-x-pirate/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/homepage.json b/public/language/en-x-pirate/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/en-x-pirate/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/languages.json b/public/language/en-x-pirate/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/en-x-pirate/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/navigation.json b/public/language/en-x-pirate/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/en-x-pirate/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/social.json b/public/language/en-x-pirate/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/en-x-pirate/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/general/sounds.json b/public/language/en-x-pirate/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/en-x-pirate/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/categories.json b/public/language/en-x-pirate/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/flags.json b/public/language/en-x-pirate/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/groups.json b/public/language/en-x-pirate/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/ip-blacklist.json b/public/language/en-x-pirate/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/registration.json b/public/language/en-x-pirate/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/tags.json b/public/language/en-x-pirate/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/manage/users.json b/public/language/en-x-pirate/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/en-x-pirate/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/menu.json b/public/language/en-x-pirate/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/en-x-pirate/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/advanced.json b/public/language/en-x-pirate/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/chat.json b/public/language/en-x-pirate/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/cookies.json b/public/language/en-x-pirate/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/email.json b/public/language/en-x-pirate/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/general.json b/public/language/en-x-pirate/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/group.json b/public/language/en-x-pirate/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/guest.json b/public/language/en-x-pirate/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/notifications.json b/public/language/en-x-pirate/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/pagination.json b/public/language/en-x-pirate/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/post.json b/public/language/en-x-pirate/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/reputation.json b/public/language/en-x-pirate/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/sockets.json b/public/language/en-x-pirate/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/tags.json b/public/language/en-x-pirate/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/uploads.json b/public/language/en-x-pirate/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/user.json b/public/language/en-x-pirate/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/en-x-pirate/admin/settings/web-crawler.json b/public/language/en-x-pirate/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/en-x-pirate/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/es/admin/admin.json b/public/language/es/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/es/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/es/admin/advanced/cache.json b/public/language/es/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/es/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/es/admin/advanced/database.json b/public/language/es/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/es/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/es/admin/advanced/errors.json b/public/language/es/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/es/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/es/admin/advanced/events.json b/public/language/es/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/es/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/es/admin/advanced/logs.json b/public/language/es/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/es/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/es/admin/appearance/customise.json b/public/language/es/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/es/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/es/admin/appearance/skins.json b/public/language/es/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/es/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/es/admin/appearance/themes.json b/public/language/es/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/es/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/es/admin/development/info.json b/public/language/es/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/es/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/es/admin/development/logger.json b/public/language/es/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/es/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/es/admin/extend/plugins.json b/public/language/es/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/es/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/es/admin/extend/rewards.json b/public/language/es/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/es/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/es/admin/extend/widgets.json b/public/language/es/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/es/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/es/admin/general/dashboard.json b/public/language/es/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/es/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/es/admin/general/homepage.json b/public/language/es/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/es/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/es/admin/general/languages.json b/public/language/es/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/es/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/es/admin/general/navigation.json b/public/language/es/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/es/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/es/admin/general/social.json b/public/language/es/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/es/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/es/admin/general/sounds.json b/public/language/es/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/es/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/categories.json b/public/language/es/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/es/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/es/admin/manage/flags.json b/public/language/es/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/es/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/groups.json b/public/language/es/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/es/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/ip-blacklist.json b/public/language/es/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/es/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/registration.json b/public/language/es/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/es/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/tags.json b/public/language/es/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/es/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/es/admin/manage/users.json b/public/language/es/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/es/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/es/admin/menu.json b/public/language/es/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/es/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/es/admin/settings/advanced.json b/public/language/es/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/es/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/chat.json b/public/language/es/admin/settings/chat.json new file mode 100644 index 0000000000..f1609d8ecc --- /dev/null +++ b/public/language/es/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Ajustes de Chat", + "disable": "Deshabilitar chat", + "disable-editing": "Deshabilitar edición y borrado de mensajes de chat", + "disable-editing-help": "Los administradores y los moderadores globales están exentos de esta restricción", + "max-length": "Maxima longitud de mensajes de chat", + "max-room-size": "Máximo numero de usuarios en las salas de chat", + "delay": "Tiempo entre envío de mensajes de chat en milisegundos" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/cookies.json b/public/language/es/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/es/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/email.json b/public/language/es/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/es/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/es/admin/settings/general.json b/public/language/es/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/es/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/group.json b/public/language/es/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/es/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/guest.json b/public/language/es/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/es/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/notifications.json b/public/language/es/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/es/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/pagination.json b/public/language/es/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/es/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/post.json b/public/language/es/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/es/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/reputation.json b/public/language/es/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/es/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/sockets.json b/public/language/es/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/es/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/tags.json b/public/language/es/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/es/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/uploads.json b/public/language/es/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/es/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/user.json b/public/language/es/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/es/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/es/admin/settings/web-crawler.json b/public/language/es/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/es/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/et/admin/admin.json b/public/language/et/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/et/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/et/admin/advanced/cache.json b/public/language/et/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/et/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/et/admin/advanced/database.json b/public/language/et/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/et/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/et/admin/advanced/errors.json b/public/language/et/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/et/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/et/admin/advanced/events.json b/public/language/et/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/et/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/et/admin/advanced/logs.json b/public/language/et/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/et/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/et/admin/appearance/customise.json b/public/language/et/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/et/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/et/admin/appearance/skins.json b/public/language/et/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/et/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/et/admin/appearance/themes.json b/public/language/et/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/et/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/et/admin/development/info.json b/public/language/et/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/et/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/et/admin/development/logger.json b/public/language/et/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/et/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/et/admin/extend/plugins.json b/public/language/et/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/et/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/et/admin/extend/rewards.json b/public/language/et/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/et/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/et/admin/extend/widgets.json b/public/language/et/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/et/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/et/admin/general/dashboard.json b/public/language/et/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/et/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/et/admin/general/homepage.json b/public/language/et/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/et/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/et/admin/general/languages.json b/public/language/et/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/et/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/et/admin/general/navigation.json b/public/language/et/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/et/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/et/admin/general/social.json b/public/language/et/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/et/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/et/admin/general/sounds.json b/public/language/et/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/et/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/categories.json b/public/language/et/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/et/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/et/admin/manage/flags.json b/public/language/et/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/et/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/groups.json b/public/language/et/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/et/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/ip-blacklist.json b/public/language/et/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/et/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/registration.json b/public/language/et/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/et/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/tags.json b/public/language/et/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/et/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/et/admin/manage/users.json b/public/language/et/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/et/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/et/admin/menu.json b/public/language/et/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/et/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/et/admin/settings/advanced.json b/public/language/et/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/et/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/chat.json b/public/language/et/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/et/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/cookies.json b/public/language/et/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/et/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/email.json b/public/language/et/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/et/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/et/admin/settings/general.json b/public/language/et/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/et/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/group.json b/public/language/et/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/et/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/guest.json b/public/language/et/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/et/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/notifications.json b/public/language/et/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/et/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/pagination.json b/public/language/et/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/et/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/post.json b/public/language/et/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/et/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/reputation.json b/public/language/et/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/et/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/sockets.json b/public/language/et/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/et/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/tags.json b/public/language/et/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/et/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/uploads.json b/public/language/et/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/et/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/user.json b/public/language/et/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/et/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/et/admin/settings/web-crawler.json b/public/language/et/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/et/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/admin.json b/public/language/fa-IR/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/fa-IR/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/advanced/cache.json b/public/language/fa-IR/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/fa-IR/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/advanced/database.json b/public/language/fa-IR/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/fa-IR/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/advanced/errors.json b/public/language/fa-IR/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/fa-IR/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/advanced/events.json b/public/language/fa-IR/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/fa-IR/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/advanced/logs.json b/public/language/fa-IR/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/fa-IR/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/appearance/customise.json b/public/language/fa-IR/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/fa-IR/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/appearance/skins.json b/public/language/fa-IR/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/fa-IR/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/appearance/themes.json b/public/language/fa-IR/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/fa-IR/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/development/info.json b/public/language/fa-IR/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/fa-IR/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/development/logger.json b/public/language/fa-IR/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/fa-IR/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/extend/plugins.json b/public/language/fa-IR/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/fa-IR/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/extend/rewards.json b/public/language/fa-IR/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/fa-IR/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/extend/widgets.json b/public/language/fa-IR/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/fa-IR/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/dashboard.json b/public/language/fa-IR/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/fa-IR/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/homepage.json b/public/language/fa-IR/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/fa-IR/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/languages.json b/public/language/fa-IR/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/fa-IR/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/navigation.json b/public/language/fa-IR/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/fa-IR/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/social.json b/public/language/fa-IR/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/fa-IR/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/general/sounds.json b/public/language/fa-IR/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/fa-IR/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/categories.json b/public/language/fa-IR/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/fa-IR/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/flags.json b/public/language/fa-IR/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/fa-IR/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/groups.json b/public/language/fa-IR/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/fa-IR/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/ip-blacklist.json b/public/language/fa-IR/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/fa-IR/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/registration.json b/public/language/fa-IR/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/fa-IR/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/tags.json b/public/language/fa-IR/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/fa-IR/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/manage/users.json b/public/language/fa-IR/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/fa-IR/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/menu.json b/public/language/fa-IR/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/fa-IR/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/advanced.json b/public/language/fa-IR/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/fa-IR/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/chat.json b/public/language/fa-IR/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/fa-IR/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/cookies.json b/public/language/fa-IR/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/fa-IR/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/email.json b/public/language/fa-IR/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/fa-IR/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/general.json b/public/language/fa-IR/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/fa-IR/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/group.json b/public/language/fa-IR/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/fa-IR/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/guest.json b/public/language/fa-IR/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/fa-IR/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/notifications.json b/public/language/fa-IR/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/fa-IR/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/pagination.json b/public/language/fa-IR/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/fa-IR/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/post.json b/public/language/fa-IR/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/fa-IR/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/reputation.json b/public/language/fa-IR/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/fa-IR/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/sockets.json b/public/language/fa-IR/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/fa-IR/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/tags.json b/public/language/fa-IR/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/fa-IR/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/uploads.json b/public/language/fa-IR/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/fa-IR/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/user.json b/public/language/fa-IR/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/fa-IR/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/fa-IR/admin/settings/web-crawler.json b/public/language/fa-IR/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/fa-IR/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/fi/admin/admin.json b/public/language/fi/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/fi/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/fi/admin/advanced/cache.json b/public/language/fi/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/fi/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/fi/admin/advanced/database.json b/public/language/fi/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/fi/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/fi/admin/advanced/errors.json b/public/language/fi/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/fi/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/fi/admin/advanced/events.json b/public/language/fi/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/fi/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/fi/admin/advanced/logs.json b/public/language/fi/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/fi/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/fi/admin/appearance/customise.json b/public/language/fi/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/fi/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/fi/admin/appearance/skins.json b/public/language/fi/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/fi/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/fi/admin/appearance/themes.json b/public/language/fi/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/fi/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/fi/admin/development/info.json b/public/language/fi/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/fi/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/fi/admin/development/logger.json b/public/language/fi/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/fi/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/fi/admin/extend/plugins.json b/public/language/fi/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/fi/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/fi/admin/extend/rewards.json b/public/language/fi/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/fi/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/fi/admin/extend/widgets.json b/public/language/fi/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/fi/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/fi/admin/general/dashboard.json b/public/language/fi/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/fi/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/fi/admin/general/homepage.json b/public/language/fi/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/fi/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/fi/admin/general/languages.json b/public/language/fi/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/fi/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/fi/admin/general/navigation.json b/public/language/fi/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/fi/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/fi/admin/general/social.json b/public/language/fi/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/fi/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/fi/admin/general/sounds.json b/public/language/fi/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/fi/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/categories.json b/public/language/fi/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/fi/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/flags.json b/public/language/fi/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/fi/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/groups.json b/public/language/fi/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/fi/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/ip-blacklist.json b/public/language/fi/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/fi/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/registration.json b/public/language/fi/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/fi/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/tags.json b/public/language/fi/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/fi/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/fi/admin/manage/users.json b/public/language/fi/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/fi/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/fi/admin/menu.json b/public/language/fi/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/fi/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/advanced.json b/public/language/fi/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/fi/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/chat.json b/public/language/fi/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/fi/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/cookies.json b/public/language/fi/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/fi/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/email.json b/public/language/fi/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/fi/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/general.json b/public/language/fi/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/fi/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/group.json b/public/language/fi/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/fi/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/guest.json b/public/language/fi/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/fi/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/notifications.json b/public/language/fi/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/fi/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/pagination.json b/public/language/fi/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/fi/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/post.json b/public/language/fi/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/fi/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/reputation.json b/public/language/fi/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/fi/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/sockets.json b/public/language/fi/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/fi/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/tags.json b/public/language/fi/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/fi/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/uploads.json b/public/language/fi/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/fi/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/user.json b/public/language/fi/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/fi/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/fi/admin/settings/web-crawler.json b/public/language/fi/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/fi/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/fr/admin/admin.json b/public/language/fr/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/fr/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/fr/admin/advanced/cache.json b/public/language/fr/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/fr/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/fr/admin/advanced/database.json b/public/language/fr/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/fr/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/fr/admin/advanced/errors.json b/public/language/fr/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/fr/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/fr/admin/advanced/events.json b/public/language/fr/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/fr/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/fr/admin/advanced/logs.json b/public/language/fr/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/fr/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/fr/admin/appearance/customise.json b/public/language/fr/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/fr/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/fr/admin/appearance/skins.json b/public/language/fr/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/fr/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/fr/admin/appearance/themes.json b/public/language/fr/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/fr/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/fr/admin/development/info.json b/public/language/fr/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/fr/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/fr/admin/development/logger.json b/public/language/fr/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/fr/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/fr/admin/extend/plugins.json b/public/language/fr/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/fr/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/fr/admin/extend/rewards.json b/public/language/fr/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/fr/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/fr/admin/extend/widgets.json b/public/language/fr/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/fr/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/fr/admin/general/dashboard.json b/public/language/fr/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/fr/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/fr/admin/general/homepage.json b/public/language/fr/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/fr/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/fr/admin/general/languages.json b/public/language/fr/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/fr/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/fr/admin/general/navigation.json b/public/language/fr/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/fr/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/fr/admin/general/social.json b/public/language/fr/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/fr/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/fr/admin/general/sounds.json b/public/language/fr/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/fr/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/categories.json b/public/language/fr/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/fr/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/flags.json b/public/language/fr/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/fr/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/groups.json b/public/language/fr/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/fr/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/ip-blacklist.json b/public/language/fr/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/fr/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/registration.json b/public/language/fr/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/fr/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/tags.json b/public/language/fr/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/fr/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/fr/admin/manage/users.json b/public/language/fr/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/fr/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/fr/admin/menu.json b/public/language/fr/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/fr/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/advanced.json b/public/language/fr/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/fr/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/chat.json b/public/language/fr/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/fr/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/cookies.json b/public/language/fr/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/fr/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/email.json b/public/language/fr/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/fr/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/general.json b/public/language/fr/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/fr/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/group.json b/public/language/fr/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/fr/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/guest.json b/public/language/fr/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/fr/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/notifications.json b/public/language/fr/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/fr/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/pagination.json b/public/language/fr/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/fr/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/post.json b/public/language/fr/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/fr/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/reputation.json b/public/language/fr/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/fr/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/sockets.json b/public/language/fr/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/fr/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/tags.json b/public/language/fr/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/fr/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/uploads.json b/public/language/fr/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/fr/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/user.json b/public/language/fr/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/fr/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/fr/admin/settings/web-crawler.json b/public/language/fr/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/fr/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/gl/admin/admin.json b/public/language/gl/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/gl/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/gl/admin/advanced/cache.json b/public/language/gl/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/gl/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/gl/admin/advanced/database.json b/public/language/gl/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/gl/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/gl/admin/advanced/errors.json b/public/language/gl/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/gl/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/gl/admin/advanced/events.json b/public/language/gl/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/gl/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/gl/admin/advanced/logs.json b/public/language/gl/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/gl/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/gl/admin/appearance/customise.json b/public/language/gl/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/gl/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/gl/admin/appearance/skins.json b/public/language/gl/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/gl/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/gl/admin/appearance/themes.json b/public/language/gl/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/gl/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/gl/admin/development/info.json b/public/language/gl/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/gl/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/gl/admin/development/logger.json b/public/language/gl/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/gl/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/gl/admin/extend/plugins.json b/public/language/gl/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/gl/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/gl/admin/extend/rewards.json b/public/language/gl/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/gl/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/gl/admin/extend/widgets.json b/public/language/gl/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/gl/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/gl/admin/general/dashboard.json b/public/language/gl/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/gl/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/gl/admin/general/homepage.json b/public/language/gl/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/gl/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/gl/admin/general/languages.json b/public/language/gl/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/gl/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/gl/admin/general/navigation.json b/public/language/gl/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/gl/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/gl/admin/general/social.json b/public/language/gl/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/gl/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/gl/admin/general/sounds.json b/public/language/gl/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/gl/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/categories.json b/public/language/gl/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/gl/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/flags.json b/public/language/gl/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/gl/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/groups.json b/public/language/gl/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/gl/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/ip-blacklist.json b/public/language/gl/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/gl/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/registration.json b/public/language/gl/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/gl/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/tags.json b/public/language/gl/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/gl/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/gl/admin/manage/users.json b/public/language/gl/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/gl/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/gl/admin/menu.json b/public/language/gl/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/gl/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/advanced.json b/public/language/gl/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/gl/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/chat.json b/public/language/gl/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/gl/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/cookies.json b/public/language/gl/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/gl/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/email.json b/public/language/gl/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/gl/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/general.json b/public/language/gl/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/gl/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/group.json b/public/language/gl/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/gl/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/guest.json b/public/language/gl/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/gl/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/notifications.json b/public/language/gl/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/gl/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/pagination.json b/public/language/gl/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/gl/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/post.json b/public/language/gl/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/gl/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/reputation.json b/public/language/gl/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/gl/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/sockets.json b/public/language/gl/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/gl/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/tags.json b/public/language/gl/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/gl/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/uploads.json b/public/language/gl/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/gl/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/user.json b/public/language/gl/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/gl/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/gl/admin/settings/web-crawler.json b/public/language/gl/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/gl/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/he/admin/admin.json b/public/language/he/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/he/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/he/admin/advanced/cache.json b/public/language/he/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/he/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/he/admin/advanced/database.json b/public/language/he/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/he/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/he/admin/advanced/errors.json b/public/language/he/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/he/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/he/admin/advanced/events.json b/public/language/he/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/he/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/he/admin/advanced/logs.json b/public/language/he/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/he/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/he/admin/appearance/customise.json b/public/language/he/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/he/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/he/admin/appearance/skins.json b/public/language/he/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/he/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/he/admin/appearance/themes.json b/public/language/he/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/he/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/he/admin/development/info.json b/public/language/he/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/he/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/he/admin/development/logger.json b/public/language/he/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/he/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/he/admin/extend/plugins.json b/public/language/he/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/he/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/he/admin/extend/rewards.json b/public/language/he/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/he/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/he/admin/extend/widgets.json b/public/language/he/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/he/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/he/admin/general/dashboard.json b/public/language/he/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/he/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/he/admin/general/homepage.json b/public/language/he/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/he/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/he/admin/general/languages.json b/public/language/he/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/he/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/he/admin/general/navigation.json b/public/language/he/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/he/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/he/admin/general/social.json b/public/language/he/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/he/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/he/admin/general/sounds.json b/public/language/he/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/he/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/categories.json b/public/language/he/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/he/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/he/admin/manage/flags.json b/public/language/he/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/he/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/groups.json b/public/language/he/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/he/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/ip-blacklist.json b/public/language/he/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/he/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/registration.json b/public/language/he/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/he/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/tags.json b/public/language/he/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/he/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/he/admin/manage/users.json b/public/language/he/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/he/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/he/admin/menu.json b/public/language/he/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/he/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/he/admin/settings/advanced.json b/public/language/he/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/he/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/chat.json b/public/language/he/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/he/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/cookies.json b/public/language/he/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/he/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/email.json b/public/language/he/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/he/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/he/admin/settings/general.json b/public/language/he/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/he/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/group.json b/public/language/he/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/he/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/guest.json b/public/language/he/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/he/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/notifications.json b/public/language/he/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/he/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/pagination.json b/public/language/he/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/he/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/post.json b/public/language/he/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/he/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/reputation.json b/public/language/he/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/he/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/sockets.json b/public/language/he/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/he/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/tags.json b/public/language/he/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/he/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/uploads.json b/public/language/he/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/he/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/user.json b/public/language/he/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/he/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/he/admin/settings/web-crawler.json b/public/language/he/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/he/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/hu/admin/admin.json b/public/language/hu/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/hu/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/hu/admin/advanced/cache.json b/public/language/hu/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/hu/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/hu/admin/advanced/database.json b/public/language/hu/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/hu/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/hu/admin/advanced/errors.json b/public/language/hu/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/hu/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/hu/admin/advanced/events.json b/public/language/hu/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/hu/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/hu/admin/advanced/logs.json b/public/language/hu/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/hu/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/hu/admin/appearance/customise.json b/public/language/hu/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/hu/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/hu/admin/appearance/skins.json b/public/language/hu/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/hu/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/hu/admin/appearance/themes.json b/public/language/hu/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/hu/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/hu/admin/development/info.json b/public/language/hu/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/hu/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/hu/admin/development/logger.json b/public/language/hu/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/hu/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/hu/admin/extend/plugins.json b/public/language/hu/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/hu/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/hu/admin/extend/rewards.json b/public/language/hu/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/hu/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/hu/admin/extend/widgets.json b/public/language/hu/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/hu/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/hu/admin/general/dashboard.json b/public/language/hu/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/hu/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/hu/admin/general/homepage.json b/public/language/hu/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/hu/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/hu/admin/general/languages.json b/public/language/hu/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/hu/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/hu/admin/general/navigation.json b/public/language/hu/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/hu/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/hu/admin/general/social.json b/public/language/hu/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/hu/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/hu/admin/general/sounds.json b/public/language/hu/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/hu/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/categories.json b/public/language/hu/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/hu/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/flags.json b/public/language/hu/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/hu/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/groups.json b/public/language/hu/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/hu/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/ip-blacklist.json b/public/language/hu/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/hu/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/registration.json b/public/language/hu/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/hu/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/tags.json b/public/language/hu/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/hu/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/hu/admin/manage/users.json b/public/language/hu/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/hu/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/hu/admin/menu.json b/public/language/hu/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/hu/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/advanced.json b/public/language/hu/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/hu/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/chat.json b/public/language/hu/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/hu/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/cookies.json b/public/language/hu/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/hu/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/email.json b/public/language/hu/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/hu/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/general.json b/public/language/hu/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/hu/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/group.json b/public/language/hu/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/hu/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/guest.json b/public/language/hu/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/hu/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/notifications.json b/public/language/hu/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/hu/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/pagination.json b/public/language/hu/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/hu/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/post.json b/public/language/hu/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/hu/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/reputation.json b/public/language/hu/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/hu/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/sockets.json b/public/language/hu/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/hu/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/tags.json b/public/language/hu/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/hu/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/uploads.json b/public/language/hu/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/hu/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/user.json b/public/language/hu/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/hu/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/hu/admin/settings/web-crawler.json b/public/language/hu/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/hu/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/id/admin/admin.json b/public/language/id/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/id/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/id/admin/advanced/cache.json b/public/language/id/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/id/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/id/admin/advanced/database.json b/public/language/id/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/id/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/id/admin/advanced/errors.json b/public/language/id/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/id/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/id/admin/advanced/events.json b/public/language/id/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/id/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/id/admin/advanced/logs.json b/public/language/id/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/id/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/id/admin/appearance/customise.json b/public/language/id/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/id/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/id/admin/appearance/skins.json b/public/language/id/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/id/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/id/admin/appearance/themes.json b/public/language/id/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/id/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/id/admin/development/info.json b/public/language/id/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/id/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/id/admin/development/logger.json b/public/language/id/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/id/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/id/admin/extend/plugins.json b/public/language/id/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/id/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/id/admin/extend/rewards.json b/public/language/id/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/id/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/id/admin/extend/widgets.json b/public/language/id/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/id/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/id/admin/general/dashboard.json b/public/language/id/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/id/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/id/admin/general/homepage.json b/public/language/id/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/id/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/id/admin/general/languages.json b/public/language/id/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/id/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/id/admin/general/navigation.json b/public/language/id/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/id/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/id/admin/general/social.json b/public/language/id/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/id/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/id/admin/general/sounds.json b/public/language/id/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/id/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/categories.json b/public/language/id/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/id/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/id/admin/manage/flags.json b/public/language/id/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/id/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/groups.json b/public/language/id/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/id/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/ip-blacklist.json b/public/language/id/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/id/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/registration.json b/public/language/id/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/id/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/tags.json b/public/language/id/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/id/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/id/admin/manage/users.json b/public/language/id/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/id/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/id/admin/menu.json b/public/language/id/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/id/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/id/admin/settings/advanced.json b/public/language/id/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/id/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/chat.json b/public/language/id/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/id/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/cookies.json b/public/language/id/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/id/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/email.json b/public/language/id/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/id/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/id/admin/settings/general.json b/public/language/id/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/id/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/group.json b/public/language/id/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/id/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/guest.json b/public/language/id/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/id/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/notifications.json b/public/language/id/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/id/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/pagination.json b/public/language/id/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/id/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/post.json b/public/language/id/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/id/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/reputation.json b/public/language/id/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/id/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/sockets.json b/public/language/id/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/id/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/tags.json b/public/language/id/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/id/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/uploads.json b/public/language/id/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/id/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/user.json b/public/language/id/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/id/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/id/admin/settings/web-crawler.json b/public/language/id/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/id/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/it/admin/admin.json b/public/language/it/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/it/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/it/admin/advanced/cache.json b/public/language/it/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/it/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/it/admin/advanced/database.json b/public/language/it/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/it/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/it/admin/advanced/errors.json b/public/language/it/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/it/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/it/admin/advanced/events.json b/public/language/it/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/it/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/it/admin/advanced/logs.json b/public/language/it/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/it/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/it/admin/appearance/customise.json b/public/language/it/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/it/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/it/admin/appearance/skins.json b/public/language/it/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/it/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/it/admin/appearance/themes.json b/public/language/it/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/it/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/it/admin/development/info.json b/public/language/it/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/it/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/it/admin/development/logger.json b/public/language/it/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/it/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/it/admin/extend/plugins.json b/public/language/it/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/it/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/it/admin/extend/rewards.json b/public/language/it/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/it/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/it/admin/extend/widgets.json b/public/language/it/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/it/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/it/admin/general/dashboard.json b/public/language/it/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/it/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/it/admin/general/homepage.json b/public/language/it/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/it/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/it/admin/general/languages.json b/public/language/it/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/it/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/it/admin/general/navigation.json b/public/language/it/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/it/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/it/admin/general/social.json b/public/language/it/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/it/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/it/admin/general/sounds.json b/public/language/it/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/it/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/categories.json b/public/language/it/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/it/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/it/admin/manage/flags.json b/public/language/it/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/it/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/groups.json b/public/language/it/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/it/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/ip-blacklist.json b/public/language/it/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/it/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/registration.json b/public/language/it/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/it/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/tags.json b/public/language/it/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/it/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/it/admin/manage/users.json b/public/language/it/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/it/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/it/admin/menu.json b/public/language/it/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/it/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/it/admin/settings/advanced.json b/public/language/it/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/it/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/chat.json b/public/language/it/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/it/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/cookies.json b/public/language/it/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/it/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/email.json b/public/language/it/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/it/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/it/admin/settings/general.json b/public/language/it/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/it/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/group.json b/public/language/it/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/it/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/guest.json b/public/language/it/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/it/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/notifications.json b/public/language/it/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/it/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/pagination.json b/public/language/it/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/it/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/post.json b/public/language/it/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/it/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/reputation.json b/public/language/it/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/it/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/sockets.json b/public/language/it/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/it/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/tags.json b/public/language/it/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/it/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/uploads.json b/public/language/it/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/it/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/user.json b/public/language/it/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/it/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/it/admin/settings/web-crawler.json b/public/language/it/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/it/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/ja/admin/admin.json b/public/language/ja/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ja/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ja/admin/advanced/cache.json b/public/language/ja/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ja/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ja/admin/advanced/database.json b/public/language/ja/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ja/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ja/admin/advanced/errors.json b/public/language/ja/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ja/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ja/admin/advanced/events.json b/public/language/ja/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ja/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ja/admin/advanced/logs.json b/public/language/ja/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ja/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ja/admin/appearance/customise.json b/public/language/ja/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ja/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ja/admin/appearance/skins.json b/public/language/ja/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ja/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ja/admin/appearance/themes.json b/public/language/ja/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ja/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ja/admin/development/info.json b/public/language/ja/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ja/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ja/admin/development/logger.json b/public/language/ja/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ja/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ja/admin/extend/plugins.json b/public/language/ja/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ja/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ja/admin/extend/rewards.json b/public/language/ja/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ja/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ja/admin/extend/widgets.json b/public/language/ja/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ja/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ja/admin/general/dashboard.json b/public/language/ja/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ja/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ja/admin/general/homepage.json b/public/language/ja/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ja/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ja/admin/general/languages.json b/public/language/ja/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ja/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ja/admin/general/navigation.json b/public/language/ja/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ja/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ja/admin/general/social.json b/public/language/ja/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ja/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ja/admin/general/sounds.json b/public/language/ja/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ja/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/categories.json b/public/language/ja/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ja/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/flags.json b/public/language/ja/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ja/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/groups.json b/public/language/ja/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ja/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/ip-blacklist.json b/public/language/ja/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ja/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/registration.json b/public/language/ja/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ja/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/tags.json b/public/language/ja/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ja/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ja/admin/manage/users.json b/public/language/ja/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ja/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ja/admin/menu.json b/public/language/ja/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ja/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/advanced.json b/public/language/ja/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ja/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/chat.json b/public/language/ja/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ja/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/cookies.json b/public/language/ja/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ja/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/email.json b/public/language/ja/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ja/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/general.json b/public/language/ja/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ja/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/group.json b/public/language/ja/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ja/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/guest.json b/public/language/ja/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ja/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/notifications.json b/public/language/ja/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ja/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/pagination.json b/public/language/ja/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ja/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/post.json b/public/language/ja/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ja/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/reputation.json b/public/language/ja/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ja/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/sockets.json b/public/language/ja/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ja/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/tags.json b/public/language/ja/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ja/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/uploads.json b/public/language/ja/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ja/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/user.json b/public/language/ja/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ja/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ja/admin/settings/web-crawler.json b/public/language/ja/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ja/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/ko/admin/admin.json b/public/language/ko/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ko/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ko/admin/advanced/cache.json b/public/language/ko/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ko/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ko/admin/advanced/database.json b/public/language/ko/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ko/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ko/admin/advanced/errors.json b/public/language/ko/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ko/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ko/admin/advanced/events.json b/public/language/ko/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ko/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ko/admin/advanced/logs.json b/public/language/ko/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ko/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ko/admin/appearance/customise.json b/public/language/ko/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ko/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ko/admin/appearance/skins.json b/public/language/ko/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ko/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ko/admin/appearance/themes.json b/public/language/ko/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ko/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ko/admin/development/info.json b/public/language/ko/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ko/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ko/admin/development/logger.json b/public/language/ko/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ko/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ko/admin/extend/plugins.json b/public/language/ko/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ko/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ko/admin/extend/rewards.json b/public/language/ko/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ko/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ko/admin/extend/widgets.json b/public/language/ko/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ko/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ko/admin/general/dashboard.json b/public/language/ko/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ko/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ko/admin/general/homepage.json b/public/language/ko/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ko/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ko/admin/general/languages.json b/public/language/ko/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ko/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ko/admin/general/navigation.json b/public/language/ko/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ko/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ko/admin/general/social.json b/public/language/ko/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ko/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ko/admin/general/sounds.json b/public/language/ko/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ko/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/categories.json b/public/language/ko/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ko/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/flags.json b/public/language/ko/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ko/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/groups.json b/public/language/ko/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ko/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/ip-blacklist.json b/public/language/ko/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ko/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/registration.json b/public/language/ko/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ko/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/tags.json b/public/language/ko/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ko/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ko/admin/manage/users.json b/public/language/ko/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ko/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ko/admin/menu.json b/public/language/ko/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ko/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/advanced.json b/public/language/ko/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ko/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/chat.json b/public/language/ko/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ko/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/cookies.json b/public/language/ko/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ko/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/email.json b/public/language/ko/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ko/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/general.json b/public/language/ko/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ko/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/group.json b/public/language/ko/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ko/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/guest.json b/public/language/ko/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ko/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/notifications.json b/public/language/ko/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ko/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/pagination.json b/public/language/ko/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ko/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/post.json b/public/language/ko/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ko/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/reputation.json b/public/language/ko/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ko/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/sockets.json b/public/language/ko/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ko/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/tags.json b/public/language/ko/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ko/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/uploads.json b/public/language/ko/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ko/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/user.json b/public/language/ko/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ko/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ko/admin/settings/web-crawler.json b/public/language/ko/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ko/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/lt/admin/admin.json b/public/language/lt/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/lt/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/lt/admin/advanced/cache.json b/public/language/lt/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/lt/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/lt/admin/advanced/database.json b/public/language/lt/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/lt/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/lt/admin/advanced/errors.json b/public/language/lt/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/lt/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/lt/admin/advanced/events.json b/public/language/lt/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/lt/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/lt/admin/advanced/logs.json b/public/language/lt/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/lt/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/lt/admin/appearance/customise.json b/public/language/lt/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/lt/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/lt/admin/appearance/skins.json b/public/language/lt/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/lt/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/lt/admin/appearance/themes.json b/public/language/lt/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/lt/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/lt/admin/development/info.json b/public/language/lt/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/lt/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/lt/admin/development/logger.json b/public/language/lt/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/lt/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/lt/admin/extend/plugins.json b/public/language/lt/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/lt/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/lt/admin/extend/rewards.json b/public/language/lt/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/lt/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/lt/admin/extend/widgets.json b/public/language/lt/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/lt/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/lt/admin/general/dashboard.json b/public/language/lt/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/lt/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/lt/admin/general/homepage.json b/public/language/lt/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/lt/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/lt/admin/general/languages.json b/public/language/lt/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/lt/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/lt/admin/general/navigation.json b/public/language/lt/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/lt/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/lt/admin/general/social.json b/public/language/lt/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/lt/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/lt/admin/general/sounds.json b/public/language/lt/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/lt/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/categories.json b/public/language/lt/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/lt/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/flags.json b/public/language/lt/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/lt/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/groups.json b/public/language/lt/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/lt/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/ip-blacklist.json b/public/language/lt/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/lt/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/registration.json b/public/language/lt/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/lt/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/tags.json b/public/language/lt/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/lt/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/lt/admin/manage/users.json b/public/language/lt/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/lt/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/lt/admin/menu.json b/public/language/lt/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/lt/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/advanced.json b/public/language/lt/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/lt/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/chat.json b/public/language/lt/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/lt/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/cookies.json b/public/language/lt/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/lt/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/email.json b/public/language/lt/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/lt/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/general.json b/public/language/lt/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/lt/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/group.json b/public/language/lt/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/lt/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/guest.json b/public/language/lt/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/lt/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/notifications.json b/public/language/lt/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/lt/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/pagination.json b/public/language/lt/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/lt/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/post.json b/public/language/lt/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/lt/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/reputation.json b/public/language/lt/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/lt/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/sockets.json b/public/language/lt/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/lt/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/tags.json b/public/language/lt/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/lt/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/uploads.json b/public/language/lt/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/lt/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/user.json b/public/language/lt/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/lt/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/lt/admin/settings/web-crawler.json b/public/language/lt/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/lt/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/ms/admin/admin.json b/public/language/ms/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ms/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ms/admin/advanced/cache.json b/public/language/ms/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ms/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ms/admin/advanced/database.json b/public/language/ms/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ms/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ms/admin/advanced/errors.json b/public/language/ms/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ms/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ms/admin/advanced/events.json b/public/language/ms/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ms/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ms/admin/advanced/logs.json b/public/language/ms/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ms/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ms/admin/appearance/customise.json b/public/language/ms/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ms/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ms/admin/appearance/skins.json b/public/language/ms/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ms/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ms/admin/appearance/themes.json b/public/language/ms/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ms/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ms/admin/development/info.json b/public/language/ms/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ms/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ms/admin/development/logger.json b/public/language/ms/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ms/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ms/admin/extend/plugins.json b/public/language/ms/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ms/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ms/admin/extend/rewards.json b/public/language/ms/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ms/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ms/admin/extend/widgets.json b/public/language/ms/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ms/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ms/admin/general/dashboard.json b/public/language/ms/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ms/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ms/admin/general/homepage.json b/public/language/ms/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ms/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ms/admin/general/languages.json b/public/language/ms/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ms/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ms/admin/general/navigation.json b/public/language/ms/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ms/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ms/admin/general/social.json b/public/language/ms/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ms/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ms/admin/general/sounds.json b/public/language/ms/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ms/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/categories.json b/public/language/ms/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ms/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/flags.json b/public/language/ms/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ms/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/groups.json b/public/language/ms/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ms/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/ip-blacklist.json b/public/language/ms/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ms/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/registration.json b/public/language/ms/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ms/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/tags.json b/public/language/ms/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ms/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ms/admin/manage/users.json b/public/language/ms/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ms/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ms/admin/menu.json b/public/language/ms/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ms/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/advanced.json b/public/language/ms/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ms/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/chat.json b/public/language/ms/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ms/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/cookies.json b/public/language/ms/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ms/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/email.json b/public/language/ms/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ms/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/general.json b/public/language/ms/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ms/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/group.json b/public/language/ms/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ms/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/guest.json b/public/language/ms/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ms/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/notifications.json b/public/language/ms/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ms/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/pagination.json b/public/language/ms/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ms/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/post.json b/public/language/ms/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ms/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/reputation.json b/public/language/ms/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ms/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/sockets.json b/public/language/ms/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ms/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/tags.json b/public/language/ms/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ms/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/uploads.json b/public/language/ms/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ms/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/user.json b/public/language/ms/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ms/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ms/admin/settings/web-crawler.json b/public/language/ms/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ms/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/nb/admin/admin.json b/public/language/nb/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/nb/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/nb/admin/advanced/cache.json b/public/language/nb/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/nb/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/nb/admin/advanced/database.json b/public/language/nb/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/nb/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/nb/admin/advanced/errors.json b/public/language/nb/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/nb/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/nb/admin/advanced/events.json b/public/language/nb/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/nb/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/nb/admin/advanced/logs.json b/public/language/nb/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/nb/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/nb/admin/appearance/customise.json b/public/language/nb/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/nb/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/nb/admin/appearance/skins.json b/public/language/nb/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/nb/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/nb/admin/appearance/themes.json b/public/language/nb/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/nb/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/nb/admin/development/info.json b/public/language/nb/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/nb/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/nb/admin/development/logger.json b/public/language/nb/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/nb/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/nb/admin/extend/plugins.json b/public/language/nb/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/nb/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/nb/admin/extend/rewards.json b/public/language/nb/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/nb/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/nb/admin/extend/widgets.json b/public/language/nb/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/nb/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/nb/admin/general/dashboard.json b/public/language/nb/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/nb/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/nb/admin/general/homepage.json b/public/language/nb/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/nb/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/nb/admin/general/languages.json b/public/language/nb/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/nb/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/nb/admin/general/navigation.json b/public/language/nb/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/nb/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/nb/admin/general/social.json b/public/language/nb/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/nb/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/nb/admin/general/sounds.json b/public/language/nb/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/nb/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/categories.json b/public/language/nb/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/nb/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/flags.json b/public/language/nb/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/nb/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/groups.json b/public/language/nb/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/nb/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/ip-blacklist.json b/public/language/nb/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/nb/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/registration.json b/public/language/nb/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/nb/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/tags.json b/public/language/nb/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/nb/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/nb/admin/manage/users.json b/public/language/nb/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/nb/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/nb/admin/menu.json b/public/language/nb/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/nb/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/advanced.json b/public/language/nb/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/nb/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/chat.json b/public/language/nb/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/nb/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/cookies.json b/public/language/nb/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/nb/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/email.json b/public/language/nb/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/nb/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/general.json b/public/language/nb/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/nb/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/group.json b/public/language/nb/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/nb/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/guest.json b/public/language/nb/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/nb/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/notifications.json b/public/language/nb/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/nb/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/pagination.json b/public/language/nb/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/nb/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/post.json b/public/language/nb/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/nb/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/reputation.json b/public/language/nb/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/nb/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/sockets.json b/public/language/nb/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/nb/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/tags.json b/public/language/nb/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/nb/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/uploads.json b/public/language/nb/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/nb/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/user.json b/public/language/nb/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/nb/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/nb/admin/settings/web-crawler.json b/public/language/nb/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/nb/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/nl/admin/admin.json b/public/language/nl/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/nl/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/nl/admin/advanced/cache.json b/public/language/nl/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/nl/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/nl/admin/advanced/database.json b/public/language/nl/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/nl/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/nl/admin/advanced/errors.json b/public/language/nl/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/nl/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/nl/admin/advanced/events.json b/public/language/nl/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/nl/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/nl/admin/advanced/logs.json b/public/language/nl/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/nl/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/nl/admin/appearance/customise.json b/public/language/nl/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/nl/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/nl/admin/appearance/skins.json b/public/language/nl/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/nl/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/nl/admin/appearance/themes.json b/public/language/nl/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/nl/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/nl/admin/development/info.json b/public/language/nl/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/nl/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/nl/admin/development/logger.json b/public/language/nl/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/nl/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/nl/admin/extend/plugins.json b/public/language/nl/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/nl/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/nl/admin/extend/rewards.json b/public/language/nl/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/nl/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/nl/admin/extend/widgets.json b/public/language/nl/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/nl/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/nl/admin/general/dashboard.json b/public/language/nl/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/nl/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/nl/admin/general/homepage.json b/public/language/nl/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/nl/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/nl/admin/general/languages.json b/public/language/nl/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/nl/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/nl/admin/general/navigation.json b/public/language/nl/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/nl/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/nl/admin/general/social.json b/public/language/nl/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/nl/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/nl/admin/general/sounds.json b/public/language/nl/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/nl/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/categories.json b/public/language/nl/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/nl/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/flags.json b/public/language/nl/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/nl/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/groups.json b/public/language/nl/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/nl/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/ip-blacklist.json b/public/language/nl/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/nl/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/registration.json b/public/language/nl/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/nl/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/tags.json b/public/language/nl/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/nl/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/nl/admin/manage/users.json b/public/language/nl/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/nl/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/nl/admin/menu.json b/public/language/nl/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/nl/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/advanced.json b/public/language/nl/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/nl/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/chat.json b/public/language/nl/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/nl/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/cookies.json b/public/language/nl/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/nl/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/email.json b/public/language/nl/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/nl/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/general.json b/public/language/nl/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/nl/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/group.json b/public/language/nl/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/nl/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/guest.json b/public/language/nl/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/nl/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/notifications.json b/public/language/nl/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/nl/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/pagination.json b/public/language/nl/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/nl/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/post.json b/public/language/nl/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/nl/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/reputation.json b/public/language/nl/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/nl/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/sockets.json b/public/language/nl/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/nl/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/tags.json b/public/language/nl/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/nl/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/uploads.json b/public/language/nl/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/nl/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/user.json b/public/language/nl/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/nl/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/nl/admin/settings/web-crawler.json b/public/language/nl/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/nl/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/pl/admin/admin.json b/public/language/pl/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/pl/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/pl/admin/advanced/cache.json b/public/language/pl/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/pl/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/pl/admin/advanced/database.json b/public/language/pl/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/pl/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/pl/admin/advanced/errors.json b/public/language/pl/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/pl/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/pl/admin/advanced/events.json b/public/language/pl/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/pl/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/pl/admin/advanced/logs.json b/public/language/pl/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/pl/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/pl/admin/appearance/customise.json b/public/language/pl/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/pl/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/pl/admin/appearance/skins.json b/public/language/pl/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/pl/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/pl/admin/appearance/themes.json b/public/language/pl/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/pl/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/pl/admin/development/info.json b/public/language/pl/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/pl/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/pl/admin/development/logger.json b/public/language/pl/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/pl/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/pl/admin/extend/plugins.json b/public/language/pl/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/pl/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/pl/admin/extend/rewards.json b/public/language/pl/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/pl/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/pl/admin/extend/widgets.json b/public/language/pl/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/pl/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/pl/admin/general/dashboard.json b/public/language/pl/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/pl/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/pl/admin/general/homepage.json b/public/language/pl/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/pl/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/pl/admin/general/languages.json b/public/language/pl/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/pl/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/pl/admin/general/navigation.json b/public/language/pl/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/pl/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/pl/admin/general/social.json b/public/language/pl/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/pl/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/pl/admin/general/sounds.json b/public/language/pl/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/pl/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/categories.json b/public/language/pl/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/pl/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/flags.json b/public/language/pl/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/pl/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/groups.json b/public/language/pl/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/pl/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/ip-blacklist.json b/public/language/pl/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/pl/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/registration.json b/public/language/pl/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/pl/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/tags.json b/public/language/pl/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/pl/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/pl/admin/manage/users.json b/public/language/pl/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/pl/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/pl/admin/menu.json b/public/language/pl/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/pl/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/advanced.json b/public/language/pl/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/pl/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/chat.json b/public/language/pl/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/pl/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/cookies.json b/public/language/pl/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/pl/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/email.json b/public/language/pl/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/pl/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/general.json b/public/language/pl/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/pl/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/group.json b/public/language/pl/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/pl/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/guest.json b/public/language/pl/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/pl/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/notifications.json b/public/language/pl/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/pl/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/pagination.json b/public/language/pl/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/pl/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/post.json b/public/language/pl/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/pl/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/reputation.json b/public/language/pl/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/pl/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/sockets.json b/public/language/pl/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/pl/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/tags.json b/public/language/pl/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/pl/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/uploads.json b/public/language/pl/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/pl/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/user.json b/public/language/pl/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/pl/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/pl/admin/settings/web-crawler.json b/public/language/pl/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/pl/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/admin.json b/public/language/pt-BR/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/pt-BR/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/advanced/cache.json b/public/language/pt-BR/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/pt-BR/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/advanced/database.json b/public/language/pt-BR/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/pt-BR/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/advanced/errors.json b/public/language/pt-BR/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/pt-BR/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/advanced/events.json b/public/language/pt-BR/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/pt-BR/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/advanced/logs.json b/public/language/pt-BR/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/pt-BR/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/appearance/customise.json b/public/language/pt-BR/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/pt-BR/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/appearance/skins.json b/public/language/pt-BR/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/pt-BR/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/appearance/themes.json b/public/language/pt-BR/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/pt-BR/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/development/info.json b/public/language/pt-BR/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/pt-BR/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/development/logger.json b/public/language/pt-BR/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/pt-BR/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/extend/plugins.json b/public/language/pt-BR/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/pt-BR/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/extend/rewards.json b/public/language/pt-BR/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/pt-BR/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/extend/widgets.json b/public/language/pt-BR/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/pt-BR/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/dashboard.json b/public/language/pt-BR/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/pt-BR/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/homepage.json b/public/language/pt-BR/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/pt-BR/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/languages.json b/public/language/pt-BR/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/pt-BR/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/navigation.json b/public/language/pt-BR/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/pt-BR/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/social.json b/public/language/pt-BR/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/pt-BR/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/general/sounds.json b/public/language/pt-BR/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/pt-BR/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/categories.json b/public/language/pt-BR/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/pt-BR/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/flags.json b/public/language/pt-BR/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/pt-BR/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/groups.json b/public/language/pt-BR/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/pt-BR/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/ip-blacklist.json b/public/language/pt-BR/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/pt-BR/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/registration.json b/public/language/pt-BR/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/pt-BR/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/tags.json b/public/language/pt-BR/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/pt-BR/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/manage/users.json b/public/language/pt-BR/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/pt-BR/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/menu.json b/public/language/pt-BR/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/pt-BR/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/advanced.json b/public/language/pt-BR/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/pt-BR/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/chat.json b/public/language/pt-BR/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/pt-BR/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/cookies.json b/public/language/pt-BR/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/pt-BR/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/email.json b/public/language/pt-BR/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/pt-BR/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/general.json b/public/language/pt-BR/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/pt-BR/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/group.json b/public/language/pt-BR/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/pt-BR/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/guest.json b/public/language/pt-BR/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/pt-BR/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/notifications.json b/public/language/pt-BR/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/pt-BR/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/pagination.json b/public/language/pt-BR/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/pt-BR/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/post.json b/public/language/pt-BR/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/pt-BR/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/reputation.json b/public/language/pt-BR/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/pt-BR/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/sockets.json b/public/language/pt-BR/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/pt-BR/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/tags.json b/public/language/pt-BR/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/pt-BR/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/uploads.json b/public/language/pt-BR/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/pt-BR/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/user.json b/public/language/pt-BR/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/pt-BR/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/pt-BR/admin/settings/web-crawler.json b/public/language/pt-BR/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/pt-BR/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/admin.json b/public/language/pt-PT/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/pt-PT/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/advanced/cache.json b/public/language/pt-PT/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/pt-PT/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/advanced/database.json b/public/language/pt-PT/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/pt-PT/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/advanced/errors.json b/public/language/pt-PT/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/pt-PT/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/advanced/events.json b/public/language/pt-PT/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/pt-PT/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/advanced/logs.json b/public/language/pt-PT/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/pt-PT/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/appearance/customise.json b/public/language/pt-PT/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/pt-PT/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/appearance/skins.json b/public/language/pt-PT/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/pt-PT/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/appearance/themes.json b/public/language/pt-PT/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/pt-PT/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/development/info.json b/public/language/pt-PT/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/pt-PT/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/development/logger.json b/public/language/pt-PT/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/pt-PT/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/extend/plugins.json b/public/language/pt-PT/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/pt-PT/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/extend/rewards.json b/public/language/pt-PT/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/pt-PT/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/extend/widgets.json b/public/language/pt-PT/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/pt-PT/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/dashboard.json b/public/language/pt-PT/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/pt-PT/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/homepage.json b/public/language/pt-PT/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/pt-PT/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/languages.json b/public/language/pt-PT/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/pt-PT/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/navigation.json b/public/language/pt-PT/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/pt-PT/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/social.json b/public/language/pt-PT/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/pt-PT/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/general/sounds.json b/public/language/pt-PT/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/pt-PT/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/categories.json b/public/language/pt-PT/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/pt-PT/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/flags.json b/public/language/pt-PT/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/pt-PT/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/groups.json b/public/language/pt-PT/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/pt-PT/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/ip-blacklist.json b/public/language/pt-PT/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/pt-PT/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/registration.json b/public/language/pt-PT/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/pt-PT/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/tags.json b/public/language/pt-PT/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/pt-PT/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/manage/users.json b/public/language/pt-PT/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/pt-PT/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/menu.json b/public/language/pt-PT/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/pt-PT/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/advanced.json b/public/language/pt-PT/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/pt-PT/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/chat.json b/public/language/pt-PT/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/pt-PT/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/cookies.json b/public/language/pt-PT/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/pt-PT/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/email.json b/public/language/pt-PT/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/pt-PT/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/general.json b/public/language/pt-PT/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/pt-PT/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/group.json b/public/language/pt-PT/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/pt-PT/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/guest.json b/public/language/pt-PT/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/pt-PT/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/notifications.json b/public/language/pt-PT/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/pt-PT/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/pagination.json b/public/language/pt-PT/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/pt-PT/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/post.json b/public/language/pt-PT/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/pt-PT/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/reputation.json b/public/language/pt-PT/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/pt-PT/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/sockets.json b/public/language/pt-PT/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/pt-PT/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/tags.json b/public/language/pt-PT/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/pt-PT/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/uploads.json b/public/language/pt-PT/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/pt-PT/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/user.json b/public/language/pt-PT/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/pt-PT/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/pt-PT/admin/settings/web-crawler.json b/public/language/pt-PT/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/pt-PT/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/ro/admin/admin.json b/public/language/ro/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ro/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ro/admin/advanced/cache.json b/public/language/ro/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ro/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ro/admin/advanced/database.json b/public/language/ro/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ro/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ro/admin/advanced/errors.json b/public/language/ro/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ro/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ro/admin/advanced/events.json b/public/language/ro/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ro/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ro/admin/advanced/logs.json b/public/language/ro/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ro/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ro/admin/appearance/customise.json b/public/language/ro/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ro/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ro/admin/appearance/skins.json b/public/language/ro/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ro/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ro/admin/appearance/themes.json b/public/language/ro/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ro/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ro/admin/development/info.json b/public/language/ro/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ro/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ro/admin/development/logger.json b/public/language/ro/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ro/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ro/admin/extend/plugins.json b/public/language/ro/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ro/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ro/admin/extend/rewards.json b/public/language/ro/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ro/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ro/admin/extend/widgets.json b/public/language/ro/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ro/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ro/admin/general/dashboard.json b/public/language/ro/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ro/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ro/admin/general/homepage.json b/public/language/ro/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ro/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ro/admin/general/languages.json b/public/language/ro/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ro/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ro/admin/general/navigation.json b/public/language/ro/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ro/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ro/admin/general/social.json b/public/language/ro/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ro/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ro/admin/general/sounds.json b/public/language/ro/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ro/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/categories.json b/public/language/ro/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ro/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/flags.json b/public/language/ro/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ro/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/groups.json b/public/language/ro/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ro/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/ip-blacklist.json b/public/language/ro/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ro/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/registration.json b/public/language/ro/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ro/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/tags.json b/public/language/ro/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ro/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ro/admin/manage/users.json b/public/language/ro/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ro/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ro/admin/menu.json b/public/language/ro/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ro/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/advanced.json b/public/language/ro/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ro/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/chat.json b/public/language/ro/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ro/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/cookies.json b/public/language/ro/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ro/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/email.json b/public/language/ro/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ro/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/general.json b/public/language/ro/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ro/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/group.json b/public/language/ro/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ro/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/guest.json b/public/language/ro/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ro/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/notifications.json b/public/language/ro/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ro/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/pagination.json b/public/language/ro/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ro/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/post.json b/public/language/ro/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ro/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/reputation.json b/public/language/ro/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ro/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/sockets.json b/public/language/ro/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ro/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/tags.json b/public/language/ro/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ro/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/uploads.json b/public/language/ro/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ro/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/user.json b/public/language/ro/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ro/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ro/admin/settings/web-crawler.json b/public/language/ro/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ro/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/ru/admin/admin.json b/public/language/ru/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/ru/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/ru/admin/advanced/cache.json b/public/language/ru/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/ru/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/ru/admin/advanced/database.json b/public/language/ru/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/ru/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/ru/admin/advanced/errors.json b/public/language/ru/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/ru/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/ru/admin/advanced/events.json b/public/language/ru/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/ru/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/ru/admin/advanced/logs.json b/public/language/ru/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/ru/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/ru/admin/appearance/customise.json b/public/language/ru/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/ru/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/ru/admin/appearance/skins.json b/public/language/ru/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/ru/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/ru/admin/appearance/themes.json b/public/language/ru/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/ru/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/ru/admin/development/info.json b/public/language/ru/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/ru/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/ru/admin/development/logger.json b/public/language/ru/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/ru/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/ru/admin/extend/plugins.json b/public/language/ru/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/ru/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/ru/admin/extend/rewards.json b/public/language/ru/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/ru/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/ru/admin/extend/widgets.json b/public/language/ru/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/ru/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/ru/admin/general/dashboard.json b/public/language/ru/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/ru/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/ru/admin/general/homepage.json b/public/language/ru/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/ru/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/ru/admin/general/languages.json b/public/language/ru/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/ru/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/ru/admin/general/navigation.json b/public/language/ru/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/ru/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/ru/admin/general/social.json b/public/language/ru/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/ru/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/ru/admin/general/sounds.json b/public/language/ru/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/ru/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/categories.json b/public/language/ru/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/ru/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/flags.json b/public/language/ru/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/ru/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/groups.json b/public/language/ru/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/ru/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/ip-blacklist.json b/public/language/ru/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/ru/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/registration.json b/public/language/ru/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/ru/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/tags.json b/public/language/ru/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/ru/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/ru/admin/manage/users.json b/public/language/ru/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/ru/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/ru/admin/menu.json b/public/language/ru/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/ru/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/advanced.json b/public/language/ru/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/ru/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/chat.json b/public/language/ru/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/ru/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/cookies.json b/public/language/ru/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/ru/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/email.json b/public/language/ru/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/ru/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/general.json b/public/language/ru/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/ru/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/group.json b/public/language/ru/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/ru/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/guest.json b/public/language/ru/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/ru/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/notifications.json b/public/language/ru/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/ru/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/pagination.json b/public/language/ru/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/ru/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/post.json b/public/language/ru/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/ru/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/reputation.json b/public/language/ru/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/ru/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/sockets.json b/public/language/ru/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/ru/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/tags.json b/public/language/ru/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/ru/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/uploads.json b/public/language/ru/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/ru/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/user.json b/public/language/ru/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/ru/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/ru/admin/settings/web-crawler.json b/public/language/ru/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/ru/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/rw/admin/admin.json b/public/language/rw/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/rw/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/rw/admin/advanced/cache.json b/public/language/rw/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/rw/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/rw/admin/advanced/database.json b/public/language/rw/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/rw/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/rw/admin/advanced/errors.json b/public/language/rw/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/rw/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/rw/admin/advanced/events.json b/public/language/rw/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/rw/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/rw/admin/advanced/logs.json b/public/language/rw/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/rw/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/rw/admin/appearance/customise.json b/public/language/rw/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/rw/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/rw/admin/appearance/skins.json b/public/language/rw/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/rw/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/rw/admin/appearance/themes.json b/public/language/rw/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/rw/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/rw/admin/development/info.json b/public/language/rw/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/rw/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/rw/admin/development/logger.json b/public/language/rw/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/rw/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/rw/admin/extend/plugins.json b/public/language/rw/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/rw/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/rw/admin/extend/rewards.json b/public/language/rw/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/rw/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/rw/admin/extend/widgets.json b/public/language/rw/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/rw/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/rw/admin/general/dashboard.json b/public/language/rw/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/rw/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/rw/admin/general/homepage.json b/public/language/rw/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/rw/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/rw/admin/general/languages.json b/public/language/rw/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/rw/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/rw/admin/general/navigation.json b/public/language/rw/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/rw/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/rw/admin/general/social.json b/public/language/rw/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/rw/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/rw/admin/general/sounds.json b/public/language/rw/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/rw/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/categories.json b/public/language/rw/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/rw/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/flags.json b/public/language/rw/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/rw/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/groups.json b/public/language/rw/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/rw/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/ip-blacklist.json b/public/language/rw/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/rw/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/registration.json b/public/language/rw/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/rw/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/tags.json b/public/language/rw/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/rw/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/rw/admin/manage/users.json b/public/language/rw/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/rw/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/rw/admin/menu.json b/public/language/rw/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/rw/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/advanced.json b/public/language/rw/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/rw/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/chat.json b/public/language/rw/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/rw/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/cookies.json b/public/language/rw/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/rw/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/email.json b/public/language/rw/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/rw/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/general.json b/public/language/rw/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/rw/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/group.json b/public/language/rw/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/rw/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/guest.json b/public/language/rw/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/rw/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/notifications.json b/public/language/rw/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/rw/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/pagination.json b/public/language/rw/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/rw/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/post.json b/public/language/rw/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/rw/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/reputation.json b/public/language/rw/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/rw/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/sockets.json b/public/language/rw/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/rw/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/tags.json b/public/language/rw/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/rw/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/uploads.json b/public/language/rw/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/rw/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/user.json b/public/language/rw/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/rw/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/rw/admin/settings/web-crawler.json b/public/language/rw/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/rw/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/sc/admin/admin.json b/public/language/sc/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/sc/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/sc/admin/advanced/cache.json b/public/language/sc/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/sc/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/sc/admin/advanced/database.json b/public/language/sc/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/sc/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/sc/admin/advanced/errors.json b/public/language/sc/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/sc/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/sc/admin/advanced/events.json b/public/language/sc/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/sc/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/sc/admin/advanced/logs.json b/public/language/sc/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/sc/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/sc/admin/appearance/customise.json b/public/language/sc/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/sc/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/sc/admin/appearance/skins.json b/public/language/sc/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/sc/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/sc/admin/appearance/themes.json b/public/language/sc/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/sc/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/sc/admin/development/info.json b/public/language/sc/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/sc/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/sc/admin/development/logger.json b/public/language/sc/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/sc/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/sc/admin/extend/plugins.json b/public/language/sc/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/sc/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/sc/admin/extend/rewards.json b/public/language/sc/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/sc/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/sc/admin/extend/widgets.json b/public/language/sc/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/sc/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/sc/admin/general/dashboard.json b/public/language/sc/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/sc/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/sc/admin/general/homepage.json b/public/language/sc/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/sc/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/sc/admin/general/languages.json b/public/language/sc/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/sc/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/sc/admin/general/navigation.json b/public/language/sc/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/sc/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/sc/admin/general/social.json b/public/language/sc/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/sc/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/sc/admin/general/sounds.json b/public/language/sc/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/sc/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/categories.json b/public/language/sc/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/sc/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/flags.json b/public/language/sc/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/sc/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/groups.json b/public/language/sc/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/sc/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/ip-blacklist.json b/public/language/sc/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/sc/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/registration.json b/public/language/sc/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/sc/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/tags.json b/public/language/sc/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/sc/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/sc/admin/manage/users.json b/public/language/sc/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/sc/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/sc/admin/menu.json b/public/language/sc/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/sc/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/advanced.json b/public/language/sc/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/sc/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/chat.json b/public/language/sc/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/sc/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/cookies.json b/public/language/sc/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/sc/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/email.json b/public/language/sc/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/sc/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/general.json b/public/language/sc/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/sc/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/group.json b/public/language/sc/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/sc/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/guest.json b/public/language/sc/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/sc/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/notifications.json b/public/language/sc/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/sc/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/pagination.json b/public/language/sc/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/sc/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/post.json b/public/language/sc/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/sc/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/reputation.json b/public/language/sc/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/sc/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/sockets.json b/public/language/sc/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/sc/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/tags.json b/public/language/sc/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/sc/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/uploads.json b/public/language/sc/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/sc/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/user.json b/public/language/sc/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/sc/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/sc/admin/settings/web-crawler.json b/public/language/sc/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/sc/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/sk/admin/admin.json b/public/language/sk/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/sk/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/sk/admin/advanced/cache.json b/public/language/sk/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/sk/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/sk/admin/advanced/database.json b/public/language/sk/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/sk/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/sk/admin/advanced/errors.json b/public/language/sk/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/sk/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/sk/admin/advanced/events.json b/public/language/sk/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/sk/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/sk/admin/advanced/logs.json b/public/language/sk/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/sk/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/sk/admin/appearance/customise.json b/public/language/sk/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/sk/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/sk/admin/appearance/skins.json b/public/language/sk/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/sk/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/sk/admin/appearance/themes.json b/public/language/sk/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/sk/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/sk/admin/development/info.json b/public/language/sk/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/sk/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/sk/admin/development/logger.json b/public/language/sk/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/sk/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/sk/admin/extend/plugins.json b/public/language/sk/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/sk/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/sk/admin/extend/rewards.json b/public/language/sk/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/sk/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/sk/admin/extend/widgets.json b/public/language/sk/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/sk/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/sk/admin/general/dashboard.json b/public/language/sk/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/sk/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/sk/admin/general/homepage.json b/public/language/sk/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/sk/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/sk/admin/general/languages.json b/public/language/sk/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/sk/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/sk/admin/general/navigation.json b/public/language/sk/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/sk/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/sk/admin/general/social.json b/public/language/sk/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/sk/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/sk/admin/general/sounds.json b/public/language/sk/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/sk/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/categories.json b/public/language/sk/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/sk/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/flags.json b/public/language/sk/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/sk/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/groups.json b/public/language/sk/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/sk/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/ip-blacklist.json b/public/language/sk/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/sk/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/registration.json b/public/language/sk/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/sk/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/tags.json b/public/language/sk/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/sk/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/sk/admin/manage/users.json b/public/language/sk/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/sk/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/sk/admin/menu.json b/public/language/sk/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/sk/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/advanced.json b/public/language/sk/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/sk/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/chat.json b/public/language/sk/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/sk/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/cookies.json b/public/language/sk/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/sk/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/email.json b/public/language/sk/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/sk/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/general.json b/public/language/sk/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/sk/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/group.json b/public/language/sk/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/sk/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/guest.json b/public/language/sk/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/sk/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/notifications.json b/public/language/sk/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/sk/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/pagination.json b/public/language/sk/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/sk/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/post.json b/public/language/sk/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/sk/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/reputation.json b/public/language/sk/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/sk/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/sockets.json b/public/language/sk/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/sk/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/tags.json b/public/language/sk/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/sk/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/uploads.json b/public/language/sk/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/sk/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/user.json b/public/language/sk/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/sk/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/sk/admin/settings/web-crawler.json b/public/language/sk/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/sk/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/sl/admin/admin.json b/public/language/sl/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/sl/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/sl/admin/advanced/cache.json b/public/language/sl/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/sl/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/sl/admin/advanced/database.json b/public/language/sl/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/sl/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/sl/admin/advanced/errors.json b/public/language/sl/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/sl/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/sl/admin/advanced/events.json b/public/language/sl/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/sl/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/sl/admin/advanced/logs.json b/public/language/sl/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/sl/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/sl/admin/appearance/customise.json b/public/language/sl/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/sl/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/sl/admin/appearance/skins.json b/public/language/sl/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/sl/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/sl/admin/appearance/themes.json b/public/language/sl/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/sl/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/sl/admin/development/info.json b/public/language/sl/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/sl/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/sl/admin/development/logger.json b/public/language/sl/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/sl/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/sl/admin/extend/plugins.json b/public/language/sl/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/sl/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/sl/admin/extend/rewards.json b/public/language/sl/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/sl/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/sl/admin/extend/widgets.json b/public/language/sl/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/sl/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/sl/admin/general/dashboard.json b/public/language/sl/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/sl/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/sl/admin/general/homepage.json b/public/language/sl/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/sl/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/sl/admin/general/languages.json b/public/language/sl/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/sl/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/sl/admin/general/navigation.json b/public/language/sl/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/sl/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/sl/admin/general/social.json b/public/language/sl/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/sl/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/sl/admin/general/sounds.json b/public/language/sl/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/sl/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/categories.json b/public/language/sl/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/sl/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/flags.json b/public/language/sl/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/sl/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/groups.json b/public/language/sl/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/sl/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/ip-blacklist.json b/public/language/sl/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/sl/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/registration.json b/public/language/sl/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/sl/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/tags.json b/public/language/sl/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/sl/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/sl/admin/manage/users.json b/public/language/sl/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/sl/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/sl/admin/menu.json b/public/language/sl/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/sl/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/advanced.json b/public/language/sl/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/sl/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/chat.json b/public/language/sl/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/sl/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/cookies.json b/public/language/sl/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/sl/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/email.json b/public/language/sl/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/sl/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/general.json b/public/language/sl/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/sl/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/group.json b/public/language/sl/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/sl/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/guest.json b/public/language/sl/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/sl/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/notifications.json b/public/language/sl/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/sl/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/pagination.json b/public/language/sl/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/sl/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/post.json b/public/language/sl/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/sl/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/reputation.json b/public/language/sl/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/sl/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/sockets.json b/public/language/sl/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/sl/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/tags.json b/public/language/sl/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/sl/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/uploads.json b/public/language/sl/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/sl/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/user.json b/public/language/sl/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/sl/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/sl/admin/settings/web-crawler.json b/public/language/sl/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/sl/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/sr/admin/admin.json b/public/language/sr/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/sr/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/sr/admin/advanced/cache.json b/public/language/sr/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/sr/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/sr/admin/advanced/database.json b/public/language/sr/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/sr/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/sr/admin/advanced/errors.json b/public/language/sr/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/sr/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/sr/admin/advanced/events.json b/public/language/sr/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/sr/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/sr/admin/advanced/logs.json b/public/language/sr/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/sr/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/sr/admin/appearance/customise.json b/public/language/sr/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/sr/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/sr/admin/appearance/skins.json b/public/language/sr/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/sr/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/sr/admin/appearance/themes.json b/public/language/sr/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/sr/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/sr/admin/development/info.json b/public/language/sr/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/sr/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/sr/admin/development/logger.json b/public/language/sr/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/sr/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/sr/admin/extend/plugins.json b/public/language/sr/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/sr/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/sr/admin/extend/rewards.json b/public/language/sr/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/sr/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/sr/admin/extend/widgets.json b/public/language/sr/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/sr/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/sr/admin/general/dashboard.json b/public/language/sr/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/sr/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/sr/admin/general/homepage.json b/public/language/sr/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/sr/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/sr/admin/general/languages.json b/public/language/sr/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/sr/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/sr/admin/general/navigation.json b/public/language/sr/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/sr/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/sr/admin/general/social.json b/public/language/sr/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/sr/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/sr/admin/general/sounds.json b/public/language/sr/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/sr/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/categories.json b/public/language/sr/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/sr/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/flags.json b/public/language/sr/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/sr/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/groups.json b/public/language/sr/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/sr/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/ip-blacklist.json b/public/language/sr/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/sr/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/registration.json b/public/language/sr/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/sr/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/tags.json b/public/language/sr/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/sr/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/sr/admin/manage/users.json b/public/language/sr/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/sr/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/sr/admin/menu.json b/public/language/sr/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/sr/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/advanced.json b/public/language/sr/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/sr/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/chat.json b/public/language/sr/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/sr/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/cookies.json b/public/language/sr/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/sr/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/email.json b/public/language/sr/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/sr/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/general.json b/public/language/sr/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/sr/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/group.json b/public/language/sr/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/sr/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/guest.json b/public/language/sr/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/sr/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/notifications.json b/public/language/sr/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/sr/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/pagination.json b/public/language/sr/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/sr/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/post.json b/public/language/sr/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/sr/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/reputation.json b/public/language/sr/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/sr/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/sockets.json b/public/language/sr/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/sr/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/tags.json b/public/language/sr/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/sr/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/uploads.json b/public/language/sr/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/sr/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/user.json b/public/language/sr/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/sr/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/sr/admin/settings/web-crawler.json b/public/language/sr/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/sr/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/sv/admin/admin.json b/public/language/sv/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/sv/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/sv/admin/advanced/cache.json b/public/language/sv/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/sv/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/sv/admin/advanced/database.json b/public/language/sv/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/sv/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/sv/admin/advanced/errors.json b/public/language/sv/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/sv/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/sv/admin/advanced/events.json b/public/language/sv/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/sv/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/sv/admin/advanced/logs.json b/public/language/sv/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/sv/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/sv/admin/appearance/customise.json b/public/language/sv/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/sv/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/sv/admin/appearance/skins.json b/public/language/sv/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/sv/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/sv/admin/appearance/themes.json b/public/language/sv/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/sv/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/sv/admin/development/info.json b/public/language/sv/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/sv/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/sv/admin/development/logger.json b/public/language/sv/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/sv/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/sv/admin/extend/plugins.json b/public/language/sv/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/sv/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/sv/admin/extend/rewards.json b/public/language/sv/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/sv/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/sv/admin/extend/widgets.json b/public/language/sv/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/sv/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/sv/admin/general/dashboard.json b/public/language/sv/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/sv/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/sv/admin/general/homepage.json b/public/language/sv/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/sv/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/sv/admin/general/languages.json b/public/language/sv/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/sv/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/sv/admin/general/navigation.json b/public/language/sv/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/sv/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/sv/admin/general/social.json b/public/language/sv/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/sv/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/sv/admin/general/sounds.json b/public/language/sv/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/sv/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/categories.json b/public/language/sv/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/sv/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/flags.json b/public/language/sv/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/sv/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/groups.json b/public/language/sv/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/sv/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/ip-blacklist.json b/public/language/sv/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/sv/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/registration.json b/public/language/sv/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/sv/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/tags.json b/public/language/sv/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/sv/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/sv/admin/manage/users.json b/public/language/sv/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/sv/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/sv/admin/menu.json b/public/language/sv/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/sv/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/advanced.json b/public/language/sv/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/sv/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/chat.json b/public/language/sv/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/sv/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/cookies.json b/public/language/sv/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/sv/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/email.json b/public/language/sv/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/sv/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/general.json b/public/language/sv/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/sv/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/group.json b/public/language/sv/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/sv/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/guest.json b/public/language/sv/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/sv/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/notifications.json b/public/language/sv/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/sv/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/pagination.json b/public/language/sv/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/sv/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/post.json b/public/language/sv/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/sv/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/reputation.json b/public/language/sv/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/sv/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/sockets.json b/public/language/sv/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/sv/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/tags.json b/public/language/sv/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/sv/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/uploads.json b/public/language/sv/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/sv/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/user.json b/public/language/sv/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/sv/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/sv/admin/settings/web-crawler.json b/public/language/sv/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/sv/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/th/admin/admin.json b/public/language/th/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/th/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/th/admin/advanced/cache.json b/public/language/th/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/th/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/th/admin/advanced/database.json b/public/language/th/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/th/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/th/admin/advanced/errors.json b/public/language/th/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/th/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/th/admin/advanced/events.json b/public/language/th/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/th/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/th/admin/advanced/logs.json b/public/language/th/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/th/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/th/admin/appearance/customise.json b/public/language/th/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/th/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/th/admin/appearance/skins.json b/public/language/th/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/th/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/th/admin/appearance/themes.json b/public/language/th/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/th/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/th/admin/development/info.json b/public/language/th/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/th/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/th/admin/development/logger.json b/public/language/th/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/th/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/th/admin/extend/plugins.json b/public/language/th/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/th/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/th/admin/extend/rewards.json b/public/language/th/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/th/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/th/admin/extend/widgets.json b/public/language/th/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/th/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/th/admin/general/dashboard.json b/public/language/th/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/th/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/th/admin/general/homepage.json b/public/language/th/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/th/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/th/admin/general/languages.json b/public/language/th/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/th/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/th/admin/general/navigation.json b/public/language/th/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/th/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/th/admin/general/social.json b/public/language/th/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/th/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/th/admin/general/sounds.json b/public/language/th/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/th/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/categories.json b/public/language/th/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/th/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/th/admin/manage/flags.json b/public/language/th/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/th/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/groups.json b/public/language/th/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/th/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/ip-blacklist.json b/public/language/th/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/th/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/registration.json b/public/language/th/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/th/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/tags.json b/public/language/th/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/th/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/th/admin/manage/users.json b/public/language/th/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/th/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/th/admin/menu.json b/public/language/th/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/th/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/th/admin/settings/advanced.json b/public/language/th/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/th/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/chat.json b/public/language/th/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/th/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/cookies.json b/public/language/th/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/th/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/email.json b/public/language/th/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/th/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/th/admin/settings/general.json b/public/language/th/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/th/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/group.json b/public/language/th/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/th/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/guest.json b/public/language/th/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/th/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/notifications.json b/public/language/th/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/th/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/pagination.json b/public/language/th/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/th/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/post.json b/public/language/th/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/th/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/reputation.json b/public/language/th/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/th/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/sockets.json b/public/language/th/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/th/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/tags.json b/public/language/th/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/th/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/uploads.json b/public/language/th/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/th/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/user.json b/public/language/th/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/th/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/th/admin/settings/web-crawler.json b/public/language/th/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/th/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/tr/admin/admin.json b/public/language/tr/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/tr/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/tr/admin/advanced/cache.json b/public/language/tr/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/tr/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/tr/admin/advanced/database.json b/public/language/tr/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/tr/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/tr/admin/advanced/errors.json b/public/language/tr/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/tr/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/tr/admin/advanced/events.json b/public/language/tr/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/tr/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/tr/admin/advanced/logs.json b/public/language/tr/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/tr/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/tr/admin/appearance/customise.json b/public/language/tr/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/tr/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/tr/admin/appearance/skins.json b/public/language/tr/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/tr/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/tr/admin/appearance/themes.json b/public/language/tr/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/tr/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/tr/admin/development/info.json b/public/language/tr/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/tr/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/tr/admin/development/logger.json b/public/language/tr/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/tr/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/tr/admin/extend/plugins.json b/public/language/tr/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/tr/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/tr/admin/extend/rewards.json b/public/language/tr/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/tr/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/tr/admin/extend/widgets.json b/public/language/tr/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/tr/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/tr/admin/general/dashboard.json b/public/language/tr/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/tr/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/tr/admin/general/homepage.json b/public/language/tr/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/tr/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/tr/admin/general/languages.json b/public/language/tr/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/tr/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/tr/admin/general/navigation.json b/public/language/tr/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/tr/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/tr/admin/general/social.json b/public/language/tr/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/tr/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/tr/admin/general/sounds.json b/public/language/tr/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/tr/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/categories.json b/public/language/tr/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/tr/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/flags.json b/public/language/tr/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/tr/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/groups.json b/public/language/tr/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/tr/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/ip-blacklist.json b/public/language/tr/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/tr/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/registration.json b/public/language/tr/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/tr/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/tags.json b/public/language/tr/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/tr/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/tr/admin/manage/users.json b/public/language/tr/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/tr/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/tr/admin/menu.json b/public/language/tr/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/tr/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/advanced.json b/public/language/tr/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/tr/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/chat.json b/public/language/tr/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/tr/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/cookies.json b/public/language/tr/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/tr/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/email.json b/public/language/tr/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/tr/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/general.json b/public/language/tr/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/tr/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/group.json b/public/language/tr/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/tr/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/guest.json b/public/language/tr/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/tr/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/notifications.json b/public/language/tr/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/tr/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/pagination.json b/public/language/tr/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/tr/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/post.json b/public/language/tr/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/tr/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/reputation.json b/public/language/tr/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/tr/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/sockets.json b/public/language/tr/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/tr/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/tags.json b/public/language/tr/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/tr/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/uploads.json b/public/language/tr/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/tr/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/user.json b/public/language/tr/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/tr/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/tr/admin/settings/web-crawler.json b/public/language/tr/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/tr/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/vi/admin/admin.json b/public/language/vi/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/vi/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/vi/admin/advanced/cache.json b/public/language/vi/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/vi/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/vi/admin/advanced/database.json b/public/language/vi/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/vi/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/vi/admin/advanced/errors.json b/public/language/vi/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/vi/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/vi/admin/advanced/events.json b/public/language/vi/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/vi/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/vi/admin/advanced/logs.json b/public/language/vi/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/vi/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/vi/admin/appearance/customise.json b/public/language/vi/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/vi/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/vi/admin/appearance/skins.json b/public/language/vi/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/vi/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/vi/admin/appearance/themes.json b/public/language/vi/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/vi/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/vi/admin/development/info.json b/public/language/vi/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/vi/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/vi/admin/development/logger.json b/public/language/vi/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/vi/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/vi/admin/extend/plugins.json b/public/language/vi/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/vi/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/vi/admin/extend/rewards.json b/public/language/vi/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/vi/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/vi/admin/extend/widgets.json b/public/language/vi/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/vi/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/vi/admin/general/dashboard.json b/public/language/vi/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/vi/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/vi/admin/general/homepage.json b/public/language/vi/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/vi/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/vi/admin/general/languages.json b/public/language/vi/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/vi/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/vi/admin/general/navigation.json b/public/language/vi/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/vi/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/vi/admin/general/social.json b/public/language/vi/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/vi/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/vi/admin/general/sounds.json b/public/language/vi/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/vi/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/categories.json b/public/language/vi/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/vi/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/flags.json b/public/language/vi/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/vi/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/groups.json b/public/language/vi/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/vi/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/ip-blacklist.json b/public/language/vi/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/vi/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/registration.json b/public/language/vi/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/vi/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/tags.json b/public/language/vi/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/vi/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/vi/admin/manage/users.json b/public/language/vi/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/vi/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/vi/admin/menu.json b/public/language/vi/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/vi/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/advanced.json b/public/language/vi/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/vi/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/chat.json b/public/language/vi/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/vi/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/cookies.json b/public/language/vi/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/vi/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/email.json b/public/language/vi/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/vi/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/general.json b/public/language/vi/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/vi/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/group.json b/public/language/vi/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/vi/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/guest.json b/public/language/vi/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/vi/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/notifications.json b/public/language/vi/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/vi/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/pagination.json b/public/language/vi/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/vi/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/post.json b/public/language/vi/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/vi/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/reputation.json b/public/language/vi/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/vi/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/sockets.json b/public/language/vi/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/vi/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/tags.json b/public/language/vi/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/vi/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/uploads.json b/public/language/vi/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/vi/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/user.json b/public/language/vi/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/vi/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/vi/admin/settings/web-crawler.json b/public/language/vi/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/vi/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/admin.json b/public/language/zh-CN/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/zh-CN/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/advanced/cache.json b/public/language/zh-CN/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/zh-CN/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/advanced/database.json b/public/language/zh-CN/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/zh-CN/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/advanced/errors.json b/public/language/zh-CN/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/zh-CN/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/advanced/events.json b/public/language/zh-CN/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/zh-CN/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/advanced/logs.json b/public/language/zh-CN/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/zh-CN/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/appearance/customise.json b/public/language/zh-CN/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/zh-CN/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/appearance/skins.json b/public/language/zh-CN/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/zh-CN/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/appearance/themes.json b/public/language/zh-CN/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/zh-CN/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/development/info.json b/public/language/zh-CN/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/zh-CN/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/development/logger.json b/public/language/zh-CN/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/zh-CN/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/extend/plugins.json b/public/language/zh-CN/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/zh-CN/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/extend/rewards.json b/public/language/zh-CN/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/zh-CN/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/extend/widgets.json b/public/language/zh-CN/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/zh-CN/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/dashboard.json b/public/language/zh-CN/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/zh-CN/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/homepage.json b/public/language/zh-CN/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/zh-CN/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/languages.json b/public/language/zh-CN/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/zh-CN/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/navigation.json b/public/language/zh-CN/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/zh-CN/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/social.json b/public/language/zh-CN/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/zh-CN/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/general/sounds.json b/public/language/zh-CN/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/zh-CN/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/categories.json b/public/language/zh-CN/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/zh-CN/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/flags.json b/public/language/zh-CN/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/zh-CN/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/groups.json b/public/language/zh-CN/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/zh-CN/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/ip-blacklist.json b/public/language/zh-CN/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/zh-CN/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/registration.json b/public/language/zh-CN/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/zh-CN/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/tags.json b/public/language/zh-CN/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/zh-CN/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/manage/users.json b/public/language/zh-CN/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/zh-CN/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/menu.json b/public/language/zh-CN/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/zh-CN/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/advanced.json b/public/language/zh-CN/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/zh-CN/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/chat.json b/public/language/zh-CN/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/zh-CN/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/cookies.json b/public/language/zh-CN/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/zh-CN/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/email.json b/public/language/zh-CN/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/zh-CN/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/general.json b/public/language/zh-CN/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/zh-CN/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/group.json b/public/language/zh-CN/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/zh-CN/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/guest.json b/public/language/zh-CN/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/zh-CN/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/notifications.json b/public/language/zh-CN/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/zh-CN/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/pagination.json b/public/language/zh-CN/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/zh-CN/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/post.json b/public/language/zh-CN/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/zh-CN/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/reputation.json b/public/language/zh-CN/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/zh-CN/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/sockets.json b/public/language/zh-CN/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/zh-CN/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/tags.json b/public/language/zh-CN/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/zh-CN/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/uploads.json b/public/language/zh-CN/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/zh-CN/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/user.json b/public/language/zh-CN/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/zh-CN/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/zh-CN/admin/settings/web-crawler.json b/public/language/zh-CN/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/zh-CN/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/admin.json b/public/language/zh-TW/admin/admin.json new file mode 100644 index 0000000000..9c01f56006 --- /dev/null +++ b/public/language/zh-TW/admin/admin.json @@ -0,0 +1,7 @@ +{ + "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", + "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + + "acp-title": "%1 | NodeBB Admin Control Panel", + "settings-header-contents": "Contents" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/advanced/cache.json b/public/language/zh-TW/admin/advanced/cache.json new file mode 100644 index 0000000000..5a954f1232 --- /dev/null +++ b/public/language/zh-TW/admin/advanced/cache.json @@ -0,0 +1,11 @@ +{ + "post-cache": "Post Cache", + "posts-in-cache": "Posts in Cache", + "average-post-size": "Average Post Size", + "length-to-max": "Length / Max", + "percent-full": "%1% Full", + "post-cache-size": "Post Cache Size", + "items-in-cache": "Items in Cache", + "control-panel": "Control Panel", + "update-settings": "Update Cache Settings" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/advanced/database.json b/public/language/zh-TW/admin/advanced/database.json new file mode 100644 index 0000000000..f7db6220ee --- /dev/null +++ b/public/language/zh-TW/admin/advanced/database.json @@ -0,0 +1,35 @@ +{ + "x-b": "%1 b", + "x-mb": "%1 mb", + "uptime-seconds": "Uptime in Seconds", + "uptime-days": "Uptime in Days", + + "mongo": "Mongo", + "mongo.version": "MongoDB Version", + "mongo.storage-engine": "Storage Engine", + "mongo.collections": "Collections", + "mongo.objects": "Objects", + "mongo.avg-object-size": "Avg. Object Size", + "mongo.data-size": "Data Size", + "mongo.storage-size": "Storage Size", + "mongo.index-size": "Index Size", + "mongo.file-size": "File Size", + "mongo.resident-memory": "Resident Memory", + "mongo.virtual-memory": "Virtual Memory", + "mongo.mapped-memory": "Mapped Memory", + "mongo.raw-info": "MongoDB Raw Info", + + "redis": "Redis", + "redis.version": "Redis Version", + "redis.connected-clients": "Connected Clients", + "redis.connected-slaves": "Connected Slaves", + "redis.blocked-clients": "Blocked Clients", + "redis.used-memory": "Used Memory", + "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.total-connections-recieved": "Total Connections Received", + "redis.total-commands-processed": "Total Commands Processed", + "redis.iops": "Instantaneous Ops. Per Second", + "redis.keyspace-hits": "Keyspace Hits", + "redis.keyspace-misses": "Keyspace Misses", + "redis.raw-info": "Redis Raw Info" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/advanced/errors.json b/public/language/zh-TW/admin/advanced/errors.json new file mode 100644 index 0000000000..963e68b116 --- /dev/null +++ b/public/language/zh-TW/admin/advanced/errors.json @@ -0,0 +1,14 @@ +{ + "figure-x": "Figure %1", + "error-events-per-day": "%1 events per day", + "error.404": "404 Not Found", + "error.503": "503 Service Unavailable", + "manage-error-log": "Manage Error Log", + "export-error-log": "Export Error Log (CSV)", + "clear-error-log": "Clear Error Log", + "route": "Route", + "count": "Count", + "no-routes-not-found": "Hooray! There are no routes that were not found.", + "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", + "clear404-success": "\"404 Not Found\" errors cleared" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/advanced/events.json b/public/language/zh-TW/admin/advanced/events.json new file mode 100644 index 0000000000..766eb5e951 --- /dev/null +++ b/public/language/zh-TW/admin/advanced/events.json @@ -0,0 +1,6 @@ +{ + "events": "Events", + "no-events": "There are no events", + "control-panel": "Events Control Panel", + "delete-events": "Delete Events" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/advanced/logs.json b/public/language/zh-TW/admin/advanced/logs.json new file mode 100644 index 0000000000..b9de400e1c --- /dev/null +++ b/public/language/zh-TW/admin/advanced/logs.json @@ -0,0 +1,7 @@ +{ + "logs": "Logs", + "control-panel": "Logs Control Panel", + "reload": "Reload Logs", + "clear": "Clear Logs", + "clear-success": "Logs Cleared!" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/appearance/customise.json b/public/language/zh-TW/admin/appearance/customise.json new file mode 100644 index 0000000000..767d443e29 --- /dev/null +++ b/public/language/zh-TW/admin/appearance/customise.json @@ -0,0 +1,9 @@ +{ + "custom-css": "Custom CSS", + "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", + "custom-css.enable": "Enable Custom CSS", + + "custom-header": "Custom Header", + "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", + "custom-header.enable": "Enable Custom Header" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/appearance/skins.json b/public/language/zh-TW/admin/appearance/skins.json new file mode 100644 index 0000000000..4db6fbdd8a --- /dev/null +++ b/public/language/zh-TW/admin/appearance/skins.json @@ -0,0 +1,9 @@ +{ + "loading": "Loading Skins...", + "homepage": "Homepage", + "select-skin": "Select Skin", + "current-skin": "Current Skin", + "skin-updated": "Skin Updated", + "applied-success": "%1 skin was succesfully applied", + "revert-success": "Skin reverted to base colours" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/appearance/themes.json b/public/language/zh-TW/admin/appearance/themes.json new file mode 100644 index 0000000000..3148a01337 --- /dev/null +++ b/public/language/zh-TW/admin/appearance/themes.json @@ -0,0 +1,11 @@ +{ + "checking-for-installed": "Checking for installed themes...", + "homepage": "Homepage", + "select-theme": "Select Theme", + "current-theme": "Current Theme", + "no-themes": "No installed themes found", + "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", + "theme-changed": "Theme Changed", + "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", + "restart-to-activate": "Please restart your NodeBB to fully activate this theme" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/development/info.json b/public/language/zh-TW/admin/development/info.json new file mode 100644 index 0000000000..b2768ca212 --- /dev/null +++ b/public/language/zh-TW/admin/development/info.json @@ -0,0 +1,16 @@ +{ + "you-are-on": "Info - You are on %1:%2", + "host": "host", + "pid": "pid", + "nodejs": "nodejs", + "online": "online", + "git": "git", + "load": "load", + "uptime": "uptime", + + "registered": "Registered", + "sockets": "Sockets", + "guests": "Guests", + + "info": "Info" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/development/logger.json b/public/language/zh-TW/admin/development/logger.json new file mode 100644 index 0000000000..6ab9558149 --- /dev/null +++ b/public/language/zh-TW/admin/development/logger.json @@ -0,0 +1,12 @@ +{ + "logger-settings": "Logger Settings", + "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", + "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", + "enable-http": "Enable HTTP logging", + "enable-socket": "Enable socket.io event logging", + "file-path": "Path to log file", + "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + + "control-panel": "Logger Control Panel", + "update-settings": "Update Logger Settings" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/extend/plugins.json b/public/language/zh-TW/admin/extend/plugins.json new file mode 100644 index 0000000000..8f382a290d --- /dev/null +++ b/public/language/zh-TW/admin/extend/plugins.json @@ -0,0 +1,46 @@ +{ + "installed": "Installed", + "active": "Active", + "inactive": "Inactive", + "out-of-date": "Out of Date", + "none-found": "No plugins found.", + "none-active": "No Active Plugins", + "find-plugins": "Find Plugins", + + "plugin-search": "Plugin Search", + "plugin-search-placeholder": "Search for plugin...", + "reorder-plugins": "Re-order Plugins", + "order-active": "Order Active Plugins", + "dev-interested": "Interested in writing plugins for NodeBB?", + "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + + "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", + "order.explanation": "Plugins load in the order specified here, from top to bottom", + + "plugin-item.themes": "Themes", + "plugin-item.deactivate": "Deactivate", + "plugin-item.activate": "Activate", + "plugin-item.uninstall": "Uninstall", + "plugin-item.settings": "Settings", + "plugin-item.installed": "Installed", + "plugin-item.latest": "Latest", + "plugin-item.upgrade": "Upgrade", + "plugin-item.more-info": "For more information:", + "plugin-item.unknown": "Unknown", + "plugin-item.unknown-explanation": "The state of this plugin could not be determined, possibly due to a misconfiguration error.", + + "alert.enabled": "Plugin Enabled", + "alert.disabled": "Plugin Disabled", + "alert.upgraded": "Plugin Upgraded", + "alert.installed": "Plugin Installed", + "alert.uninstalled": "Plugin Uninstalled", + "alert.activate-success": "Please restart your NodeBB to fully activate this plugin", + "alert.deactivate-success": "Plugin successfully deactivated", + "alert.upgrade-success": "Please reload your NodeBB to fully upgrade this plugin", + "alert.install-success": "Plugin successfully installed, please activate the plugin.", + "alert.uninstall-success": "The plugin has been successfully deactivated and uninstalled.", + "alert.suggest-error": "

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (%1): %2
", + "alert.package-manager-unreachable": "

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

", + "alert.incompatible": "

Your version of NodeBB (v%1) is only cleared to upgrade to v%2 of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.

", + "alert.possibly-incompatible": "

No Compatibility Information Found

This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

In the event that NodeBB cannot boot properly:

$ ./nodebb reset plugin=\"%1\"

Continue installation of latest version of this plugin?

" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/extend/rewards.json b/public/language/zh-TW/admin/extend/rewards.json new file mode 100644 index 0000000000..5383a90b33 --- /dev/null +++ b/public/language/zh-TW/admin/extend/rewards.json @@ -0,0 +1,17 @@ +{ + "rewards": "Rewards", + "condition-if-users": "If User's", + "condition-is": "Is:", + "condition-then": "Then:", + "max-claims": "Amount of times reward is claimable", + "zero-infinite": "Enter 0 for infinite", + "delete": "Delete", + "enable": "Enable", + "disable": "Disable", + "control-panel": "Rewards Control", + "new-reward": "New Reward", + + "alert.delete-success": "Successfully deleted reward", + "alert.no-inputs-found": "Illegal reward - no inputs found!", + "alert.save-success": "Successfully saved rewards" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/extend/widgets.json b/public/language/zh-TW/admin/extend/widgets.json new file mode 100644 index 0000000000..477bb15e56 --- /dev/null +++ b/public/language/zh-TW/admin/extend/widgets.json @@ -0,0 +1,19 @@ +{ + "available": "Available Widgets", + "explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.", + "none-installed": "No widgets found! Activate the essential widgets plugin in the plugins control panel.", + "containers.available": "Available Containers", + "containers.explanation": "Drag and drop on top of any active widget", + "containers.none": "None", + "container.well": "Well", + "container.jumbotron": "Jumbotron", + "container.panel": "Panel", + "container.panel-header": "Panel Header", + "container.panel-body": "Panel Body", + "container.alert": "Alert", + + "alert.confirm-delete": "Are you sure you wish to delete this widget?", + "alert.updated": "Widgets Updated", + "alert.update-success": "Successfully updated widgets" + +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/dashboard.json b/public/language/zh-TW/admin/general/dashboard.json new file mode 100644 index 0000000000..b82802db1b --- /dev/null +++ b/public/language/zh-TW/admin/general/dashboard.json @@ -0,0 +1,55 @@ +{ + "forum-traffic": "Forum Traffic", + "page-views": "Page Views", + "unique-visitors": "Unique Visitors", + "page-views-last-month": "Page views Last Month", + "page-views-this-month": "Page views This Month", + "page-views-last-day": "Page views in last 24 hours", + + "stats.day": "Day", + "stats.week": "Week", + "stats.month": "Month", + "stats.all": "All Time", + + "updates": "Updates", + "running-version": "You are running NodeBB v%1.", + "keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.", + "up-to-date": "

You are up-to-date

", + "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-warning": "

This is a pre-release version of NodeBB. Unintended bugs may occur.

", + + "notices": "Notices", + + "control-panel": "System Control", + "reload": "Reload", + "restart": "Restart", + "restart-warning": "Reloading or Restarting your NodeBB will drop all existing connections for a few seconds.", + "maintenance-mode": "Maintenance Mode", + "maintenance-mode-title": "Click here to set up maintenance mode for NodeBB", + "realtime-chart-updates": "Realtime Chart Updates", + + "active-users": "Active Users", + "active-users.users": "Users", + "active-users.guests": "Guests", + "active-users.total": "Total", + "active-users.connections": "Connections", + + "anonymous-registered-users": "Anonymous vs Registered Users", + "anonymous": "Anonymous", + "registered": "Registered", + + "user-presence": "User Presence", + "on-categories": "On categories list", + "reading-posts": "Reading posts", + "browsing-topics": "Browsing topics", + "recent": "Recent", + "unread": "Unread", + + "high-presence-topics": "High Presence Topics", + + "graphs.page-views": "Page Views", + "graphs.unique-visitors": "Unique Visitors", + "graphs.registered-users": "Registered Users", + "graphs.anonymous-users": "Anonymous Users" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/homepage.json b/public/language/zh-TW/admin/general/homepage.json new file mode 100644 index 0000000000..4866b8baf6 --- /dev/null +++ b/public/language/zh-TW/admin/general/homepage.json @@ -0,0 +1,7 @@ +{ + "home-page": "Home Page", + "description": "Choose what page is shown when users navigate to the root URL of your forum.", + "home-page-route": "Home Page Route", + "custom-route": "Custom Route", + "allow-user-home-pages": "Allow User Home Pages" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/languages.json b/public/language/zh-TW/admin/general/languages.json new file mode 100644 index 0000000000..da45cade2c --- /dev/null +++ b/public/language/zh-TW/admin/general/languages.json @@ -0,0 +1,5 @@ +{ + "language-settings": "Language Settings", + "description": "The default language determines the language settings for all users who are visiting your forum.
Individual users can override the default language on their account settings page.", + "default-language": "Default Language" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/navigation.json b/public/language/zh-TW/admin/general/navigation.json new file mode 100644 index 0000000000..c4ba0d09ac --- /dev/null +++ b/public/language/zh-TW/admin/general/navigation.json @@ -0,0 +1,27 @@ +{ + "icon": "Icon:", + "change-icon": "change", + "route": "Route:", + "tooltip": "Tooltip:", + "text": "Text:", + "text-class": "Text Class: optional", + "id": "ID: optional", + + "properties": "Properties:", + "only-admins": "Only display to Admins", + "only-global-mods-and-admins": "Only display to Global Moderators and Admins", + "only-logged-in": "Only display to logged in users", + "open-new-window": "Open in a new window", + + "installed-plugins-required": "Installed Plugins Required:", + "search-plugin": "Search plugin", + + "btn.delete": "Delete", + "btn.disable": "Disable", + "btn.enable": "Enable", + + "available-menu-items": "Available Menu Items", + "custom-route": "Custom Route", + "core": "core", + "plugin": "plugin" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/social.json b/public/language/zh-TW/admin/general/social.json new file mode 100644 index 0000000000..23aedfcfaa --- /dev/null +++ b/public/language/zh-TW/admin/general/social.json @@ -0,0 +1,5 @@ +{ + "post-sharing": "Post Sharing", + "info-plugins-additional": "Plugins can add additional networks for sharing posts.", + "save-success": "Successfully saved Post Sharing Networks!" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/general/sounds.json b/public/language/zh-TW/admin/general/sounds.json new file mode 100644 index 0000000000..95ccbde0f1 --- /dev/null +++ b/public/language/zh-TW/admin/general/sounds.json @@ -0,0 +1,9 @@ +{ + "notifications": "Notifications", + "chat-messages": "Chat Messages", + "play-sound": "Play", + "incoming-message": "Incoming Message", + "outgoing-message": "Outgoing Message", + "upload-new-sound": "Upload New Sound", + "saved": "Settings Saved" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/categories.json b/public/language/zh-TW/admin/manage/categories.json new file mode 100644 index 0000000000..8bd5d5bfcf --- /dev/null +++ b/public/language/zh-TW/admin/manage/categories.json @@ -0,0 +1,68 @@ +{ + "settings": "Category Settings", + "privileges": "Privileges", + + "name": "Category Name", + "description": "Category Description", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "bg-image-size": "Background Image Size", + "custom-class": "Custom Class", + "num-recent-replies": "# of Recent Replies", + "ext-link": "External Link", + "upload-image": "Upload Image", + "delete-image": "Remove", + "category-image": "Category Image", + "parent-category": "Parent Category", + "optional-parent-category": "(Optional) Parent Category", + "parent-category-none": "(None)", + "copy-settings": "Copy Settings From", + "optional-clone-settings": "(Optional) Clone Settings From Category", + "purge": "Purge Category", + + "enable": "Enable", + "disable": "Disable", + "edit": "Edit", + + "select-category": "Select Category", + "set-parent-category": "Set Parent Category", + + "privileges.description": "You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or a per-group basis. You can add a new user to this table by searching for them in the form below.", + "privileges.warning": "Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting these settings.", + "privileges.section-viewing": "Viewing Privileges", + "privileges.section-posting": "Posting Privileges", + "privileges.section-moderation": "Moderation Privileges", + "privileges.section-user": "User", + "privileges.search-user": "Add User", + "privileges.no-users": "No user-specific privileges in this category.", + "privileges.section-group": "Group", + "privileges.group-private": "This group is private", + "privileges.search-group": "Add Group", + "privileges.copy-to-children": "Copy to Children", + "privileges.copy-from-category": "Copy from Category", + "privileges.inherit": "If the registered-users group is granted a specific privilege, all other groups receive an implicit privilege, even if they are not explicitly defined/checked. This implicit privilege is shown to you because all users are part of the registered-users user group, and so, privileges for additional groups need not be explicitly granted.", + + "analytics.back": "Back to Categories List", + "analytics.title": "Analytics for \"%1\" category", + "analytics.pageviews-hourly": "Figure 1 – Hourly page views for this category", + "analytics.pageviews-daily": "Figure 2 – Daily page views for this category", + "analytics.topics-daily": "Figure 3 – Daily topics created in this category", + "analytics.posts-daily": "Figure 4 – Daily posts made in this category", + + "alert.created": "Created", + "alert.create-success": "Category successfully created!", + "alert.none-active": "You have no active categories.", + "alert.create": "Create a Category", + "alert.confirm-moderate": "Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.", + "alert.confirm-purge": "

Do you really want to purge this category \"%1\"?

Warning! All topics and posts in this category will be purged!

Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you'll want to \"disable\" the category instead.

", + "alert.purge-success": "Category purged!", + "alert.copy-success": "Settings Copied!", + "alert.set-parent-category": "Set Parent Category", + "alert.updated": "Updated Categories", + "alert.updated-success": "Category IDs %1 was successfully updated.", + "alert.upload-image": "Upload category image", + "alert.find-user": "Find a User", + "alert.user-search": "Search for a user here...", + "alert.find-group": "Find a Group", + "alert.group-search": "Search for a group here..." +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/flags.json b/public/language/zh-TW/admin/manage/flags.json new file mode 100644 index 0000000000..bfc488a409 --- /dev/null +++ b/public/language/zh-TW/admin/manage/flags.json @@ -0,0 +1,19 @@ +{ + "daily": "Daily flags", + "by-user": "Flags by user", + "by-user-search": "Search flagged posts by username", + "category": "Category", + "sort-by": "Sort By", + "sort-by.most-flags": "Most Flags", + "sort-by.most-recent": "Most Recent", + "search": "Search", + "dismiss-all": "Dismiss All", + "none-flagged": "No flagged posts!", + "posted-in": "Posted in %1", + "read-more": "Read More", + "flagged-x-times": "This post has been flagged %1 time(s):", + "dismiss": "Dismiss this Flag", + "delete-post": "Delete the Post", + + "alerts.confirm-delete-post": "Do you really want to delete this post?" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/groups.json b/public/language/zh-TW/admin/manage/groups.json new file mode 100644 index 0000000000..b5e526aacf --- /dev/null +++ b/public/language/zh-TW/admin/manage/groups.json @@ -0,0 +1,34 @@ +{ + "name": "Group Name", + "description": "Group Description", + "system": "System Group", + "edit": "Edit", + "search-placeholder": "Search", + "create": "Create Group", + "description-placeholder": "A short description about your group", + "create-button": "Create", + + "alerts.create-failure": "Uh-Oh

There was a problem creating your group. Please try again later!

", + "alerts.confirm-delete": "Are you sure you wish to delete this group?", + + "edit.name": "Name", + "edit.description": "Description", + "edit.user-title": "Title of Members", + "edit.icon": "Group Icon", + "edit.label-color": "Group Label Color", + "edit.show-badge": "Show Badge", + "edit.private-details": "If enabled, joining of groups requires approval from a group owner.", + "edit.private-override": "Warning: Private groups is disabled at system level, which overrides this option.", + "edit.disable-requests": "Disable join requests", + "edit.hidden": "Hidden", + "edit.hidden-details": "If enabled, this group will not be found in the groups listing, and users will have to be invited manually", + "edit.add-user": "Add User to Group", + "edit.add-user-search": "Search Users", + "edit.members": "Member List", + "control-panel": "Groups Control Panel", + "revert": "Revert", + + "edit.no-users-found": "No Users Found", + "edit.confirm-remove-user": "Are you sure you want to remove this user?", + "edit.save-success": "Changes saved!" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/ip-blacklist.json b/public/language/zh-TW/admin/manage/ip-blacklist.json new file mode 100644 index 0000000000..5106434351 --- /dev/null +++ b/public/language/zh-TW/admin/manage/ip-blacklist.json @@ -0,0 +1,15 @@ +{ + "lead": "Configure your IP blacklist here.", + "description": "Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and they will be prevented from logging in to or registering a new account.", + "active-rules": "Active Rules", + "validate": "Validate Blacklist", + "apply": "Apply Blacklist", + "hints": "Syntax Hints", + "hint-1": "Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. 192.168.100.0/22).", + "hint-2": "You can add in comments by starting lines with the # symbol.", + + "validate.x-valid": "%1 out of %2 rule(s) valid.", + "validate.x-invalid": "The following %1 rules are invalid:", + + "alerts.applied-success": "Blacklist Applied" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/registration.json b/public/language/zh-TW/admin/manage/registration.json new file mode 100644 index 0000000000..f51b4d56e6 --- /dev/null +++ b/public/language/zh-TW/admin/manage/registration.json @@ -0,0 +1,20 @@ +{ + "queue": "Queue", + "description": "There are no users in the registration queue.
To enable this feature, go to Settings → User → User Registration and set Registration Type to \"Admin Approval\".", + + "list.name": "Name", + "list.email": "Email", + "list.ip": "IP", + "list.time": "Time", + "list.username-spam": "Frequency: %1 Appears: %2 Confidence: %3", + "list.email-spam": "Frequency: %1 Appears: %2", + "list.ip-spam": "Frequency: %1 Appears: %2", + + "invitations": "Invitations", + "invitations.description": "Below is a complete list of invitations sent. Use ctrl-f to search through the list by email or username.

The username will be displayed to the right of the emails for users who have redeemed their invitations.", + "invitations.inviter-username": "Inviter Username", + "invitations.invitee-email": "Invitee Email", + "invitations.invitee-username": "Invitee Username (if registered)", + + "invitations.confirm-delete": "Are you sure you wish to delete this invitation?" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/tags.json b/public/language/zh-TW/admin/manage/tags.json new file mode 100644 index 0000000000..db40e9f098 --- /dev/null +++ b/public/language/zh-TW/admin/manage/tags.json @@ -0,0 +1,18 @@ +{ + "none": "Your forum does not have any topics with tags yet.", + "bg-color": "Background Colour", + "text-color": "Text Colour", + "create-modify": "Create & Modify Tags", + "description": "Select tags via clicking and/or dragging, use shift to select multiple.", + "create": "Create Tag", + "modify": "Modify Tags", + "delete": "Delete Selected Tags", + "search": "Search for tags...", + "settings": "Click here to visit the tag settings page.", + "name": "Tag Name", + + "alerts.editing-multiple": "Editing multiple tags", + "alerts.editing-x": "Editing \"%1\" tag", + "alerts.confirm-delete": "Do you want to delete the selected tags?", + "alerts.update-success": "Tag Updated!" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/manage/users.json b/public/language/zh-TW/admin/manage/users.json new file mode 100644 index 0000000000..f1651a814b --- /dev/null +++ b/public/language/zh-TW/admin/manage/users.json @@ -0,0 +1,91 @@ +{ + "users": "Users", + "edit": "Edit", + "make-admin": "Make Admin", + "remove-admin": "Remove Admin", + "validate-email": "Validate Email", + "send-validation-email": "Send Validation Email", + "password-reset-email": "Send Password Reset Email", + "ban": "Ban User(s)", + "temp-ban": "Ban User(s) Temporarily", + "unban": "Unban User(s)", + "reset-lockout": "Reset Lockout", + "reset-flags": "Reset Flags", + "delete": "Delete User(s)", + "purge": "Delete User(s) and Content", + "download-csv": "Download CSV", + "invite": "Invite", + "new": "New User", + + "pills.latest": "Latest Users", + "pills.unvalidated": "Not Validated", + "pills.no-posts": "No Posts", + "pills.top-posters": "Top Posters", + "pills.top-rep": "Most Reputation", + "pills.inactive": "Inactive", + "pills.flagged": "Most Flagged", + "pills.banned": "Banned", + "pills.search": "User Search", + + "search.username": "By User Name", + "search.username-placeholder": "Enter a username to search", + "search.email": "By Email", + "search.email-placeholder": "Enter a email to search", + "search.ip": "By IP Address", + "search.ip-placeholder": "Enter an IP Address to search", + "search.not-found": "User not found!", + + "inactive.3-months": "3 months", + "inactive.6-months": "6 months", + "inactive.12-months": "12 months", + + "users.uid": "uid", + "users.username": "username", + "users.email": "email", + "users.postcount": "postcount", + "users.reputation": "reputation", + "users.flags": "flags", + "users.joined": "joined", + "users.last-online": "last online", + "users.banned": "banned", + + "create.username": "User Name", + "create.email": "Email", + "create.email-placeholder": "Email of this user", + "create.password": "Password", + "create.password-confirm": "Confirm Password", + + "temp-ban.length": "Ban Length", + "temp-ban.reason": "Reason (Optional)", + "temp-ban.hours": "Hours", + "temp-ban.days": "Days", + "temp-ban.explanation": "Enter the length of time for the ban. Note that a time of 0 will be a considered a permanent ban.", + + "alerts.confirm-ban": "Do you really want to ban this user permanently?", + "alerts.confirm-ban-multi": "Do you really want to ban these users permanently?", + "alerts.ban-success": "User(s) banned!", + "alerts.button-ban-x": "Ban %1 user(s)", + "alerts.unban-success": "User(s) unbanned!", + "alerts.lockout-reset-success": "Lockout(s) reset!", + "alerts.flag-reset-success": "Flags(s) reset!", + "alerts.no-remove-yourself-admin": "You can't remove yourself as Administrator!", + "alerts.make-admin-success": "User(s) are now administrators.", + "alerts.confirm-remove-admin": "Do you really want to remove admins?", + "alerts.remove-admin-success": "User(s) are no longer administrators.", + "alerts.confirm-validate-email": "Do you want to validate email(s) of these user(s)?", + "alerts.validate-email-success": "Emails validated", + "alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?", + "alerts.confirm-delete": "Warning!
Do you really want to delete user(s)?
This action is not reversable! Only the user account will be deleted, their posts and topics will remain.", + "alerts.delete-success": "User(s) Deleted!", + "alerts.confirm-purge": "Warning!
Do you really want to delete user(s) and their content?
This action is not reversable! All user data and content will be erased!", + "alerts.create": "Create User", + "alerts.button-create": "Create", + "alerts.button-cancel": "Cancel", + "alerts.error-passwords-different": "Passwords must match!", + "alerts.error-x": "Error

%1

", + "alerts.create-success": "User created!", + + "alerts.prompt-email": "Email: ", + "alerts.email-sent-to": "An invitation email has been sent to %1", + "alerts.x-users-found": "%1 user(s) found! Search took %2 ms." +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/menu.json b/public/language/zh-TW/admin/menu.json new file mode 100644 index 0000000000..7a5327f643 --- /dev/null +++ b/public/language/zh-TW/admin/menu.json @@ -0,0 +1,75 @@ +{ + "section-general": "General", + "general/dashboard": "Dashboard", + "general/homepage": "Home Page", + "general/navigation": "Navigation", + "general/languages": "Languages", + "general/sounds": "Sounds", + "general/social": "Social", + + "section-manage": "Manage", + "manage/categories": "Categories", + "manage/tags": "Tags", + "manage/users": "Users", + "manage/registration": "Registration Queue", + "manage/groups": "Groups", + "manage/flags": "Flags", + "manage/ip-blacklist": "IP Blacklist", + + "section-settings": "Settings", + "settings/general": "General", + "settings/reputation": "Reputation", + "settings/email": "Email", + "settings/user": "User", + "settings/group": "Group", + "settings/guest": "Guests", + "settings/uploads": "Uploads", + "settings/post": "Post", + "settings/chat": "Chat", + "settings/pagination": "Pagination", + "settings/tags": "Tags", + "settings/notifications": "Notifications", + "settings/cookies": "Cookies", + "settings/web-crawler": "Web Crawler", + "settings/sockets": "Sockets", + "settings/advanced": "Advanced", + + "settings.page-title": "%1 Settings", + + "section-appearance": "Appearance", + "appearance/themes": "Themes", + "appearance/skins": "Skins", + "appearance/customise": "Custom HTML & CSS", + + "section-extend": "Extend", + "extend/plugins": "Plugins", + "extend/widgets": "Widgets", + "extend/rewards": "Rewards", + + "section-social-auth": "Social Authentication", + + "section-plugins": "Plugins", + "extend/plugins.install": "Install Plugins", + + "section-advanced": "Advanced", + "advanced/database": "Database", + "advanced/events": "Events", + "advanced/logs": "Logs", + "advanced/errors": "Errors", + "advanced/cache": "Cache", + "development/logger": "Logger", + "development/info": "Info", + + "reload-forum": "Reload Forum", + "restart-forum": "Restart Forum", + "logout": "Log out", + "view-forum": "View Forum", + + "search.placeholder": "Search...", + "search.no-results": "No results...", + "search.search-forum": "Search the forum for ", + "search.keep-typing": "Type more to see results...", + "search.start-typing": "Start typing to see results...", + + "connection-lost": "Connection to %1 has been lost, attempting to reconnect..." +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/advanced.json b/public/language/zh-TW/admin/settings/advanced.json new file mode 100644 index 0000000000..b023528d04 --- /dev/null +++ b/public/language/zh-TW/admin/settings/advanced.json @@ -0,0 +1,19 @@ +{ + "maintenance-mode": "Maintenance Mode", + "maintenance-mode.help": "When the forum is in maintenance mode, all requests will be redirected to a static holding page. Administrators are exempt from this redirection, and are able to access the site normally.", + "maintenance-mode.message": "Maintenance Message", + "headers": "Headers", + "headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame", + "headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB", + "headers.acao": "Access-Control-Allow-Origin", + "headers.acao-help": "To deny access to all sites, leave empty or set to null", + "headers.acam": "Access-Control-Allow-Methods", + "headers.acah": "Access-Control-Allow-Headers", + "traffic-management": "Traffic Management", + "traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.", + "traffic.enable": "Enable Traffic Management", + "traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)", + "traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)", + "traffic.lag-check-interval": "Check Interval (in milliseconds)", + "traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/chat.json b/public/language/zh-TW/admin/settings/chat.json new file mode 100644 index 0000000000..0b22127341 --- /dev/null +++ b/public/language/zh-TW/admin/settings/chat.json @@ -0,0 +1,9 @@ +{ + "chat-settings": "Chat Settings", + "disable": "Disable chat", + "disable-editing": "Disable chat message editing/deletion", + "disable-editing-help": "Administrators and global moderators are exempt from this restriction", + "max-length": "Maximum length of chat messages", + "max-room-size": "Maximum number of users in chat rooms", + "delay": "Time between chat messages in milliseconds" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/cookies.json b/public/language/zh-TW/admin/settings/cookies.json new file mode 100644 index 0000000000..f8b0f0538b --- /dev/null +++ b/public/language/zh-TW/admin/settings/cookies.json @@ -0,0 +1,11 @@ +{ + "eu-consent": "EU Consent", + "consent.enabled": "Enabled", + "consent.message": "Notification message", + "consent.acceptance": "Acceptance message", + "consent.link-text": "Policy Link Text", + "consent.blank-localised-default": "Leave blank to use NodeBB localised defaults", + "settings": "Settings", + "cookie-domain": "Session cookie domain", + "blank-default": "Leave blank for default" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/email.json b/public/language/zh-TW/admin/settings/email.json new file mode 100644 index 0000000000..1e92c88490 --- /dev/null +++ b/public/language/zh-TW/admin/settings/email.json @@ -0,0 +1,25 @@ +{ + "email-settings": "Email Settings", + "address": "Email Address", + "address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.", + "from": "From Name", + "from-help": "The from name to display in the email.", + "gmail-routing": "Gmail Routing", + "gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to configure your GMail account to allow less secure apps.", + "gmail-routing-help2": "For more information about this workaround, please consult this NodeMailer article on the issue. An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. Browse available plugins here.", + "gmail-transport": "Route emails through a Gmail/Google Apps account", + "gmail-transport.username": "Username", + "gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.", + "gmail-transport.password": "Password", + "template": "Edit Email Template", + "template.select": "Select Email Template", + "template.revert": "Revert to Original", + "testing": "Email Testing", + "testing.select": "Select Email Template", + "testing.send": "Send Test Email", + "testing.send-help": "The test email will be sent to the currently logged in user's email address.", + "subscriptions": "Email Subscriptions", + "subscriptions.disable": "Disable subscriber notification emails", + "subscriptions.hour": "Digest Hour", + "subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. 0 for midnight, 17 for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.
The approximate server time is:
The next daily digest is scheduled to be sent " +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/general.json b/public/language/zh-TW/admin/settings/general.json new file mode 100644 index 0000000000..c26740ee4f --- /dev/null +++ b/public/language/zh-TW/admin/settings/general.json @@ -0,0 +1,30 @@ +{ + "site-settings": "Site Settings", + "title": "Site Title", + "title.name": "Your Community Name", + "title.show-in-header": "Show Site Title in Header", + "browser-title": "Browser Title", + "browser-title-help": "If no browser title is specified, the site title will be used", + "title-layout": "Title Layout", + "title-layout-help": "Define how the browser title will be structured ie. {pageTitle} | {browserTitle}", + "description.placeholder": "A short description about your community", + "description": "Site Description", + "keywords": "Site Keywords", + "keywords-placeholder": "Keywords describing your community, comma-separated", + "logo": "Site Logo", + "logo.image": "Image", + "logo.image-placeholder": "Path to a logo to display on forum header", + "logo.upload": "Upload", + "logo.url": "URL", + "logo.url-placeholder": "The URL of the site logo", + "logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.", + "logo.alt-text": "Alt Text", + "log.alt-text-placeholder": "Alternative text for accessibility", + "favicon": "Favicon", + "favicon.upload": "Upload", + "touch-icon": "Homescreen/Touch Icon", + "touch-icon.upload": "Upload", + "touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.", + "outgoing-links": "Outgoing Links", + "outgoing-links.warning-page": "Use Outgoing Links Warning Page" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/group.json b/public/language/zh-TW/admin/settings/group.json new file mode 100644 index 0000000000..1ae88c9cf5 --- /dev/null +++ b/public/language/zh-TW/admin/settings/group.json @@ -0,0 +1,12 @@ +{ + "general": "General", + "private-groups": "Private Groups", + "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", + "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", + "allow-creation": "Allow Group Creation", + "allow-creation-help": "If enabled, users can create groups (Default: disabled)", + "max-name-length": "Maximum Group Name Length", + "cover-image": "Group Cover Image", + "default-cover": "Default Cover Images", + "default-cover-help": "Add comma-separated default cover images for groups that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/guest.json b/public/language/zh-TW/admin/settings/guest.json new file mode 100644 index 0000000000..6b2ac2c8b2 --- /dev/null +++ b/public/language/zh-TW/admin/settings/guest.json @@ -0,0 +1,8 @@ +{ + "handles": "Guest Handles", + "handles.enabled": "Allow guest handles", + "handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"", + "privileges": "Guest Privileges", + "privileges.can-search": "Allow guests to search without logging in", + "privileges.can-search-users": "Allow guests to search users without logging in" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/notifications.json b/public/language/zh-TW/admin/settings/notifications.json new file mode 100644 index 0000000000..4eff7f341a --- /dev/null +++ b/public/language/zh-TW/admin/settings/notifications.json @@ -0,0 +1,5 @@ +{ + "notifications": "Notifications", + "welcome-notification": "Welcome Notification", + "welcome-notification-link": "Welcome Notification Link" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/pagination.json b/public/language/zh-TW/admin/settings/pagination.json new file mode 100644 index 0000000000..27d71b4de5 --- /dev/null +++ b/public/language/zh-TW/admin/settings/pagination.json @@ -0,0 +1,9 @@ +{ + "pagination": "Pagination Settings", + "enable": "Paginate topics and posts instead of using infinite scroll.", + "topics": "Topic Pagination", + "posts-per-page": "Posts per Page", + "categories": "Category Pagination", + "topics-per-page": "Topics per Page", + "initial-num-load": "Initial Number of Topics to Load on Unread, Recent, and Popular" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/post.json b/public/language/zh-TW/admin/settings/post.json new file mode 100644 index 0000000000..f8aae19628 --- /dev/null +++ b/public/language/zh-TW/admin/settings/post.json @@ -0,0 +1,44 @@ +{ + "sorting": "Post Sorting", + "sorting.post-default": "Default Post Sorting", + "sorting.oldest-to-newest": "Oldest to Newest", + "sorting.newest-to-oldest": ">Newest to Oldest", + "sorting.most-votes": "Most Votes", + "sorting.topic-default": "Default Topic Sorting", + "restrictions": "Posting Restrictions", + "restrictions.seconds-between": "Seconds between Posts", + "restrictions.seconds-between-new": "Seconds between Posts for New Users", + "restrictions.rep-threshold": "Reputation threshold before this restriction is lifted", + "restrictions.seconds-defore-new": "Seconds before new user can post", + "restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)", + "restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)", + "restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)", + "restrictions.min-title-length": "Minimum Title Length", + "restrictions.max-title-length": "Maximum Title Length", + "restrictions.min-post-length": "Minimum Post Length", + "restrictions.max-post-length": "Maximum Post Length", + "restrictions.days-until-stale": "Days until Topic is considered stale", + "restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.", + "timestamp": "Timestamp", + "timestamp.cut-off": "Date cut-off (in days)", + "timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).
(Default: 30, or one month). Set to 0 to always display dates, leave blank to always display relative times.", + "teaser": "Teaser Post", + "teaser.last-post": "Last – Show the latest post, including the original post, if no replies", + "teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies", + "teaser.first": "First", + "unread": "Unread Settings", + "unread.cutoff": "Unread cutoff days", + "unread.min-track-last": "Minimum posts in topic before tracking last read", + "signature": "Signature Settings", + "signature.disable": "Disable signatures", + "signature.no-links": "Disable links in signatures", + "signature.no-images": "Disable images in signatures", + "signature.max-length": "Maximum Signature Length", + "composer": "Composer Settings", + "composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.", + "composer.show-help": "Show \"Help\" tab", + "composer.enable-plugin-help": "Allow plugins to add content to the help tab", + "composer.custom-help": "Custom Help Text", + "ip-tracking": "IP Tracking", + "ip-tracking.each-post": "Track IP Address for each post" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/reputation.json b/public/language/zh-TW/admin/settings/reputation.json new file mode 100644 index 0000000000..11d6184721 --- /dev/null +++ b/public/language/zh-TW/admin/settings/reputation.json @@ -0,0 +1,8 @@ +{ + "reputation": "Reputation Settings", + "disable": "Disable Reputation System", + "disable-down-voting": "Disable Down Voting", + "thresholds": "Activity Thresholds", + "min-rep-downvote": "Minimum reputation to downvote posts", + "min-rep-flag": "Minimum reputation to flag posts" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/sockets.json b/public/language/zh-TW/admin/settings/sockets.json new file mode 100644 index 0000000000..d04ee42fcf --- /dev/null +++ b/public/language/zh-TW/admin/settings/sockets.json @@ -0,0 +1,6 @@ +{ + "reconnection": "Reconnection Settings", + "max-attempts": "Max Reconnection Attempts", + "default-placeholder": "Default: %1", + "delay": "Reconnection Delay" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/tags.json b/public/language/zh-TW/admin/settings/tags.json new file mode 100644 index 0000000000..6f31f60ba0 --- /dev/null +++ b/public/language/zh-TW/admin/settings/tags.json @@ -0,0 +1,12 @@ +{ + "tag": "Tag Settings", + "min-per-topic": "Minimum Tags per Topic", + "max-per-topic": "Maximum Tags per Topic", + "min-length": "Minimum Tag Length", + "max-length": "Maximum Tag Length", + "goto-manage": "Click here to visit the tag management page.", + "privacy": "Privacy", + "list-private": "Make the tags list private", + "related-topics": "Related Topics", + "max-related-topics": "Maximum related topics to display (if supported by theme)" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/uploads.json b/public/language/zh-TW/admin/settings/uploads.json new file mode 100644 index 0000000000..8a56c85663 --- /dev/null +++ b/public/language/zh-TW/admin/settings/uploads.json @@ -0,0 +1,28 @@ +{ + "posts": "Posts", + "allow-files": "Allow users to upload regular files", + "private": "Make uploaded files private", + "max-image-width": "Resize images down to specified width (in pixels)", + "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "max-file-size": "Maximum File Size (in KiB)", + "max-file-size-help": "(in kilobytes, default: 2048 KiB)", + "allow-topic-thumbnails": "Allow users to upload topic thumbnails", + "topic-thumb-size": "Topic Thumb Size", + "allowed-file-extensions": "Allowed File Extensions", + "allowed-file-extensions-help": "Enter comma-separated list of file extensions here (e.g. pdf,xls,doc).\n\t\t\t\t\tAn empty list means all extensions are allowed.", + "profile-avatars": "Profile Avatars", + "allow-profile-image-uploads": "Allow users to upload profile images", + "convert-profile-image-png": "Convert profile image uploads to PNG", + "default-avatar": "Custom Default Avatar", + "upload": "Upload", + "profile-image-dimension": "Profile Image Dimension", + "profile-image-dimension-help": "(in pixels, default: 128 pixels)", + "max-profile-image-size": "Maximum Profile Image File Size", + "max-profile-image-size-help": "(in kilobytes, default: 256 KiB)", + "max-cover-image-size": "Maximum Cover Image File Size", + "max-cover-image-size-help": "(in kilobytes, default: 2,048 KiB)", + "keep-all-user-images": "Keep old versions of avatars and profile covers on the server", + "profile-covers": "Profile Covers", + "default-covers": "Default Cover Images", + "default-covers-help": "Add comma-separated default cover images for accounts that don't have an uploaded cover image" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/user.json b/public/language/zh-TW/admin/settings/user.json new file mode 100644 index 0000000000..bdabb075e9 --- /dev/null +++ b/public/language/zh-TW/admin/settings/user.json @@ -0,0 +1,59 @@ +{ + "authentication": "Authentication", + "allow-local-login": "Allow local login", + "require-email-confirmation": "Require Email Confirmation", + "email-confirm-interval": "User may not resend a confirmation email until", + "email-confirm-email2": "minutes have elapsed", + "allow-login-with": "Allow login with", + "allow-login-with.username-email": "Username or Email", + "allow-login-with.username": "Username Only", + "allow-login-with.email": "Email Only", + "account-settings": "Account Settings", + "disable-username-changes": "Disable username changes", + "disable-email-changes": "Disable email changes", + "disable-password-changes": "Disable password changes", + "allow-account-deletion": "Allow account deletion", + "user-info-private": "Make user info private", + "themes": "Themes", + "disable-user-skins": "Prevent users from choosing a custom skin", + "account-protection": "Account Protection", + "login-attempts": "Login attempts per hour", + "login-attempts-help": "If login attempts to a user's account exceeds this threshold, that account will be locked for a pre-configured amount of time", + "lockout-duration": "Account Lockout Duration (minutes)", + "login-days": "Days to remember user login sessions", + "password-expiry-days": "Force password reset after a set number of days", + "registration": "User Registration", + "registration-type": "Registration Type", + "registration-type.normal": "Normal", + "registration-type.admin-approval": "Admin Approval", + "registration-type.admin-approval-ip": "Admin Approval for IPs", + "registration-type.invite-only": "Invite Only", + "registration-type.admin-invite-only": "Admin Invite Only", + "registration-type.disabled": "No registration", + "registration-type.help": "Normal - Users can register from the /register page.
\nAdmin Approval - User registrations are placed in an approval queue for administrators.
\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.
\nInvite Only - Users can invite others from the users page.
\nAdmin Invite Only - Only administrators can invite others from users and admin/manage/users pages.
\nNo registration - No user registration.
", + "registration.max-invites": "Maximum Invitations per User", + "max-invites": "Maximum Invitations per User", + "max-invites-help": "0 for no restriction. Admins get infinite invitations
Only applicable for \"Invite Only\"", + "min-username-length": "Minimum Username Length", + "max-username-length": "Maximum Username Length", + "min-password-length": "Minimum Password Length", + "max-about-me-length": "Maximum About Me Length", + "terms-of-use": "Forum Terms of Use (Leave blank to disable)", + "user-search": "User Search", + "user-search-results-per-page": "Number of results to display", + "default-user-settings": "Default User Settings", + "show-email": "Show email", + "show-fullname": "Show fullname", + "restrict-chat": "Only allow chat messages from users I follow", + "outgoing-new-tab": "Open outgoing links in new tab", + "topic-search": "Enable In-Topic Searching", + "digest-freq": "Subscribe to Digest", + "digest-freq.off": "Off", + "digest-freq.daily": "Daily", + "digest-freq.weekly": "Weekly", + "digest-freq.monthly": "Monthly", + "email-chat-notifs": "Send an email if a new chat message arrives and I am not online", + "email-post-notif": "Send an email when replies are made to topics I am subscribed to", + "follow-created-topics": "Follow topics you create", + "follow-replied-topics": "Follow topics that you reply to" +} \ No newline at end of file diff --git a/public/language/zh-TW/admin/settings/web-crawler.json b/public/language/zh-TW/admin/settings/web-crawler.json new file mode 100644 index 0000000000..2e0d31d12b --- /dev/null +++ b/public/language/zh-TW/admin/settings/web-crawler.json @@ -0,0 +1,10 @@ +{ + "crawlability-settings": "Crawlability Settings", + "robots-txt": "Custom Robots.txt Leave blank for default", + "sitemap-feed-settings": "Sitemap & Feed Settings", + "disable-rss-feeds": "Disable RSS Feeds", + "disable-sitemap-xml": "Disable Sitemap.xml", + "sitemap-topics": "Number of Topics to display in the Sitemap", + "clear-sitemap-cache": "Clear Sitemap Cache", + "view-sitemap": "View Sitemap" +} \ No newline at end of file diff --git a/public/less/admin/manage/categories.less b/public/less/admin/manage/categories.less index 0f13af4deb..c0c0a544dc 100644 --- a/public/less/admin/manage/categories.less +++ b/public/less/admin/manage/categories.less @@ -103,6 +103,7 @@ div.categories { border-top: 0; text-transform: uppercase; font-size: 9px; + vertical-align: bottom; } .arrowed:after { diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index c7a874e96a..1c44a7e78d 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -9,16 +9,12 @@ } logoutTimer = setTimeout(function () { - require(['translator'], function (translator) { - translator.translate('[[login:logged-out-due-to-inactivity]]', function (translated) { - bootbox.alert({ - closeButton: false, - message: translated, - callback: function () { - window.location.reload(); - } - }); - }); + bootbox.alert({ + closeButton: false, + message: '[[login:logged-out-due-to-inactivity]]', + callback: function () { + window.location.reload(); + } }); }, 3600000); } @@ -69,11 +65,9 @@ } function setupKeybindings() { - require(['mousetrap'], function (mousetrap) { + require(['mousetrap', 'admin/modules/instance'], function (mousetrap, instance) { mousetrap.bind('ctrl+shift+a r', function () { - require(['admin/modules/instance'], function (instance) { - instance.reload(); - }); + instance.reload(); }); mousetrap.bind('ctrl+shift+a R', function () { @@ -89,43 +83,61 @@ } function selectMenuItem(url) { - url = url - .replace(/\/\d+$/, '') - .split('/').slice(0, 3).join('/') - .split('?')[0]; - - // If index is requested, load the dashboard - if (url === 'admin') { - url = 'admin/general/dashboard'; - } + require(['translator'], function (translator) { + url = url + .replace(/\/\d+$/, '') + .split('/').slice(0, 3).join('/') + .split('?')[0].replace(/(\/+$)|(^\/+)/, ''); + + // If index is requested, load the dashboard + if (url === 'admin') { + url = 'admin/general/dashboard'; + } - $('#main-menu li').removeClass('active'); - $('#main-menu a').removeClass('active').each(function () { - var menu = $(this), - href = menu.attr('href'), - isLink = menu.parent().attr('data-link') === '1'; + url = [config.relative_path, url].join('/'); - if (!isLink && href && href === [config.relative_path, url].join('/')) { + $('#main-menu li').removeClass('active'); + $('#main-menu a').removeClass('active').filter('[href="' + url + '"]').each(function () { + var menu = $(this); menu .parent().addClass('active') .parents('.menu-item').addClass('active'); + + var match = menu.attr('href').match(/admin\/((.+?)\/.+?)$/); + if (!match) { + return; + } + var str = '[[admin/menu:' + match[1] + ']]'; + if (match[2] === 'settings') { + str = translator.compile('admin/menu:settings.page-title', str); + } + translator.translate(str, function (text) { + $('#main-page-title').text(text); + }); + }); - $('#main-page-title').text(menu.text() + (menu.parents('.menu-item').children('a').text() === 'Settings' ? ' Settings' : '')); + var title = url; + if (/admin\/general\/dashboard$/.test(title)) { + title = '[[admin/menu:general/dashboard]]'; + } else { + title = title.match(/admin\/(.+?)\/(.+?)$/); + title = '[[admin/menu:section-' + + (title[1] === 'development' ? 'advanced' : title[1]) + + ']]' + (title[2] ? (' > [[admin/menu:' + + title[1] + '/' + title[2] + ']]') : ''); } - }); - var acpPath = url.replace('admin/', '').split('/'); - acpPath.forEach(function (path, i) { - acpPath[i] = path.charAt(0).toUpperCase() + path.slice(1); - }); - acpPath = acpPath.join(' > '); + title = '[[admin/admin:acp-title, ' + title + ']]'; - document.title = (url === 'admin/general/dashboard' ? 'Dashboard' : acpPath) + ' | NodeBB Admin Control Panel'; + translator.translate(title, function (title) { + document.title = title.replace(/>/g, '>'); + }); + }); } function setupRestartLinks() { $('.reload').off('click').on('click', function () { - bootbox.confirm('Are you sure you wish to reload NodeBB?', function (confirm) { + bootbox.confirm('[[admin/admin:alert.confirm-reload]]', function (confirm) { if (confirm) { require(['admin/modules/instance'], function (instance) { instance.reload(); @@ -135,7 +147,7 @@ }); $('.restart').off('click').on('click', function () { - bootbox.confirm('Are you sure you wish to restart NodeBB?', function (confirm) { + bootbox.confirm('[[admin/admin:alert.confirm-restart]]', function (confirm) { if (confirm) { require(['admin/modules/instance'], function (instance) { instance.restart(); @@ -143,7 +155,7 @@ } }); }); - }; + } function launchSnackbar(params) { var message = (params.title ? "" + params.title + "" : '') + (params.message ? params.message : ''); diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 29ee7e362c..d4cfccb7bd 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,7 +1,7 @@ "use strict"; /*global config, define, app, socket, ajaxify, bootbox, templates, Chart, utils */ -define('admin/advanced/errors', ['Chart'], function (Chart) { +define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, translator) { var Errors = {}; Errors.init = function () { @@ -11,7 +11,7 @@ define('admin/advanced/errors', ['Chart'], function (Chart) { }; Errors.clear404 = function () { - bootbox.confirm('Are you sure you wish to clear the 404 error logs?', function (ok) { + bootbox.confirm('[[admin/advanced/errors:clear404-confirm]]', function (ok) { if (ok) { socket.emit('admin.errors.clear', {}, function (err) { if (err) { @@ -19,7 +19,7 @@ define('admin/advanced/errors', ['Chart'], function (Chart) { } ajaxify.refresh(); - app.alertSuccess('"404 Not Found" errors cleared'); + app.alertSuccess('[[admin/advanced/errors:clear404-success]]'); }); } }); diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 2ea10f1b36..667dcd7280 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -29,7 +29,7 @@ define('admin/advanced/logs', function () { case 'clear': socket.emit('admin.logs.clear', function (err) { if (!err) { - app.alertSuccess('Logs Cleared!'); + app.alertSuccess('[[admin/advanced/logs:clear-success]]'); btnEl.prev().click(); } }); diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 10daae4430..4158f6fef7 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -39,29 +39,27 @@ define('admin/appearance/themes', ['translator'], function (translator) { }); } }); - - translator.translate('[[admin/appearance/themes:revert-confirm]]', function (revert) { - $('#revert_theme').on('click', function () { - bootbox.confirm(revert, function (confirm) { - if (confirm) { - socket.emit('admin.themes.set', { - type: 'local', - id: 'nodebb-theme-persona' - }, function (err) { - if (err) { - return app.alertError(err.message); - } - highlightSelectedTheme('nodebb-theme-persona'); - app.alert({ - alert_id: 'admin:theme', - type: 'success', - title: '[[admin/appearance/themes:theme-changed]]', - message: '[[admin/appearance/themes:revert-success]]', - timeout: 3500 - }); + + $('#revert_theme').on('click', function () { + bootbox.confirm('[[admin/appearance/themes:revert-confirm]]', function (confirm) { + if (confirm) { + socket.emit('admin.themes.set', { + type: 'local', + id: 'nodebb-theme-persona' + }, function (err) { + if (err) { + return app.alertError(err.message); + } + highlightSelectedTheme('nodebb-theme-persona'); + app.alert({ + alert_id: 'admin:theme', + type: 'success', + title: '[[admin/appearance/themes:theme-changed]]', + message: '[[admin/appearance/themes:revert-success]]', + timeout: 3500 }); - } - }); + }); + } }); }); @@ -73,9 +71,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { var instListEl = $('#installed_themes'); if (!themes.length) { - translator.translate('[[admin/appearance/themes:no-themes]]', function (text) { - instListEl.append($('
  • ').addClass('no-themes').html(text)); - }); + instListEl.append($('
  • ').addClass('no-themes').translateHtml('[[admin/appearance/themes:no-themes]]')); return; } else { templates.parse('admin/partials/theme_list', { diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 59ef9348ab..d3774922c6 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -1,7 +1,7 @@ "use strict"; /* global define, app, socket, bootbox */ -define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { +define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, translator) { var Plugins = {}; Plugins.init = function () { var pluginsList = $('.plugins'), @@ -9,7 +9,9 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { pluginID; if (!numPlugins) { - pluginsList.append('
  • No plugins found.

  • '); + translator.translate('
  • [[admin/extend/plugins:none-found]]

  • ', function (html) { + pluginsList.append(html); + }); return; } @@ -23,25 +25,27 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { if (err) { return app.alertError(err); } - btn.html(' ' + (status.active ? 'Deactivate' : 'Activate')); - btn.toggleClass('btn-warning', status.active).toggleClass('btn-success', !status.active); - - //clone it to active plugins tab - if (status.active && !$('#active #' + pluginID).length) { - $('#active ul').prepend(pluginEl.clone(true)); - } + translator.translate(' [[admin/extend/plugins:plugin-item.' + (status.active ? 'deactivate' : 'activate') + ']]', function (buttonText) { + btn.html(buttonText); + btn.toggleClass('btn-warning', status.active).toggleClass('btn-success', !status.active); - app.alert({ - alert_id: 'plugin_toggled', - title: 'Plugin ' + (status.active ? 'Enabled' : 'Disabled'), - message: status.active ? 'Please restart your NodeBB to fully activate this plugin' : 'Plugin successfully deactivated', - type: status.active ? 'warning' : 'success', - timeout: 5000, - clickfn: function () { - require(['admin/modules/instance'], function (instance) { - instance.restart(); - }); + //clone it to active plugins tab + if (status.active && !$('#active #' + pluginID).length) { + $('#active ul').prepend(pluginEl.clone(true)); } + + app.alert({ + alert_id: 'plugin_toggled', + title: '[[admin/extend/plugins:alert.' + (status.active ? 'enabled' : 'disabled') + ']]', + message: '[[admin/extend/plugins:alert.' + (status.active ? 'activate-success' : 'deactivate-success') + ']]', + type: status.active ? 'warning' : 'success', + timeout: 5000, + clickfn: function () { + require(['admin/modules/instance'], function (instance) { + instance.restart(); + }); + } + }); }); }); }); @@ -57,7 +61,7 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { Plugins.suggest(pluginID, function (err, payload) { if (err) { - bootbox.confirm('

    NodeBB could not reach the package manager, proceed with installation of latest version?

    Server returned (' + err.status + '): ' + err.responseText + '
    ', function (confirm) { + bootbox.confirm(translator.compile('admin/extend/plugins:alert.suggest-error', err.status, err.responseText), function (confirm) { if (confirm) { Plugins.toggleInstall(pluginID, 'latest'); } else { @@ -92,7 +96,7 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { Plugins.suggest(pluginID, function (err, payload) { if (err) { - return bootbox.alert('

    NodeBB could not reach the package manager, an upgrade is not suggested at this time.

    '); + return bootbox.alert('[[admin/extend/plugins:alert.package-manager-unreachable]]'); } require(['semver'], function (semver) { @@ -103,7 +107,7 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { upgrade(pluginID, btn, payload.version); }); } else { - bootbox.alert('

    Your version of NodeBB (v' + app.config.version + ') is only cleared to upgrade to v' + payload.version + ' of this plugin. Please update your NodeBB if you wish to install a newer version of this plugin.'); + bootbox.alert(translator.compile('admin/extend/plugins:alert.incompatible', app.config.version, payload.version)); } }); }); @@ -128,7 +132,10 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { html += '

  • ' + plugin + '
  • '; }); if (!activePlugins.length) { - html = 'No Active Plugins'; + translator.translate('[[admin/extend/plugins:none-active]]', function (text) { + $('#order-active-plugins-modal .plugin-list').html(text).sortable(); + }); + return; } $('#order-active-plugins-modal .plugin-list').html(html).sortable(); }); @@ -154,11 +161,7 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { }; function confirmInstall(pluginID, callback) { - bootbox.confirm( - '

    No Compatibility Infomation Found

    This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

    ' + - '

    In the event that NodeBB cannot boot properly:

    ' + - '
    $ ./nodebb reset plugin="' + pluginID + '"
    ' + - '

    Continue installation of latest version of this plugin?

    ', function (confirm) { + bootbox.confirm(translator.compile('admin/extend/plugins:alert.possibly-incompatible', pluginID), function (confirm) { callback(confirm); }); } @@ -179,8 +182,8 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { if (isActive) { app.alert({ alert_id: 'plugin_upgraded', - title: 'Plugin Upgraded', - message: 'Please reload your NodeBB to fully upgrade this plugin', + title: '[[admin/extend/plugins:alert.upgraded]]', + message: '[[admin/extend/plugins:alert.upgrade-success]]', type: 'warning', timeout: 5000, clickfn: function () { @@ -211,8 +214,8 @@ define('admin/extend/plugins', ['jqueryui'], function (jqueryui) { app.alert({ alert_id: 'plugin_toggled', - title: 'Plugin ' + (pluginData.installed ? 'Installed' : 'Uninstalled'), - message: pluginData.installed ? 'Plugin successfully installed, please activate the plugin.' : 'The plugin has been successfully deactivated and uninstalled.', + title: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'installed' : 'uninstalled') + ']]', + message: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'install-success' : 'uninstall-success') + ']]', type: 'info', timeout: 5000 }); diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 939bdbb20d..8b347101f9 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -1,7 +1,7 @@ "use strict"; /* global define, app, ajaxify, socket, templates, bootbox */ -define('admin/extend/rewards', function () { +define('admin/extend/rewards', ['translator'], function (translator) { var rewards = {}; @@ -32,7 +32,7 @@ define('admin/extend/rewards', function () { if (err) { app.alertError(err.message); } else { - app.alertSuccess('Successfully deleted reward'); + app.alertSuccess('[[admin/extend/rewards:alert.delete-success]]'); } }); @@ -43,8 +43,7 @@ define('admin/extend/rewards', function () { var btn = $(this), disabled = btn.hasClass('btn-success'), id = $(this).parents('[data-id]').attr('data-id'); - - btn.toggleClass('btn-warning').toggleClass('btn-success').html(disabled ? 'Disable' : 'Enable'); + btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + disabled ? 'disable' : 'enable' + ']]'); // send disable api call return false; }); @@ -90,7 +89,7 @@ define('admin/extend/rewards', function () { } if (!inputs) { - return app.alertError('Illegal reward - no inputs found! ' + el.attr('data-selected')); + return app.alertError('[[admin/extend/rewards:alert.no-inputs-found]] ' + el.attr('data-selected')); } inputs.forEach(function (input) { @@ -142,9 +141,11 @@ define('admin/extend/rewards', function () { }; templates.parse('admin/extend/rewards', 'active', data, function (li) { - li = $(li); - ul.append(li); - li.find('select').val(''); + translator.translate(li, function (li) { + li = $(li); + ul.append(li); + li.find('select').val(''); + }); }); } @@ -174,7 +175,7 @@ define('admin/extend/rewards', function () { if (err) { app.alertError(err.message); } else { - app.alertSuccess('Successfully saved rewards'); + app.alertSuccess('[[admin/extend/rewards:alert.save-success]]'); } }); } diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 5b7c3a13e1..6db6b53490 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, socket */ +/* global define, app, socket, bootbox */ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { var Widgets = {}; @@ -61,7 +61,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { }).on('click', '.delete-widget', function () { var panel = $(this).parents('.widget-panel'); - bootbox.confirm('Are you sure you wish to delete this widget?', function (confirm) { + bootbox.confirm('[[admin/extend/widgets:alert.confirm-delete]]', function (confirm) { if (confirm) { panel.remove(); } @@ -125,8 +125,8 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { app.alert({ alert_id: 'admin:widgets', type: 'success', - title: 'Widgets Updated', - message: 'Successfully updated widgets', + title: '[[admin/extend/widgets:alert.updated]]', + message: '[[admin/extend/widgets:alert.update-success]]', timeout: 2500 }); } diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 62ef80313a..f9e2589f65 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -1,22 +1,22 @@ "use strict"; /*global define, ajaxify, app, socket, utils, bootbox, RELATIVE_PATH*/ -define('admin/general/dashboard', ['semver', 'Chart'], function (semver, Chart) { +define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (semver, Chart, translator) { var Admin = {}; var intervals = { - rooms: false, - graphs: false - }; + rooms: false, + graphs: false + }; var isMobile = false; var isPrerelease = /^v?\d+\.\d+\.\d+-.+$/; var graphData = { - rooms: {}, - traffic: {} - }; + rooms: {}, + traffic: {} + }; var currentGraph = { - units: 'hours', - until: undefined - }; + units: 'hours', + until: undefined + }; var DEFAULTS = { roomInterval: 10000, @@ -53,23 +53,28 @@ define('admin/general/dashboard', ['semver', 'Chart'], function (semver, Chart) var version = $('#version').html(), latestVersion = releases[0].name.slice(1), - checkEl = $('.version-check'); + checkEl = $('.version-check'), + text; // Alter box colour accordingly if (semver.eq(latestVersion, version)) { checkEl.removeClass('alert-info').addClass('alert-success'); - checkEl.append('

    You are up-to-date

    '); + text = '[[admin/general/dashboard:up-to-date]]'; } else if (semver.gt(latestVersion, version)) { checkEl.removeClass('alert-info').addClass('alert-warning'); if (!isPrerelease.test(version)) { - checkEl.append('

    A new version (v' + latestVersion + ') has been released. Consider upgrading your NodeBB.

    '); + text = '[[admin/general/dashboard:upgrade-available, ' + latestVersion + ']]'; } else { - checkEl.append('

    This is an outdated pre-release version of NodeBB. A new version (v' + latestVersion + ') has been released. Consider upgrading your NodeBB.

    '); + text = '[[admin/general/dashboard:prerelease-upgrade-available, ' + latestVersion + ']]'; } } else if (isPrerelease.test(version)) { checkEl.removeClass('alert-info').addClass('alert-info'); - checkEl.append('

    This is a pre-release version of NodeBB. Unintended bugs may occur. .

    '); + text = '[[admin/general/dashboard:prerelease-warning]]'; } + + translator.translate(text, function (text) { + checkEl.append(text); + }); }); $('[data-toggle="tooltip"]').tooltip(); @@ -92,26 +97,26 @@ define('admin/general/dashboard', ['semver', 'Chart'], function (semver, Chart) var html = '
    ' + '
    ' + data.onlineRegisteredCount + '
    ' + - '
    Users
    ' + + '
    [[admin/general/dashboard:active-users.users]]
    ' + '
    ' + '
    ' + '
    ' + data.onlineGuestCount + '
    ' + - '
    Guests
    ' + + '
    [[admin/general/dashboard:active-users.guests]]
    ' + '
    ' + '
    ' + '
    ' + (data.onlineRegisteredCount + data.onlineGuestCount) + '
    ' + - '
    Total
    ' + + '
    [[admin/general/dashboard:active-users.total]]
    ' + '
    ' + '
    ' + '
    ' + data.socketCount + '
    ' + - '
    Connections
    ' + + '
    [[admin/general/dashboard:active-users.connections]]
    ' + '
    '; updateRegisteredGraph(data.onlineRegisteredCount, data.onlineGuestCount); updatePresenceGraph(data.users); updateTopicsGraph(data.topics); - $('#active-users').html(html); + $('#active-users').translateHtml(html); }; var graphs = { @@ -168,119 +173,132 @@ define('admin/general/dashboard', ['semver', 'Chart'], function (semver, Chart) Chart.defaults.global.tooltips.enabled = false; } - var data = { - labels: trafficLabels, - datasets: [ - { - label: "Page Views", - backgroundColor: "rgba(220,220,220,0.2)", - borderColor: "rgba(220,220,220,1)", - pointBackgroundColor: "rgba(220,220,220,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(220,220,220,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] - }, - { - label: "Unique Visitors", - backgroundColor: "rgba(151,187,205,0.2)", - borderColor: "rgba(151,187,205,1)", - pointBackgroundColor: "rgba(151,187,205,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(151,187,205,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + var t = translator.Translator.create(); + Promise.all([ + t.translateKey('admin/general/dashboard:graphs.page-views', []), + t.translateKey('admin/general/dashboard:graphs.unique-visitors', []), + t.translateKey('admin/general/dashboard:graphs.registered-users', []), + t.translateKey('admin/general/dashboard:graphs.anonymous-users', []), + t.translateKey('admin/general/dashboard:on-categories', []), + t.translateKey('admin/general/dashboard:reading-posts', []), + t.translateKey('admin/general/dashboard:browsing-topics', []), + t.translateKey('admin/general/dashboard:recent', []), + t.translateKey('admin/general/dashboard:unread', []), + ]).then(function (translations) { + var data = { + labels: trafficLabels, + datasets: [ + { + label: translations[0], + backgroundColor: "rgba(220,220,220,0.2)", + borderColor: "rgba(220,220,220,1)", + pointBackgroundColor: "rgba(220,220,220,1)", + pointHoverBackgroundColor: "#fff", + pointBorderColor: "#fff", + pointHoverBorderColor: "rgba(220,220,220,1)", + data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + }, + { + label: translations[1], + backgroundColor: "rgba(151,187,205,0.2)", + borderColor: "rgba(151,187,205,1)", + pointBackgroundColor: "rgba(151,187,205,1)", + pointHoverBackgroundColor: "#fff", + pointBorderColor: "#fff", + pointHoverBorderColor: "rgba(151,187,205,1)", + data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + } + ] + }; + + trafficCanvas.width = $(trafficCanvas).parent().width(); + graphs.traffic = new Chart(trafficCtx, { + type: 'line', + data: data, + options: { + responsive: true, + legend: { + display: false + }, + scales: { + yAxes: [{ + ticks: { + beginAtZero: true + } + }] + } } - ] - }; - - trafficCanvas.width = $(trafficCanvas).parent().width(); - graphs.traffic = new Chart(trafficCtx, { - type: 'line', - data: data, - options: { - responsive: true, - legend: { - display: false - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true - } + }); + + graphs.registered = new Chart(registeredCtx, { + type: 'doughnut', + data: { + labels: translations.slice(2, 4), + datasets: [{ + data: [1, 1], + backgroundColor: ["#F7464A", "#46BFBD"], + hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"] }] + }, + options: { + responsive: true, + legend: { + display: false + } } - } - }); - - graphs.registered = new Chart(registeredCtx, { - type: 'doughnut', - data: { - labels: ["Registered Users", "Anonymous Users"], - datasets: [{ - data: [1, 1], - backgroundColor: ["#F7464A", "#46BFBD"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"] - }] - }, - options: { - responsive: true, - legend: { - display: false - } - } - }); + }); - graphs.presence = new Chart(presenceCtx, { - type: 'doughnut', - data: { - labels: ["On categories list", "Reading posts", "Browsing topics", "Recent", "Unread"], - datasets: [{ - data: [1, 1, 1, 1, 1], - backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#9FB194"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#A8B3C5"] - }] - }, - options: { - responsive: true, - legend: { - display: false + graphs.presence = new Chart(presenceCtx, { + type: 'doughnut', + data: { + labels: translations.slice(4, 9), + datasets: [{ + data: [1, 1, 1, 1, 1], + backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#9FB194"], + hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#A8B3C5"] + }] + }, + options: { + responsive: true, + legend: { + display: false + } } - } - }); + }); - graphs.topics = new Chart(topicsCtx, { - type: 'doughnut', - data: { - labels: [], - datasets: [{ - data: [], - backgroundColor: [], - hoverBackgroundColor: [] - }] - }, - options: { - responsive: true, - legend: { - display: false + graphs.topics = new Chart(topicsCtx, { + type: 'doughnut', + data: { + labels: [], + datasets: [{ + data: [], + backgroundColor: [], + hoverBackgroundColor: [] + }] + }, + options: { + responsive: true, + legend: { + display: false + } } - } - }); + }); - updateTrafficGraph(); + updateTrafficGraph(); - $(window).on('resize', adjustPieCharts); - adjustPieCharts(); + $(window).on('resize', adjustPieCharts); + adjustPieCharts(); - $('[data-action="updateGraph"]').on('click', function () { - var until; - switch($(this).attr('data-until')) { - case 'last-month': - var lastMonth = new Date(); - lastMonth.setDate(lastMonth.getDate() - 30); - until = lastMonth.getTime(); - } - updateTrafficGraph($(this).attr('data-units'), until); + $('[data-action="updateGraph"]').on('click', function () { + var until; + switch($(this).attr('data-until')) { + case 'last-month': + var lastMonth = new Date(); + lastMonth.setDate(lastMonth.getDate() - 30); + until = lastMonth.getTime(); + } + updateTrafficGraph($(this).attr('data-units'), until); + }); }); } diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index ee53fa5561..6fa59aff24 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -12,8 +12,8 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun $(this).val(translator.unescape($(this).val())); }); - translator.translate(translator.unescape($('#available').html()), function (html) { - $('#available').html(html) + translator.translate($('#available').html(), function (html) { + $('#available').html(translator.unescape(html)) .find('li .drag-item').draggable({ connectToSortable: '#active-navigation', helper: 'clone', @@ -69,15 +69,19 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1; templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) { - li = $(translator.unescape(li)); - el.after(li); - el.remove(); + translator.translate(li, function (li) { + li = $(translator.unescape(li)); + el.after(li); + el.remove(); + }); }); templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) { - li = $(translator.unescape(li)); - $('#enabled').append(li); - componentHandler.upgradeDom(); + translator.translate(li, function (li) { + li = $(translator.unescape(li)); + $('#enabled').append(li); + componentHandler.upgradeDom(); + }); }); } @@ -133,9 +137,10 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun function toggle() { var btn = $(this), disabled = btn.hasClass('btn-success'); - - btn.toggleClass('btn-warning').toggleClass('btn-success').html(!disabled ? 'Enable' : 'Disable'); - btn.parents('li').find('[name="enabled"]').val(!disabled ? '' : 'on'); + translator.translate(disabled ? '[[admin/general/navigation:btn.disable]]' : '[[admin/general/navigation:btn.enable]]', function (html) { + btn.toggleClass('btn-warning').toggleClass('btn-success').html(html); + btn.parents('li').find('[name="enabled"]').val(disabled ? 'on' : ''); + }); return false; } diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js index 9accf87417..cfcc3d3c52 100644 --- a/public/src/admin/general/social.js +++ b/public/src/admin/general/social.js @@ -18,7 +18,7 @@ define('admin/general/social', [], function () { return app.alertError(err); } - app.alertSuccess('Successfully saved Post Sharing Networks!'); + app.alertSuccess('[[admin/general/social:save-success]]'); }); }); }; diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js index 0ea87f0917..64926e60db 100644 --- a/public/src/admin/general/sounds.js +++ b/public/src/admin/general/sounds.js @@ -23,7 +23,7 @@ define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Setting socket.emit('admin.fireEvent', { name: 'event:sounds.reloadMapping' }); - app.alertSuccess('Settings Saved'); + app.alertSuccess('[[admin/general/sounds:saved]]'); }); }); }; diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index bbc5a69695..acb55b82e9 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -51,11 +51,11 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } var modal = bootbox.dialog({ - title: 'Create a Category', + title: '[[admin/manage/categories:alert.create]]', message: html, buttons: { save: { - label: 'Save', + label: '[[global:save]]', className: 'btn-primary', callback: submit } @@ -75,8 +75,8 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri app.alert({ alert_id: 'category_created', - title: 'Created', - message: 'Category successfully created!', + title: '[[admin/manage/categories:alert.created]]', + message: '[[admin/manage/categories:alert.create-success]]', type: 'success', timeout: 2000 }); @@ -89,10 +89,12 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri var container = $('.categories'); if (!categories || !categories.length) { - $('
    ') - .addClass('alert alert-info text-center') - .text('You have no active categories.') - .appendTo(container); + translator.translate('[[admin/manage/categories:alert.none-active]]', function (text) { + $('
    ') + .addClass('alert alert-info text-center') + .text(text) + .appendTo(container); + }); } else { sortables = {}; renderList(categories, container, 0); @@ -176,22 +178,24 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri cid: parentId, categories: categories }, function (html) { - container.append(html); + translator.translate(html, function (html) { + container.append(html); - // Handle and children categories in this level have - for(var x = 0,numCategories = categories.length; x < numCategories; x++) { - renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid); - } + // Handle and children categories in this level have + for(var x = 0,numCategories = categories.length; x < numCategories; x++) { + renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid); + } - // Make list sortable - sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], { - group: 'cross-categories', - animation: 150, - handle: '.icon', - dataIdAttr: 'data-cid', - ghostClass: "placeholder", - onAdd: itemDidAdd, - onEnd: itemDragDidEnd + // Make list sortable + sortables[parentId] = Sortable.create($('ul[data-cid="' + parentId + '"]')[0], { + group: 'cross-categories', + animation: 150, + handle: '.icon', + dataIdAttr: 'data-cid', + ghostClass: "placeholder", + onAdd: itemDidAdd, + onEnd: itemDragDidEnd + }); }); }); } diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 866bc4bb9d..351c7a624b 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -5,12 +5,52 @@ define('admin/manage/category', [ 'uploader', 'iconSelect', 'admin/modules/colorpicker', - 'autocomplete' -], function (uploader, iconSelect, colorpicker, autocomplete) { + 'autocomplete', + 'translator' +], function (uploader, iconSelect, colorpicker, autocomplete, translator) { var Category = {}; var modified_categories = {}; Category.init = function () { + var modified_categories = {}; + + function modified(el) { + var cid = $(el).parents('form').attr('data-cid'); + + if (cid) { + modified_categories[cid] = modified_categories[cid] || {}; + modified_categories[cid][$(el).attr('data-name')] = $(el).val(); + + app.flags = app.flags || {}; + app.flags._unsaved = true; + } + } + + function save(e) { + e.preventDefault(); + + if(Object.keys(modified_categories).length) { + socket.emit('admin.categories.update', modified_categories, function (err, results) { + if (err) { + return app.alertError(err.message); + } + + if (results && results.length) { + app.flags._unsaved = false; + app.alert({ + title: '[[admin/manage/categories:alert.updated]]', + message: translator.compile( + 'admin/manage/categories:alert.updated-success', + results.join(', ') + ), + type: 'success', + timeout: 2000 + }); + } + }); + modified_categories = {}; + } + } $('.blockclass, form.category select').each(function () { var $this = $(this); @@ -75,7 +115,10 @@ define('admin/manage/category', [ $('.purge').on('click', function (e) { e.preventDefault(); - bootbox.confirm('

    Do you really want to purge this category "' + $('form.category').find('input[data-name="name"]').val() + '"?

    Warning! All topics and posts in this category will be purged!

    Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you\'ll want to "disable" the category instead.

    ', function (confirm) { + bootbox.confirm(translator.compile( + 'admin/manage/categories:alert.confirm-purge', + $('form.category').find('input[data-name="name"]').val() + ), function (confirm) { if (!confirm) { return; } @@ -83,7 +126,7 @@ define('admin/manage/category', [ if (err) { return app.alertError(err.message); } - app.alertSuccess('Category purged!'); + app.alertSuccess('[[admin/manage/categories:alert.purge-success]]'); ajaxify.go('admin/manage/categories'); }); }); @@ -95,7 +138,7 @@ define('admin/manage/category', [ if (err) { return app.alertError(err.message); } - app.alertSuccess('Settings Copied!'); + app.alertSuccess('[[admin/manage/categories:alert.copy-success]]'); ajaxify.refresh(); }); }); @@ -107,7 +150,7 @@ define('admin/manage/category', [ var cid = inputEl.attr('data-cid'); uploader.show({ - title: 'Upload category image', + title: '[[admin/manage/categories:alert.upload-image]]', route: config.relative_path + '/api/admin/category/uploadpicture', params: {cid: cid} }, function (imageUrlOnServer) { @@ -200,7 +243,7 @@ define('admin/manage/category', [ if (member) { if (isGroup && privilege === 'groups:moderate' && !isPrivate && state) { - bootbox.confirm('Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.', function (confirm) { + bootbox.confirm('[[admin/manage/categories:alert.confirm-moderate]]', function (confirm) { if (confirm) { Category.setPrivilege(member, privilege, state, checkboxEl); } else { @@ -232,8 +275,10 @@ define('admin/manage/category', [ templates.parse('admin/partials/categories/privileges', { privileges: privileges }, function (html) { - $('.privilege-table-container').html(html); - Category.exposeAssumedPrivileges(); + translator.translate(html, function (html) { + $('.privilege-table-container').html(html); + Category.exposeAssumedPrivileges(); + }); }); }); }; @@ -291,7 +336,7 @@ define('admin/manage/category', [ }, function (html) { var modal = bootbox.dialog({ message: html, - title: 'Set Parent Category' + title: '[[admin/manage/categories:alert.set-parent-category]]' }); modal.find('li[data-cid]').on('click', function () { @@ -324,8 +369,8 @@ define('admin/manage/category', [ Category.addUserToPrivilegeTable = function () { var modal = bootbox.dialog({ - title: 'Find a User', - message: '', + title: '[[admin/manage/categories:alert.find-user]]', + message: '', show: true }); @@ -352,8 +397,8 @@ define('admin/manage/category', [ Category.addGroupToPrivilegeTable = function () { var modal = bootbox.dialog({ - title: 'Find a Group', - message: '', + title: '[[admin/manage/categories:alert.find-group]]', + message: '', show: true }); @@ -407,26 +452,28 @@ define('admin/manage/category', [ templates.parse('admin/partials/categories/select-category', { categories: categories }, function (html) { - function submit() { - var formData = modal.find('form').serializeObject(); - callback(formData['select-cid']); - modal.modal('hide'); - return false; - } + translator.translate(html, function (html) { + function submit() { + var formData = modal.find('form').serializeObject(); + callback(formData['select-cid']); + modal.modal('hide'); + return false; + } - var modal = bootbox.dialog({ - title: 'Select a Category', - message: html, - buttons: { - save: { - label: 'Copy', - className: 'btn-primary', - callback: submit + var modal = bootbox.dialog({ + title: 'Select a Category', + message: html, + buttons: { + save: { + label: 'Copy', + className: 'btn-primary', + callback: submit + } } - } - }); + }); - modal.find('form').on('submit', submit); + modal.find('form').on('submit', submit); + }); }); }); } diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index ce41436dac..a64ca9dd63 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -69,7 +69,7 @@ define('admin/manage/group', [ groupDetailsSearchResults.append(foundUser); } } else { - groupDetailsSearchResults.html('
  • No Users Found
  • '); + groupDetailsSearchResults.translateHtml('
  • [[admin/manage/groups:edit.no-users-found]]
  • '); } }); }, 200); @@ -126,7 +126,7 @@ define('admin/manage/group', [ break; case 'kick': - bootbox.confirm('Are you sure you want to remove this user?', function (confirm) { + bootbox.confirm('[[admin/manage/groups:edit.confirm-remove-user]]', function (confirm) { if (!confirm) { return; } @@ -178,7 +178,7 @@ define('admin/manage/group', [ // If the group name changed, change url if (groupName === newName) { - app.alertSuccess('Changes saved!'); + app.alertSuccess('[[admin/manage/groups:edit.save-success]]'); } else { ajaxify.go('admin/manage/groups/' + encodeURIComponent(newName), undefined, true); } diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index bbb0c08352..5c30e7f3cd 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -1,10 +1,7 @@ "use strict"; /*global define, templates, socket, ajaxify, app, admin, bootbox, utils, config */ -define('admin/manage/groups', [ - 'translator', - 'components' -], function (translator, components) { +define('admin/manage/groups', ['translator'], function (translator) { var Groups = {}; var intervalId = 0; @@ -40,12 +37,9 @@ define('admin/manage/groups', [ socket.emit('admin.groups.create', submitObj, function (err) { if (err) { if (err.hasOwnProperty('message') && utils.hasLanguageKey(err.message)) { - translator.translate(err.message, config.defaultLang, function (translated) { - createModalError.html(translated).removeClass('hide'); - }); - } else { - createModalError.html('Uh-Oh

    There was a problem creating your group. Please try again later!

    ').removeClass('hide'); + err = '[[admin/manage/groups:alerts.create-failure]]'; } + createModalError.translateHtml(err).removeClass('hide'); } else { createModalError.addClass('hide'); createGroupName.val(''); @@ -64,7 +58,7 @@ define('admin/manage/groups', [ switch (action) { case 'delete': - bootbox.confirm('Are you sure you wish to delete this group?', function (confirm) { + bootbox.confirm('[[admin/manage/groups:alerts.confirm-delete]]', function (confirm) { if (confirm) { socket.emit('groups.delete', { groupName: groupName @@ -102,8 +96,10 @@ define('admin/manage/groups', [ templates.parse('admin/manage/groups', 'groups', { groups: groups }, function (html) { - groupsEl.find('[data-groupname]').remove(); - groupsEl.find('tr').after(html); + translator.translate(html, function (html) { + groupsEl.find('[data-groupname]').remove(); + groupsEl.find('tr').after(html); + }); }); }); } diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 03f4d8bb5c..2e9963b75f 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -1,7 +1,7 @@ 'use strict'; /* globals $, app, socket, templates, define, bootbox */ -define('admin/manage/ip-blacklist', [], function () { +define('admin/manage/ip-blacklist', ['translator'], function (translator) { var Blacklist = {}; @@ -20,7 +20,7 @@ define('admin/manage/ip-blacklist', [], function () { app.alert({ type: 'success', alert_id: 'blacklist-saved', - title: 'Blacklist Applied', + title: '[[admin/manage/ip-blacklist:alerts.applied]]', }); }); }); diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 329a4edb96..864ce2bf86 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -39,7 +39,7 @@ define('admin/manage/registration', function () { parent.remove(); }; if (action === 'delete') { - bootbox.confirm('Are you sure you wish to delete this invitation?', function (confirm) { + bootbox.confirm('[[admin/manage/registration:invitations.confirm-delete]]', function (confirm) { if (confirm) { socket.emit(method, {email: email, invitedBy: invitedBy}, function (err) { if (err) { diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 108fce3797..9984c8182d 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -86,7 +86,7 @@ define('admin/manage/tags', [ } var firstTag = $(tagsToModify[0]), - title = tagsToModify.length > 1 ? 'Editing multiple tags' : 'Editing ' + firstTag.find('.tag-item').text() + ' tag'; + title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').text() + ']]'; var modal = bootbox.dialog({ title: title, @@ -125,7 +125,7 @@ define('admin/manage/tags', [ return; } - bootbox.confirm('Do you want to delete the selected tags?', function (confirm) { + bootbox.confirm('[[admin/manage/tags:alerts.confirm-delete]]', function (confirm) { if (!confirm) { return; } @@ -164,7 +164,7 @@ define('admin/manage/tags', [ return app.alertError(err.message); } - app.alertSuccess('Tag Updated!'); + app.alertSuccess('[[admin/manage/tags:alerts.update-success]]'); }); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 2f344e37c7..bfbc7860fd 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -68,9 +68,9 @@ define('admin/manage/users', ['translator'], function (translator) { return false; // specifically to keep the menu open } - bootbox.confirm('Do you really want to ban ' + (uids.length > 1 ? 'these users' : 'this user') + ' permanently?', function (confirm) { + bootbox.confirm((uids.length > 1 ? '[[admin/manage/users:alerts.confirm-ban-multi]]' : '[[admin/manage/users:alerts.confirm-ban]]'), function (confirm) { if (confirm) { - socket.emit('user.banUsers', { uids: uids, reason: '' }, done('User(s) banned!', '.ban', true)); + socket.emit('user.banUsers', { uids: uids, reason: '' }, done('[[admin/manage/users:alerts.ban-success]]', '.ban', true)); } }); }); @@ -94,14 +94,14 @@ define('admin/manage/users', ['translator'], function (translator) { className: 'btn-link' }, submit: { - label: 'Ban ' + uids.length + (uids.length > 1 ? ' users' : ' user'), + label: '[[admin/manage/users:alerts.button-ban-x, ' + uids.length + ']]', callback: function () { var formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) { data[cur.name] = cur.value; return data; }, {}); var until = formData.length ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; - socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('User(s) banned!', '.ban', true)); + socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('[[admin/manage/users:alerts.ban-success]]', '.ban', true)); } } } @@ -116,7 +116,7 @@ define('admin/manage/users', ['translator'], function (translator) { return false; // specifically to keep the menu open } - socket.emit('user.unbanUsers', uids, done('User(s) unbanned!', '.ban', false)); + socket.emit('user.unbanUsers', uids, done('[[admin/manage/users:alerts.unban-success]]', '.ban', false)); }); $('.reset-lockout').on('click', function () { @@ -125,7 +125,7 @@ define('admin/manage/users', ['translator'], function (translator) { return; } - socket.emit('admin.user.resetLockouts', uids, done('Lockout(s) reset!')); + socket.emit('admin.user.resetLockouts', uids, done('[[admin/manage/users:alerts.lockout-reset-success]]')); }); $('.admin-user').on('click', function () { @@ -135,9 +135,9 @@ define('admin/manage/users', ['translator'], function (translator) { } if (uids.indexOf(app.user.uid.toString()) !== -1) { - app.alertError('You can\'t remove yourself as Administrator!'); + app.alertError('[[admin/manage/users:alerts.no-remove-yourself-admin]]'); } else { - socket.emit('admin.user.makeAdmins', uids, done('User(s) are now administrators.', '.administrator', true)); + socket.emit('admin.user.makeAdmins', uids, done('[[admin/manage/users:alerts.make-admin-success]]', '.administrator', true)); } }); @@ -148,11 +148,11 @@ define('admin/manage/users', ['translator'], function (translator) { } if (uids.indexOf(app.user.uid.toString()) !== -1) { - app.alertError('You can\'t remove yourself as Administrator!'); + app.alertError('[[admin/manage/users:alerts.no-remove-yourself-admin]]'); } else { - bootbox.confirm('Do you really want to remove admins?', function (confirm) { + bootbox.confirm('[[admin/manage/users:alerts.confirm-remove-admin]]', function (confirm) { if (confirm) { - socket.emit('admin.user.removeAdmins', uids, done('User(s) are no longer administrators.', '.administrator', false)); + socket.emit('admin.user.removeAdmins', uids, done('[[admin/manage/users:alerts.remove-admin-success]]', '.administrator', false)); } }); } @@ -164,7 +164,7 @@ define('admin/manage/users', ['translator'], function (translator) { return; } - bootbox.confirm('Do you want to validate email(s) of these user(s)?', function (confirm) { + bootbox.confirm('[[admin/manage/users:alerts.confirm-validate-email]]', function (confirm) { if (!confirm) { return; } @@ -172,7 +172,7 @@ define('admin/manage/users', ['translator'], function (translator) { if (err) { return app.alertError(err.message); } - app.alertSuccess('Emails validated'); + app.alertSuccess('[[admin/manage/users:alerts.validate-email-success]]'); update('.notvalidated', false); update('.validated', true); unselectAll(); @@ -199,9 +199,9 @@ define('admin/manage/users', ['translator'], function (translator) { return; } - bootbox.confirm('Do you want to send password reset email(s) to these user(s)?', function (confirm) { + bootbox.confirm('[[admin/manage/users:alerts.password-reset-confirm]]', function (confirm) { if (confirm) { - socket.emit('admin.user.sendPasswordResetEmail', uids, done('Emails sent')); + socket.emit('admin.user.sendPasswordResetEmail', uids, done('[[notifications:email-confirm-sent]]')); } }); }); @@ -212,14 +212,14 @@ define('admin/manage/users', ['translator'], function (translator) { return; } - bootbox.confirm('Warning!
    Do you really want to delete user(s)?
    This action is not reversable, only the user account will be deleted, their posts and topics will not be deleled!', function (confirm) { + bootbox.confirm('[[admin/manage/users:alerts.confirm-delete]]', function (confirm) { if (confirm) { socket.emit('admin.user.deleteUsers', uids, function (err) { if (err) { return app.alertError(err.message); } - app.alertSuccess('User(s) Deleted!'); + app.alertSuccess('[[admin/manage/users:alerts.delete-success]]'); removeSelected(); unselectAll(); }); @@ -232,14 +232,14 @@ define('admin/manage/users', ['translator'], function (translator) { if (!uids.length) { return; } - bootbox.confirm('Warning!
    Do you really want to delete user(s) and their content?
    This action is not reversable, all user data and content will be erased!', function (confirm) { + bootbox.confirm('[[admin/manage/users:alerts.confirm-purge]]', function (confirm) { if (confirm) { socket.emit('admin.user.deleteUsersAndContent', uids, function (err) { if (err) { return app.alertError(err.message); } - app.alertSuccess('User(s) Deleted!'); + app.alertSuccess('[[admin/manage/users:alerts.delete-success]]'); removeSelected(); unselectAll(); }); @@ -250,26 +250,24 @@ define('admin/manage/users', ['translator'], function (translator) { function handleUserCreate() { $('#createUser').on('click', function () { templates.parse('admin/partials/create_user_modal', {}, function (html) { - translator.translate(html, function (html) { - bootbox.dialog({ - message: html, - title: 'Create User', - onEscape: true, - buttons: { - cancel: { - label: 'Cancel', - className: 'btn-link' - }, - create: { - label: 'Create', - className: 'btn-primary', - callback: function () { - createUser.call(this); - return false; - } + bootbox.dialog({ + message: html, + title: '[[admin/manage/users:alerts.create]]', + onEscape: true, + buttons: { + cancel: { + label: '[[admin/manage/users:alerts.button-cancel]]', + className: 'btn-link' + }, + create: { + label: '[[admin/manage/users:alerts.button-create]]', + className: 'btn-primary', + callback: function () { + createUser.call(this); + return false; } } - }); + } }); }); }); @@ -285,7 +283,7 @@ define('admin/manage/users', ['translator'], function (translator) { var errorEl = $('#create-modal-error'); if (password !== passwordAgain) { - return errorEl.html('Error

    Passwords must match!

    ').removeClass('hide'); + return errorEl.translateHtml('[[admin/manage/users:alerts.error-x, [[admin/manage/users:alerts.error-passwords-different]]]]').removeClass('hide'); } var user = { @@ -296,14 +294,14 @@ define('admin/manage/users', ['translator'], function (translator) { socket.emit('admin.user.createUser', user, function (err) { if(err) { - return errorEl.translateHtml('Error

    ' + err.message + '

    ').removeClass('hide'); + return errorEl.translateHtml('[[admin/manage/users:alerts.error-x, ' + err.message + ']]').removeClass('hide'); } modal.modal('hide'); modal.on('hidden.bs.modal', function () { ajaxify.refresh(); }); - app.alertSuccess('User created!'); + app.alertSuccess('[[admin/manage/users:alerts.create-success]]'); }); } @@ -327,25 +325,25 @@ define('admin/manage/users', ['translator'], function (translator) { } templates.parse('admin/manage/users', 'users', data, function (html) { - html = $(html); - $('.users-table tr').not(':first').remove(); - $('.users-table tr').first().after(html); - html.find('.timeago').timeago(); - $('.fa-spinner').addClass('hidden'); - - if (data && data.users.length === 0) { - $('#user-notfound-notify').html('User not found!') - .removeClass('hide') - .addClass('label-danger') - .removeClass('label-success'); - } else { - $('#user-notfound-notify').html(data.users.length + ' user' + (data.users.length > 1 ? 's' : '') + ' found! Search took ' + data.timing + ' ms.') - .removeClass('hide') - .addClass('label-success') - .removeClass('label-danger'); - } - - + translator.translate(html, function (html) { + html = $(html); + $('.users-table tr').not(':first').remove(); + $('.users-table tr').first().after(html); + html.find('.timeago').timeago(); + $('.fa-spinner').addClass('hidden'); + + if (data && data.users.length === 0) { + $('#user-notfound-notify').translateHtml('[[admin/manage/users:search.not-found]]') + .removeClass('hide') + .addClass('label-danger') + .removeClass('label-success'); + } else { + $('#user-notfound-notify').translateHtml(translator.compile('admin/manage/users:alerts.x-users-found', data.users.length, data.timing)) + .removeClass('hide') + .addClass('label-success') + .removeClass('label-danger'); + } + }); }); }); }, 250); @@ -359,7 +357,7 @@ define('admin/manage/users', ['translator'], function (translator) { function handleInvite() { $('[component="user/invite"]').on('click', function () { - bootbox.prompt('Email: ', function (email) { + bootbox.prompt('[[admin/manage/users:alerts.prompt-email]]', function (email) { if (!email) { return; } @@ -368,7 +366,7 @@ define('admin/manage/users', ['translator'], function (translator) { if (err) { return app.alertError(err.message); } - app.alertSuccess('An invitation email has been sent to ' + email); + app.alertSuccess('[[admin/manage/users:alerts.email-sent-to, ' + email + ']]'); }); }); }); diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index 4f46898b8e..29379f0dac 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -4,39 +4,41 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { var search = {}; - function nsToTitle(namespace) { - return namespace.replace('admin/', '').split('/').map(function (str) { - return str[0].toUpperCase() + str.slice(1); - }).join(' > '); - } - function find(dict, term) { var html = dict.filter(function (elem) { return elem.translations.toLowerCase().includes(term); }).map(function (params) { var namespace = params.namespace; var translations = params.translations; - var title = params.title == null ? nsToTitle(namespace) : params.title; + var title = params.title; var results = translations // remove all lines without a match .replace(new RegExp('^(?:(?!' + term + ').)*$', 'gmi'), '') - // get up to 25 characaters of context on both sides of the match + // remove lines that only match the title + .replace(new RegExp('(^|\\n).*?' + title + '.*?(\\n|$)', 'g'), '') + // get up to 25 characters of context on both sides of the match // and wrap the match in a `.search-match` element .replace( new RegExp('^[\\s\\S]*?(.{0,25})(' + term + ')(.{0,25})[\\s\\S]*?$', 'gmi'), '...$1$2$3...
    ' ) // collapse whitespace - .replace(/(?:\n ?)+/g, '\n'); + .replace(/(?:\n ?)+/g, '\n') + .trim(); + + title = title.replace( + new RegExp('(^.*?)(' + term + ')(.*?$)', 'gi'), + '$1$2$3' + ); return ''; }).join(''); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 3c59b54408..d426d7628c 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -96,7 +96,7 @@ $(document).ready(function () { app.template = data.template.name; require(['translator'], function (translator) { - translator.load(config.defaultLang, data.template.name); + translator.load(translator.getLanguage(), data.template.name); renderTemplate(url, data.template.name, data, callback); }); }); diff --git a/public/src/app.js b/public/src/app.js index 7c69d9fb61..fe12a7adfc 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -53,7 +53,6 @@ app.cacheBuster = null; } }); - overrides.overrideBootbox(); createHeaderTooltips(); app.showEmailConfirmWarning(); app.showCookieWarning(); diff --git a/public/src/client/search.js b/public/src/client/search.js index 20c85c13c2..48cf358c0c 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -12,8 +12,6 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc var searchIn = $('#search-in'); - fillOutForm(); - searchIn.on('change', function () { updateFormItemVisiblity(searchIn.val()); }); @@ -31,6 +29,8 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc handleSavePreferences(); enableAutoComplete(); + + fillOutForm(); }; function getSearchData() { @@ -43,6 +43,7 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc searchData.by = form.find('#posted-by-user').val(); searchData.categories = form.find('#posted-in-categories').val(); searchData.searchChildren = form.find('#search-children').is(':checked'); + searchData.hasTags = form.find('#has-tags').tagsinput('items'); searchData.replies = form.find('#reply-count').val(); searchData.repliesFilter = form.find('#reply-count-filter').val(); searchData.timeFilter = form.find('#post-time-filter').val(); @@ -79,7 +80,6 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc $('#posted-by-user').val(formData.by); } - if (formData.categories) { $('#posted-in-categories').val(formData.categories); } @@ -88,6 +88,13 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc $('#search-children').prop('checked', true); } + if (formData.hasTags) { + formData.hasTags = Array.isArray(formData.hasTags) ? formData.hasTags : [formData.hasTags]; + formData.hasTags.forEach(function (tag) { + $('#has-tags').tagsinput('add', tag); + }); + } + if (formData.replies) { $('#reply-count').val(formData.replies); $('#reply-count-filter').val(formData.repliesFilter); @@ -157,6 +164,14 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc function enableAutoComplete() { autocomplete.user($('#posted-by-user')); + + var tagEl = $('#has-tags'); + tagEl.tagsinput({ + confirmKeys: [13, 44], + trimValue: true + }); + + autocomplete.tag($('#has-tags').siblings('.bootstrap-tagsinput').find('input')); } return Search; diff --git a/public/src/modules/autocomplete.js b/public/src/modules/autocomplete.js index c20f804f38..ecaf563d10 100644 --- a/public/src/modules/autocomplete.js +++ b/public/src/modules/autocomplete.js @@ -75,5 +75,40 @@ define('autocomplete', function () { }); }; + module.tag = function (input, onselect) { + app.loadJQueryUI(function () { + input.autocomplete({ + delay: 100, + open: function () { + $(this).autocomplete('widget').css('z-index', 20000); + }, + select: function (event, ui) { + onselect = onselect || function () {}; + var e = jQuery.Event('keypress'); + e.which = 13; + e.keyCode = 13; + setTimeout(function () { + input.trigger(e); + }, 100); + onselect(event, ui); + }, + source: function (request, response) { + socket.emit('topics.autocompleteTags', { + query: request.term, + cid: ajaxify.data.cid || 0 + }, function (err, tags) { + if (err) { + return app.alertError(err.message); + } + if (tags) { + response(tags); + } + $('.ui-autocomplete a').attr('data-ajaxify', 'false'); + }); + } + }); + }); + }; + return module; }); diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 4319de5617..990c9dec97 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -53,6 +53,10 @@ define('search', ['navigator', 'translator'], function (nav, translator) { } } + if (data.hasTags && data.hasTags.length) { + query.hasTags = data.hasTags; + } + if (parseInt(data.replies, 10) > 0) { query.replies = data.replies; query.repliesFilter = data.repliesFilter || 'atleast'; diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 30b67ef3a8..0c960f2234 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -5,10 +5,14 @@ function loadClient(language, namespace) { return Promise.resolve(jQuery.getJSON(config.relative_path + '/api/language/' + language + '/' + encodeURIComponent(namespace))); } + var warn = function () {}; + if (typeof config === 'object' && config.environment === 'development') { + warn = console.warn.bind(console); + } if (typeof define === 'function' && define.amd) { // AMD. Register as a named module define('translator', ['string'], function (string) { - return factory(string, loadClient); + return factory(string, loadClient, warn); }); } else if (typeof module === 'object' && module.exports) { // Node @@ -16,6 +20,13 @@ require('promise-polyfill'); var languages = require('../../../src/languages'); + if (global.env === 'development') { + var winston = require('winston'); + warn = function (a) { + winston.warn(a); + }; + } + function loadServer(language, namespace) { return new Promise(function (resolve, reject) { languages.get(language, namespace, function (err, data) { @@ -28,12 +39,12 @@ }); } - module.exports = factory(require('string'), loadServer); + module.exports = factory(require('string'), loadServer, warn); }()); } else { - window.translator = factory(window.string, loadClient); + window.translator = factory(window.string, loadClient, warn); } -}(function (string, load) { +}(function (string, load, warn) { 'use strict'; var assign = Object.assign || jQuery.extend; function classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -238,6 +249,7 @@ } if (namespace && !key) { + warn('Missing key in translation token "' + name + '"'); return Promise.resolve('[[' + namespace + ']]'); } @@ -256,6 +268,7 @@ var translatedArgs = result.slice(1); if (!translated) { + warn('Missing translation "' + name + '"'); return key; } var out = translated; @@ -276,7 +289,7 @@ Translator.prototype.getTranslation = function getTranslation(namespace, key) { var translation; if (!namespace) { - console.warn('[translator] Parameter `namespace` is ' + namespace + (namespace === '' ? '(empty string)' : '')); + warn('[translator] Parameter `namespace` is ' + namespace + (namespace === '' ? '(empty string)' : '')); translation = Promise.resolve({}); } else { translation = this.translations[namespace] = this.translations[namespace] || this.load(this.lang, namespace); @@ -441,7 +454,7 @@ Translator.create(lang).translate(text).then(function (output) { return cb(output); }).catch(function (err) { - console.error('Translation failed: ' + err.stack); + warn('Translation failed: ' + err.stack); }); }, diff --git a/public/src/overrides.js b/public/src/overrides.js index a5216910d2..95c9c3d69e 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -111,43 +111,6 @@ if ('undefined' !== typeof window) { }); }()); - overrides.overrideBootbox = function () { - require(['translator'], function (translator) { - var dialog = bootbox.dialog, - prompt = bootbox.prompt, - confirm = bootbox.confirm; - - function translate(modal) { - var header = modal.find('.modal-header'), - footer = modal.find('.modal-footer'); - translator.translate(header.html(), function (html) { - header.html(html); - }); - translator.translate(footer.html(), function (html) { - footer.html(html); - }); - } - - bootbox.dialog = function () { - var modal = $(dialog.apply(this, arguments)[0]); - translate(modal); - return modal; - }; - - bootbox.prompt = function () { - var modal = $(prompt.apply(this, arguments)[0]); - translate(modal); - return modal; - }; - - bootbox.confirm = function () { - var modal = $(confirm.apply(this, arguments)[0]); - translate(modal); - return modal; - }; - }); - }; - overrides.overrideTimeago = function () { var timeagoFn = $.fn.timeago; if (parseInt(config.timeagoCutoff, 10) === 0) { @@ -156,6 +119,8 @@ if ('undefined' !== typeof window) { $.timeago.settings.cutoff = 1000 * 60 * 60 * 24 * (parseInt(config.timeagoCutoff, 10) || 30); } + $.timeago.settings.allowFuture = true; + $.fn.timeago = function () { var els = $(this); diff --git a/public/vendor/bootbox/bootbox.js b/public/vendor/bootbox/bootbox.js new file mode 100644 index 0000000000..15a5527f4a --- /dev/null +++ b/public/vendor/bootbox/bootbox.js @@ -0,0 +1,830 @@ +/** + * bootbox.js [v4.4.0] + * + * http://bootboxjs.com/license.txt + */ + +// @see https://github.com/makeusabrew/bootbox/issues/180 +// @see https://github.com/makeusabrew/bootbox/issues/186 +(function (root, factory) { + + "use strict"; + + // ** removed require.js and commonjs module definitions + + // Browser globals (root is window) + root.bootbox = factory(root.jQuery); + +}(this, function init($, undefined) { + + "use strict"; + + // the base DOM structure needed to create a modal + var templates = { + dialog: + "", + header: + "", + footer: + "", + closeButton: + "", + form: + "
    ", + inputs: { + text: + "", + textarea: + "", + email: + "", + select: + "", + checkbox: + "
    ", + date: + "", + time: + "", + number: + "", + password: + "" + } + }; + + var defaults = { + // default language + locale: "en", + // show backdrop or not. Default to static so user has to interact with dialog + backdrop: "static", + // animate the modal in/out + animate: true, + // additional class string applied to the top level dialog + className: null, + // whether or not to include a close button + closeButton: true, + // show the dialog immediately by default + show: true, + // dialog container + container: "body" + }; + + // our public object; augmented after our private API + var exports = {}; + + /** + * @private + */ + function _t(key) { + var locale = locales[defaults.locale]; + return locale ? locale[key] : locales.en[key]; + } + + function processCallback(e, dialog, callback) { + e.stopPropagation(); + e.preventDefault(); + + // by default we assume a callback will get rid of the dialog, + // although it is given the opportunity to override this + + // so, if the callback can be invoked and it *explicitly returns false* + // then we'll set a flag to keep the dialog active... + var preserveDialog = $.isFunction(callback) && callback.call(dialog, e) === false; + + // ... otherwise we'll bin it + if (!preserveDialog) { + dialog.modal("hide"); + } + } + + function getKeyLength(obj) { + // @TODO defer to Object.keys(x).length if available? + var k, t = 0; + for (k in obj) { + t ++; + } + return t; + } + + function each(collection, iterator) { + var index = 0; + $.each(collection, function(key, value) { + iterator(key, value, index++); + }); + } + + function sanitize(options) { + var buttons; + var total; + + if (typeof options !== "object") { + throw new Error("Please supply an object of options"); + } + + if (!options.message) { + throw new Error("Please specify a message"); + } + + // make sure any supplied options take precedence over defaults + options = $.extend({}, defaults, options); + + if (!options.buttons) { + options.buttons = {}; + } + + buttons = options.buttons; + + total = getKeyLength(buttons); + + each(buttons, function(key, button, index) { + + if ($.isFunction(button)) { + // short form, assume value is our callback. Since button + // isn't an object it isn't a reference either so re-assign it + button = buttons[key] = { + callback: button + }; + } + + // before any further checks make sure by now button is the correct type + if ($.type(button) !== "object") { + throw new Error("button with key " + key + " must be an object"); + } + + if (!button.label) { + // the lack of an explicit label means we'll assume the key is good enough + button.label = key; + } + + if (!button.className) { + if (total <= 2 && index === total-1) { + // always add a primary to the main option in a two-button dialog + button.className = "btn-primary"; + } else { + button.className = "btn-default"; + } + } + }); + + return options; + } + + /** + * map a flexible set of arguments into a single returned object + * if args.length is already one just return it, otherwise + * use the properties argument to map the unnamed args to + * object properties + * so in the latter case: + * mapArguments(["foo", $.noop], ["message", "callback"]) + * -> { message: "foo", callback: $.noop } + */ + function mapArguments(args, properties) { + var argn = args.length; + var options = {}; + + if (argn < 1 || argn > 2) { + throw new Error("Invalid argument length"); + } + + if (argn === 2 || typeof args[0] === "string") { + options[properties[0]] = args[0]; + options[properties[1]] = args[1]; + } else { + options = args[0]; + } + + return options; + } + + /** + * merge a set of default dialog options with user supplied arguments + */ + function mergeArguments(defaults, args, properties) { + return $.extend( + // deep merge + true, + // ensure the target is an empty, unreferenced object + {}, + // the base options object for this type of dialog (often just buttons) + defaults, + // args could be an object or array; if it's an array properties will + // map it to a proper options object + mapArguments( + args, + properties + ) + ); + } + + /** + * this entry-level method makes heavy use of composition to take a simple + * range of inputs and return valid options suitable for passing to bootbox.dialog + */ + function mergeDialogOptions(className, labels, properties, args) { + // build up a base set of dialog properties + var baseOptions = { + className: "bootbox-" + className, + buttons: createLabels.apply(null, labels) + }; + + // ensure the buttons properties generated, *after* merging + // with user args are still valid against the supplied labels + return validateButtons( + // merge the generated base properties with user supplied arguments + mergeArguments( + baseOptions, + args, + // if args.length > 1, properties specify how each arg maps to an object key + properties + ), + labels + ); + } + + /** + * from a given list of arguments return a suitable object of button labels + * all this does is normalise the given labels and translate them where possible + * e.g. "ok", "confirm" -> { ok: "OK, cancel: "Annuleren" } + */ + function createLabels() { + var buttons = {}; + + for (var i = 0, j = arguments.length; i < j; i++) { + var argument = arguments[i]; + var key = argument.toLowerCase(); + var value = argument.toUpperCase(); + + buttons[key] = { + label: _t(value) + }; + } + + return buttons; + } + + function validateButtons(options, buttons) { + var allowedButtons = {}; + each(buttons, function(key, value) { + allowedButtons[value] = true; + }); + + each(options.buttons, function(key) { + if (allowedButtons[key] === undefined) { + throw new Error("button key " + key + " is not allowed (options are " + buttons.join("\n") + ")"); + } + }); + + return options; + } + + exports.alert = function() { + var options; + + options = mergeDialogOptions("alert", ["ok"], ["message", "callback"], arguments); + + if (options.callback && !$.isFunction(options.callback)) { + throw new Error("alert requires callback property to be a function when provided"); + } + + /** + * overrides + */ + options.buttons.ok.callback = options.onEscape = function() { + if ($.isFunction(options.callback)) { + return options.callback.call(this); + } + return true; + }; + + return exports.dialog(options); + }; + + exports.confirm = function() { + var options; + + options = mergeDialogOptions("confirm", ["cancel", "confirm"], ["message", "callback"], arguments); + + /** + * overrides; undo anything the user tried to set they shouldn't have + */ + options.buttons.cancel.callback = options.onEscape = function() { + return options.callback.call(this, false); + }; + + options.buttons.confirm.callback = function() { + return options.callback.call(this, true); + }; + + // confirm specific validation + if (!$.isFunction(options.callback)) { + throw new Error("confirm requires a callback"); + } + + return exports.dialog(options); + }; + + exports.prompt = function() { + var options; + var defaults; + var dialog; + var form; + var input; + var shouldShow; + var inputOptions; + + // we have to create our form first otherwise + // its value is undefined when gearing up our options + // @TODO this could be solved by allowing message to + // be a function instead... + form = $(templates.form); + + // prompt defaults are more complex than others in that + // users can override more defaults + // @TODO I don't like that prompt has to do a lot of heavy + // lifting which mergeDialogOptions can *almost* support already + // just because of 'value' and 'inputType' - can we refactor? + defaults = { + className: "bootbox-prompt", + buttons: createLabels("cancel", "confirm"), + value: "", + inputType: "text" + }; + + options = validateButtons( + mergeArguments(defaults, arguments, ["title", "callback"]), + ["cancel", "confirm"] + ); + + // capture the user's show value; we always set this to false before + // spawning the dialog to give us a chance to attach some handlers to + // it, but we need to make sure we respect a preference not to show it + shouldShow = (options.show === undefined) ? true : options.show; + + /** + * overrides; undo anything the user tried to set they shouldn't have + */ + options.message = form; + + options.buttons.cancel.callback = options.onEscape = function() { + return options.callback.call(this, null); + }; + + options.buttons.confirm.callback = function() { + var value; + + switch (options.inputType) { + case "text": + case "textarea": + case "email": + case "select": + case "date": + case "time": + case "number": + case "password": + value = input.val(); + break; + + case "checkbox": + var checkedItems = input.find("input:checked"); + + // we assume that checkboxes are always multiple, + // hence we default to an empty array + value = []; + + each(checkedItems, function(_, item) { + value.push($(item).val()); + }); + break; + } + + return options.callback.call(this, value); + }; + + options.show = false; + + // prompt specific validation + if (!options.title) { + throw new Error("prompt requires a title"); + } + + if (!$.isFunction(options.callback)) { + throw new Error("prompt requires a callback"); + } + + if (!templates.inputs[options.inputType]) { + throw new Error("invalid prompt type"); + } + + // create the input based on the supplied type + input = $(templates.inputs[options.inputType]); + + switch (options.inputType) { + case "text": + case "textarea": + case "email": + case "date": + case "time": + case "number": + case "password": + input.val(options.value); + break; + + case "select": + var groups = {}; + inputOptions = options.inputOptions || []; + + if (!$.isArray(inputOptions)) { + throw new Error("Please pass an array of input options"); + } + + if (!inputOptions.length) { + throw new Error("prompt with select requires options"); + } + + each(inputOptions, function(_, option) { + + // assume the element to attach to is the input... + var elem = input; + + if (option.value === undefined || option.text === undefined) { + throw new Error("given options in wrong format"); + } + + // ... but override that element if this option sits in a group + + if (option.group) { + // initialise group if necessary + if (!groups[option.group]) { + groups[option.group] = $("").attr("label", option.group); + } + + elem = groups[option.group]; + } + + elem.append(""); + }); + + each(groups, function(_, group) { + input.append(group); + }); + + // safe to set a select's value as per a normal input + input.val(options.value); + break; + + case "checkbox": + var values = $.isArray(options.value) ? options.value : [options.value]; + inputOptions = options.inputOptions || []; + + if (!inputOptions.length) { + throw new Error("prompt with checkbox requires options"); + } + + if (!inputOptions[0].value || !inputOptions[0].text) { + throw new Error("given options in wrong format"); + } + + // checkboxes have to nest within a containing element, so + // they break the rules a bit and we end up re-assigning + // our 'input' element to this container instead + input = $("
    "); + + each(inputOptions, function(_, option) { + var checkbox = $(templates.inputs[options.inputType]); + + checkbox.find("input").attr("value", option.value); + checkbox.find("label").append(option.text); + + // we've ensured values is an array so we can always iterate over it + each(values, function(_, value) { + if (value === option.value) { + checkbox.find("input").prop("checked", true); + } + }); + + input.append(checkbox); + }); + break; + } + + // @TODO provide an attributes option instead + // and simply map that as keys: vals + if (options.placeholder) { + input.attr("placeholder", options.placeholder); + } + + if (options.pattern) { + input.attr("pattern", options.pattern); + } + + if (options.maxlength) { + input.attr("maxlength", options.maxlength); + } + + // now place it in our form + form.append(input); + + form.on("submit", function(e) { + e.preventDefault(); + // Fix for SammyJS (or similar JS routing library) hijacking the form post. + e.stopPropagation(); + // @TODO can we actually click *the* button object instead? + // e.g. buttons.confirm.click() or similar + dialog.find(".btn-primary").click(); + }); + + dialog = exports.dialog(options); + + // clear the existing handler focusing the submit button... + dialog.off("shown.bs.modal"); + + // ...and replace it with one focusing our input, if possible + dialog.on("shown.bs.modal", function() { + // need the closure here since input isn't + // an object otherwise + input.focus(); + }); + + if (shouldShow === true) { + dialog.modal("show"); + } + + return dialog; + }; + + exports.dialog = function(options) { + options = sanitize(options); + + var dialog = $(templates.dialog); + var innerDialog = dialog.find(".modal-dialog"); + var body = dialog.find(".modal-body"); + var buttons = options.buttons; + var buttonStr = ""; + var callbacks = { + onEscape: options.onEscape + }; + + if ($.fn.modal === undefined) { + throw new Error( + "$.fn.modal is not defined; please double check you have included " + + "the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ " + + "for more details." + ); + } + + each(buttons, function(key, button) { + + // @TODO I don't like this string appending to itself; bit dirty. Needs reworking + // can we just build up button elements instead? slower but neater. Then button + // can just become a template too + buttonStr += ""; + callbacks[key] = button.callback; + }); + + body.find(".bootbox-body").html(options.message); + + if (options.animate === true) { + dialog.addClass("fade"); + } + + if (options.className) { + dialog.addClass(options.className); + } + + if (options.size === "large") { + innerDialog.addClass("modal-lg"); + } else if (options.size === "small") { + innerDialog.addClass("modal-sm"); + } + + if (options.title) { + body.before(templates.header); + } + + if (options.closeButton) { + var closeButton = $(templates.closeButton); + + if (options.title) { + dialog.find(".modal-header").prepend(closeButton); + } else { + closeButton.css("margin-top", "-10px").prependTo(body); + } + } + + if (options.title) { + dialog.find(".modal-title").html(options.title); + } + + if (buttonStr.length) { + body.after(templates.footer); + dialog.find(".modal-footer").html(buttonStr); + } + + + /** + * Bootstrap event listeners; used handle extra + * setup & teardown required after the underlying + * modal has performed certain actions + */ + + dialog.on("hidden.bs.modal", function(e) { + // ensure we don't accidentally intercept hidden events triggered + // by children of the current dialog. We shouldn't anymore now BS + // namespaces its events; but still worth doing + if (e.target === this) { + dialog.remove(); + } + }); + + /* + dialog.on("show.bs.modal", function() { + // sadly this doesn't work; show is called *just* before + // the backdrop is added so we'd need a setTimeout hack or + // otherwise... leaving in as would be nice + if (options.backdrop) { + dialog.next(".modal-backdrop").addClass("bootbox-backdrop"); + } + }); + */ + + dialog.on("shown.bs.modal", function() { + dialog.find(".btn-primary:first").focus(); + }); + + /** + * Bootbox event listeners; experimental and may not last + * just an attempt to decouple some behaviours from their + * respective triggers + */ + + if (options.backdrop !== "static") { + // A boolean true/false according to the Bootstrap docs + // should show a dialog the user can dismiss by clicking on + // the background. + // We always only ever pass static/false to the actual + // $.modal function because with `true` we can't trap + // this event (the .modal-backdrop swallows it) + // However, we still want to sort of respect true + // and invoke the escape mechanism instead + dialog.on("click.dismiss.bs.modal", function(e) { + // @NOTE: the target varies in >= 3.3.x releases since the modal backdrop + // moved *inside* the outer dialog rather than *alongside* it + if (dialog.children(".modal-backdrop").length) { + e.currentTarget = dialog.children(".modal-backdrop").get(0); + } + + if (e.target !== e.currentTarget) { + return; + } + + dialog.trigger("escape.close.bb"); + }); + } + + dialog.on("escape.close.bb", function(e) { + if (callbacks.onEscape) { + processCallback(e, dialog, callbacks.onEscape); + } + }); + + /** + * Standard jQuery event listeners; used to handle user + * interaction with our dialog + */ + + dialog.on("click", ".modal-footer button", function(e) { + var callbackKey = $(this).data("bb-handler"); + + processCallback(e, dialog, callbacks[callbackKey]); + }); + + dialog.on("click", ".bootbox-close-button", function(e) { + // onEscape might be falsy but that's fine; the fact is + // if the user has managed to click the close button we + // have to close the dialog, callback or not + processCallback(e, dialog, callbacks.onEscape); + }); + + dialog.on("keyup", function(e) { + if (e.which === 27) { + dialog.trigger("escape.close.bb"); + } + }); + + // the remainder of this method simply deals with adding our + // dialogent to the DOM, augmenting it with Bootstrap's modal + // functionality and then giving the resulting object back + // to our caller + + $(options.container).append(dialog); + + dialog.modal({ + backdrop: options.backdrop ? "static": false, + keyboard: false, + show: false + }); + + if (options.show) { + dialog.modal("show"); + } + + // @TODO should we return the raw element here or should + // we wrap it in an object on which we can expose some neater + // methods, e.g. var d = bootbox.alert(); d.hide(); instead + // of d.modal("hide"); + + /* + function BBDialog(elem) { + this.elem = elem; + } + + BBDialog.prototype = { + hide: function() { + return this.elem.modal("hide"); + }, + show: function() { + return this.elem.modal("show"); + } + }; + */ + + return dialog; + + }; + + exports.setDefaults = function() { + var values = {}; + + if (arguments.length === 2) { + // allow passing of single key/value... + values[arguments[0]] = arguments[1]; + } else { + // ... and as an object too + values = arguments[0]; + } + + $.extend(defaults, values); + }; + + exports.hideAll = function() { + $(".bootbox").modal("hide"); + + return exports; + }; + + + /** + * standard locales. Please add more according to ISO 639-1 standard. Multiple language variants are + * unlikely to be required. If this gets too large it can be split out into separate JS files. + */ + var locales = { + // ** removed all other languages + // ** use NodeBB translations instead + en : { + OK : "OK", + CANCEL : "Cancel", + CONFIRM : "OK" + }, + }; + + exports.addLocale = function(name, values) { + $.each(["OK", "CANCEL", "CONFIRM"], function(_, v) { + if (!values[v]) { + throw new Error("Please supply a translation for '" + v + "'"); + } + }); + + locales[name] = { + OK: values.OK, + CANCEL: values.CANCEL, + CONFIRM: values.CONFIRM + }; + + return exports; + }; + + exports.removeLocale = function(name) { + delete locales[name]; + + return exports; + }; + + exports.setLocale = function(name) { + return exports.setDefaults("locale", name); + }; + + exports.init = function(_$) { + return init(_$ || $); + }; + + return exports; +})); \ No newline at end of file diff --git a/public/vendor/bootbox/bootbox.min.js b/public/vendor/bootbox/bootbox.min.js deleted file mode 100644 index 1f85a1cf9e..0000000000 --- a/public/vendor/bootbox/bootbox.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * bootbox.js v4.4.0 - * - * http://bootboxjs.com/license.txt - * psychobunny - Removed require.js requirement - */ -!function(a,b){"use strict";a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d.call(c,a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
    ",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
    ",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:"static",animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback.call(this):!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,!1)},a.buttons.confirm.callback=function(){return a.callback.call(this,!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback.call(this,null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback.call(this,c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!b.isArray(k))throw new Error("Please pass an array of input options");if(!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
    "),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),a.maxlength&&h.attr("maxlength",a.maxlength),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var d=b(n.dialog),f=d.find(".modal-dialog"),i=d.find(".modal-body"),j=a.buttons,k="",l={onEscape:a.onEscape};if(b.fn.modal===c)throw new Error("$.fn.modal is not defined; please double check you have included the Bootstrap JavaScript library. See http://getbootstrap.com/javascript/ for more details.");if(g(j,function(a,b){k+="",l[a]=b.callback}),i.find(".bootbox-body").html(a.message),a.animate===!0&&d.addClass("fade"),a.className&&d.addClass(a.className),"large"===a.size?f.addClass("modal-lg"):"small"===a.size&&f.addClass("modal-sm"),a.title&&i.before(n.header),a.closeButton){var m=b(n.closeButton);a.title?d.find(".modal-header").prepend(m):m.css("margin-top","-10px").prependTo(i)}return a.title&&d.find(".modal-title").html(a.title),k.length&&(i.after(n.footer),d.find(".modal-footer").html(k)),d.on("hidden.bs.modal",function(a){a.target===this&&d.remove()}),d.on("shown.bs.modal",function(){d.find(".btn-primary:first").focus()}),"static"!==a.backdrop&&d.on("click.dismiss.bs.modal",function(a){d.children(".modal-backdrop").length&&(a.currentTarget=d.children(".modal-backdrop").get(0)),a.target===a.currentTarget&&d.trigger("escape.close.bb")}),d.on("escape.close.bb",function(a){l.onEscape&&e(a,d,l.onEscape)}),d.on("click",".modal-footer button",function(a){var c=b(this).data("bb-handler");e(a,d,l[c])}),d.on("click",".bootbox-close-button",function(a){e(a,d,l.onEscape)}),d.on("keyup",function(a){27===a.which&&d.trigger("escape.close.bb")}),b(a.container).append(d),d.modal({backdrop:a.backdrop?"static":!1,keyboard:!1,show:!1}),a.show&&d.modal("show"),d},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={bg_BG:{OK:"Ок",CANCEL:"Отказ",CONFIRM:"Потвърждавам"},br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fa:{OK:"قبول",CANCEL:"لغو",CONFIRM:"تایید"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},hu:{OK:"OK",CANCEL:"Mégsem",CONFIRM:"Megerősít"},hr:{OK:"OK",CANCEL:"Odustani",CONFIRM:"Potvrdi"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sq:{OK:"OK",CANCEL:"Anulo",CONFIRM:"Prano"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},th:{OK:"ตกลง",CANCEL:"ยกเลิก",CONFIRM:"ยืนยัน"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.addLocale=function(a,c){return b.each(["OK","CANCEL","CONFIRM"],function(a,b){if(!c[b])throw new Error("Please supply a translation for '"+b+"'")}),q[a]={OK:c.OK,CANCEL:c.CANCEL,CONFIRM:c.CONFIRM},p},p.removeLocale=function(a){return delete q[a],p},p.setLocale=function(a){return p.setDefaults("locale",a)},p.init=function(c){return a(c||b)},p}); \ No newline at end of file diff --git a/public/vendor/bootbox/wrapper.js b/public/vendor/bootbox/wrapper.js new file mode 100644 index 0000000000..8e54e0e7db --- /dev/null +++ b/public/vendor/bootbox/wrapper.js @@ -0,0 +1,69 @@ +/* global bootbox */ + +require(['translator'], function (shim) { + "use strict"; + + function descendantTextNodes(node) { + var textNodes = []; + + function helper(node) { + if (node.nodeType === 3) { + textNodes.push(node); + } else { + for (var i = 0, c = node.childNodes, l = c.length; i < l; i += 1) { + helper(c[i]); + } + } + } + + helper(node); + return textNodes; + } + + var translator = shim.Translator.create(); + var dialog = bootbox.dialog; + bootbox.dialog = function (options) { + var show, $elem, nodes, text; + + show = options.show !== false; + options.show = false; + + $elem = dialog.call(bootbox, options); + + if (/\[\[.+\]\]/.test($elem[0].outerHTML)) { + nodes = descendantTextNodes($elem[0]); + text = nodes.map(function (node) { + return node.nodeValue; + }).join(' || '); + + translator.translate(text).then(function (translated) { + translated.split(' || ').forEach(function (html, i) { + $(nodes[i]).replaceWith(html); + }); + if (show) { + $elem.modal('show'); + } + }); + } else if (show) { + $elem.modal('show'); + } + + return $elem; + }; + + Promise.all([ + translator.translateKey('modules:bootbox.ok', []), + translator.translateKey('modules:bootbox.cancel', []), + translator.translateKey('modules:bootbox.confirm', []), + ]).then(function (translations) { + var lang = shim.getLanguage(); + bootbox.addLocale(lang, { + OK: translations[0], + CANCEL: translations[1], + CONFIRM: translations[2], + }); + + bootbox.setLocale(lang); + }); +}); + diff --git a/src/admin/search.js b/src/admin/search.js index 8f567071bf..0bd140e3ba 100644 --- a/src/admin/search.js +++ b/src/admin/search.js @@ -54,7 +54,7 @@ function simplify(translations) { function nsToTitle(namespace) { return namespace.replace('admin/', '').split('/').map(function (str) { return str[0].toUpperCase() + str.slice(1); - }).join(' > '); + }).join(' > ').replace(/[^a-zA-Z> ]/g, ' '); } var fallbackCacheInProgress = {}; @@ -67,15 +67,17 @@ function initFallback(namespace, callback) { } var template = file.toString(); + var title = nsToTitle(namespace); var translations = sanitize(template); translations = Translator.removePatterns(translations); translations = simplify(translations); - translations += '\n' + nsToTitle(namespace); + translations += '\n' + title; callback(null, { namespace: namespace, translations: translations, + title: title, }); }); } @@ -124,17 +126,32 @@ function initDict(language, callback) { var str = Object.keys(translations).map(function (key) { return translations[key]; }).join('\n'); + str = sanitize(str); + + var title = namespace; + if (/admin\/general\/dashboard$/.test(title)) { + title = '[[admin/menu:general/dashboard]]'; + } else { + title = title.match(/admin\/(.+?)\/(.+?)$/); + title = '[[admin/menu:section-' + + (title[1] === 'development' ? 'advanced' : title[1]) + + ']]' + (title[2] ? (' > [[admin/menu:' + + title[1] + '/' + title[2] + ']]') : ''); + } - next(null, { - namespace: namespace, - translations: str, - }); - } + Translator.create(language).translate(title).then(function (title) { + next(null, { + namespace: namespace, + translations: str + '\n' + title, + title: title, + }); + }).catch(err); + }, ], function (err, params) { if (err) { return fallback(namespace, function (err, params) { if (err) { - return cb({ + return cb(null, { namespace: namespace, translations: '', }); diff --git a/src/controllers/admin/blacklist.js b/src/controllers/admin/blacklist.js index d70b1d1d79..c9ba71169e 100644 --- a/src/controllers/admin/blacklist.js +++ b/src/controllers/admin/blacklist.js @@ -9,7 +9,7 @@ blacklistController.get = function (req, res, next) { if (err) { return next(err); } - res.render('admin/manage/ip-blacklist', {rules: rules, title: 'IP Blacklist'}); + res.render('admin/manage/ip-blacklist', { rules: rules }); }); }; diff --git a/src/controllers/search.js b/src/controllers/search.js index 5967cfc88e..2261e4f3b7 100644 --- a/src/controllers/search.js +++ b/src/controllers/search.js @@ -33,6 +33,7 @@ searchController.search = function (req, res, next) { postedBy: req.query.by, categories: req.query.categories, searchChildren: req.query.searchChildren, + hasTags: req.query.hasTags, replies: req.query.replies, repliesFilter: req.query.repliesFilter, timeRange: req.query.timeRange, diff --git a/src/meta/dependencies.js b/src/meta/dependencies.js index 6c5be29e99..3f892c37ab 100644 --- a/src/meta/dependencies.js +++ b/src/meta/dependencies.js @@ -31,18 +31,19 @@ module.exports = function (Meta) { try { pkgData = JSON.parse(pkgData); - var ok = !semver.validRange(pkg.dependencies[module]) || semver.satisfies(pkgData.version, pkg.dependencies[module]); - - if (ok || (pkgData._resolved && pkgData._resolved.indexOf('//github.com') !== -1)) { - next(true); - } else { - process.stdout.write('[' + 'outdated'.yellow + '] ' + module.bold + ' installed v' + pkgData.version + ', package.json requires ' + pkg.dependencies[module] + '\n'); - depsOutdated = true; - next(true); - } } catch(e) { process.stdout.write('[' + 'missing'.red + '] ' + module.bold + ' is a required dependency but could not be found\n'); depsMissing = true; + return next(true); + } + + var ok = !semver.validRange(pkg.dependencies[module]) || semver.satisfies(pkgData.version, pkg.dependencies[module]); + + if (ok || (pkgData._resolved && pkgData._resolved.indexOf('//github.com') !== -1)) { + next(true); + } else { + process.stdout.write('[' + 'outdated'.yellow + '] ' + module.bold + ' installed v' + pkgData.version + ', package.json requires ' + pkg.dependencies[module] + '\n'); + depsOutdated = true; next(true); } }); diff --git a/src/meta/js.js b/src/meta/js.js index 947550f37e..87a51d9667 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -25,7 +25,8 @@ module.exports = function (Meta) { 'public/vendor/jquery/textcomplete/jquery.textcomplete.js', 'public/vendor/requirejs/require.js', 'public/src/require-config.js', - 'public/vendor/bootbox/bootbox.min.js', + 'public/vendor/bootbox/bootbox.js', + 'public/vendor/bootbox/wrapper.js', 'public/vendor/tinycon/tinycon.js', 'public/vendor/xregexp/xregexp.js', 'public/vendor/xregexp/unicode/unicode-base.js', diff --git a/src/search.js b/src/search.js index 7f03634625..d77b1f58f0 100644 --- a/src/search.js +++ b/src/search.js @@ -126,6 +126,7 @@ function filterAndSort(pids, data, callback) { posts = filterByPostcount(posts, data.replies, data.repliesFilter); posts = filterByTimerange(posts, data.timeRange, data.timeFilter); + posts = filterByTags(posts, data.hasTags); sortPosts(posts, data); @@ -166,6 +167,7 @@ function getMatchedPosts(pids, data, callback) { var keys = pids.map(function (pid) { return 'post:' + pid; }); + db.getObjectsFields(keys, postFields, next); }, function (_posts, next) { @@ -185,7 +187,7 @@ function getMatchedPosts(pids, data, callback) { } }, topics: function (next) { - var topics; + var topicsData; async.waterfall([ function (next) { var topicKeys = posts.map(function (post) { @@ -194,12 +196,12 @@ function getMatchedPosts(pids, data, callback) { db.getObjectsFields(topicKeys, topicFields, next); }, function (_topics, next) { - topics = _topics; + topicsData = _topics; async.parallel({ teasers: function (next) { if (topicFields.indexOf('teaserPid') !== -1) { - var teaserKeys = topics.map(function (topic) { + var teaserKeys = topicsData.map(function (topic) { return 'post:' + topic.teaserPid; }); db.getObjectsFields(teaserKeys, ['timestamp'], next); @@ -211,10 +213,20 @@ function getMatchedPosts(pids, data, callback) { if (!categoryFields.length) { return next(); } - var cids = topics.map(function (topic) { + var cids = topicsData.map(function (topic) { return 'category:' + topic.cid; }); db.getObjectsFields(cids, categoryFields, next); + }, + tags: function (next) { + if (data.hasTags && data.hasTags.length) { + var tids = posts.map(function (post) { + return post && post.tid; + }); + topics.getTopicsTags(tids, next); + } else { + setImmediate(next); + } } }, next); } @@ -223,16 +235,19 @@ function getMatchedPosts(pids, data, callback) { return next(err); } - topics.forEach(function (topic, index) { + topicsData.forEach(function (topic, index) { if (topic && results.categories && results.categories[index]) { topic.category = results.categories[index]; } if (topic && results.teasers && results.teasers[index]) { topic.teaser = results.teasers[index]; } + if (topic && results.tags && results.tags[index]) { + topic.tags = results.tags[index]; + } }); - next(null, topics); + next(null, topicsData); }); } }, next); @@ -297,6 +312,21 @@ function filterByTimerange(posts, timeRange, timeFilter) { return posts; } +function filterByTags(posts, hasTags) { + if (hasTags && hasTags.length) { + posts = posts.filter(function (post) { + var hasAllTags = false; + if (post && post.topic && post.topic.tags && post.topic.tags.length) { + hasAllTags = hasTags.every(function (tag) { + return post.topic.tags.indexOf(tag) !== -1; + }); + } + return hasAllTags; + }); + } + return posts; +} + function sortPosts(posts, data) { if (!posts.length || !data.sortBy) { return; diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index a4ebfeb44e..2f6ab50698 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -1,6 +1,7 @@ 'use strict'; +var async = require('async'); var os = require('os'); var nconf = require('nconf'); var winston = require('winston'); @@ -68,7 +69,7 @@ SocketRooms.getAll = function (socket, data, callback) { category: 0 }; - for(var instance in stats) { + for (var instance in stats) { if (stats.hasOwnProperty(instance)) { totals.onlineGuestCount += stats[instance].onlineGuestCount; totals.onlineRegisteredCount += stats[instance].onlineRegisteredCount; @@ -99,30 +100,31 @@ SocketRooms.getAll = function (socket, data, callback) { return topic.tid; }); - topics.getTopicsFields(topTenTids, ['title'], function (err, titles) { - if (err) { - return callback(err); + async.waterfall([ + function (next) { + topics.getTopicsFields(topTenTids, ['title'], next); + }, + function (titles, next) { + totals.topics = {}; + topTenTopics.forEach(function (topic, index) { + totals.topics[topic.tid] = { + value: topic.count || 0, + title: validator.escape(String(titles[index].title)) + }; + }); + next(null, totals); } - totals.topics = {}; - topTenTopics.forEach(function (topic, index) { - totals.topics[topic.tid] = { - value: topic.count || 0, - title: validator.escape(String(titles[index].title)) - }; - }); - - callback(null, totals); - }); + ], callback); }; SocketRooms.getOnlineUserCount = function (io) { - if (!io) { - return 0; - } var count = 0; - for (var key in io.sockets.adapter.rooms) { - if (io.sockets.adapter.rooms.hasOwnProperty(key) && key.startsWith('uid_')) { - ++ count; + + if (io) { + for (var key in io.sockets.adapter.rooms) { + if (io.sockets.adapter.rooms.hasOwnProperty(key) && key.startsWith('uid_')) { + ++ count; + } } } @@ -132,45 +134,51 @@ SocketRooms.getOnlineUserCount = function (io) { SocketRooms.getLocalStats = function (callback) { var io = require('../index').server; - if (!io) { - return callback(); - } - - var roomClients = io.sockets.adapter.rooms; var socketData = { - onlineGuestCount: roomClients.online_guests ? roomClients.online_guests.length : 0, - onlineRegisteredCount: SocketRooms.getOnlineUserCount(io), - socketCount: Object.keys(io.sockets.sockets).length, + onlineGuestCount: 0, + onlineRegisteredCount: 0, + socketCount: 0, users: { - categories: roomClients.categories ? roomClients.categories.length : 0, - recent: roomClients.recent_topics ? roomClients.recent_topics.length : 0, - unread: roomClients.unread_topics ? roomClients.unread_topics.length : 0, + categories: 0, + recent: 0, + unread: 0, topics: 0, category: 0 }, topics: {} }; - var topTenTopics = []; - var tid; - - for (var room in roomClients) { - if (roomClients.hasOwnProperty(room)) { - tid = room.match(/^topic_(\d+)/); - if (tid) { - socketData.users.topics += roomClients[room].length; - topTenTopics.push({tid: tid[1], count: roomClients[room].length}); - } else if (room.match(/^category/)) { - socketData.users.category += roomClients[room].length; + if (io) { + var roomClients = io.sockets.adapter.rooms; + socketData.onlineGuestCount = roomClients.online_guests ? roomClients.online_guests.length : 0; + socketData.onlineRegisteredCount = SocketRooms.getOnlineUserCount(io); + socketData.socketCount = Object.keys(io.sockets.sockets).length; + socketData.users.categories = roomClients.categories ? roomClients.categories.length : 0; + socketData.users.recent = roomClients.recent_topics ? roomClients.recent_topics.length : 0; + socketData.users.unread = roomClients.unread_topics ? roomClients.unread_topics.length : 0; + + var topTenTopics = []; + var tid; + + for (var room in roomClients) { + if (roomClients.hasOwnProperty(room)) { + tid = room.match(/^topic_(\d+)/); + if (tid) { + socketData.users.topics += roomClients[room].length; + topTenTopics.push({tid: tid[1], count: roomClients[room].length}); + } else if (room.match(/^category/)) { + socketData.users.category += roomClients[room].length; + } } } - } - topTenTopics = topTenTopics.sort(function (a, b) { - return b.count - a.count; - }).slice(0, 10); + topTenTopics = topTenTopics.sort(function (a, b) { + return b.count - a.count; + }).slice(0, 10); + + socketData.topics = topTenTopics; + } - socketData.topics = topTenTopics; callback(null, socketData); }; diff --git a/src/socket.io/posts/tools.js b/src/socket.io/posts/tools.js index 06f7e0b22c..dec866ce70 100644 --- a/src/socket.io/posts/tools.js +++ b/src/socket.io/posts/tools.js @@ -15,47 +15,47 @@ var social = require('../../social'); module.exports = function (SocketPosts) { SocketPosts.loadPostTools = function (socket, data, callback) { - if (!data) { + if (!data || !data.pid || !data.cid) { return callback(new Error('[[error:invalid-data]]')); } - - async.parallel({ - posts: function (next) { - posts.getPostFields(data.pid, ['deleted', 'bookmarks', 'uid'], next); - }, - isAdminOrMod: function (next) { - privileges.categories.isAdminOrMod(data.cid, socket.uid, next); - }, - canEdit: function (next) { - privileges.posts.canEdit(data.pid, socket.uid, next); - }, - canDelete: function (next) { - privileges.posts.canDelete(data.pid, socket.uid, next); - }, - bookmarked: function (next) { - posts.hasBookmarked(data.pid, socket.uid, next); - }, - tools: function (next) { - plugins.fireHook('filter:post.tools', {pid: data.pid, uid: socket.uid, tools: []}, next); + async.waterfall([ + function (next) { + async.parallel({ + posts: function (next) { + posts.getPostFields(data.pid, ['deleted', 'bookmarks', 'uid'], next); + }, + isAdminOrMod: function (next) { + privileges.categories.isAdminOrMod(data.cid, socket.uid, next); + }, + canEdit: function (next) { + privileges.posts.canEdit(data.pid, socket.uid, next); + }, + canDelete: function (next) { + privileges.posts.canDelete(data.pid, socket.uid, next); + }, + bookmarked: function (next) { + posts.hasBookmarked(data.pid, socket.uid, next); + }, + tools: function (next) { + plugins.fireHook('filter:post.tools', {pid: data.pid, uid: socket.uid, tools: []}, next); + }, + postSharing: function (next) { + social.getActivePostSharing(next); + } + }, next); }, - postSharing: function (next) { - social.getActivePostSharing(next); - } - }, function (err, results) { - if (err) { - return callback(err); + function (results, next) { + results.posts.tools = results.tools.tools; + results.posts.deleted = parseInt(results.posts.deleted, 10) === 1; + results.posts.bookmarked = results.bookmarked; + results.posts.selfPost = socket.uid && socket.uid === parseInt(results.posts.uid, 10); + results.posts.display_edit_tools = results.canEdit.flag; + results.posts.display_delete_tools = results.canDelete.flag; + results.posts.display_moderator_tools = results.posts.display_edit_tools || results.posts.display_delete_tools; + results.posts.display_move_tools = results.isAdminOrMod; + next(null, results); } - - results.posts.tools = results.tools.tools; - results.posts.deleted = parseInt(results.posts.deleted, 10) === 1; - results.posts.bookmarked = results.bookmarked; - results.posts.selfPost = socket.uid && socket.uid === parseInt(results.posts.uid, 10); - results.posts.display_edit_tools = results.canEdit.flag; - results.posts.display_delete_tools = results.canDelete.flag; - results.posts.display_moderator_tools = results.posts.display_edit_tools || results.posts.display_delete_tools; - results.posts.display_move_tools = results.isAdminOrMod; - callback(null, results); - }); + ], callback); }; SocketPosts.delete = function (socket, data, callback) { @@ -98,29 +98,31 @@ module.exports = function (SocketPosts) { return callback(new Error('[[error:invalid-data]]')); } - posts.tools.restore(socket.uid, data.pid, function (err, postData) { - if (err) { - return callback(err); - } + async.waterfall([ + function (next) { + posts.tools.restore(socket.uid, data.pid, next); + }, + function (postData, next) { - websockets.in('topic_' + data.tid).emit('event:post_restored', postData); + websockets.in('topic_' + data.tid).emit('event:post_restored', postData); - events.log({ - type: 'post-restore', - uid: socket.uid, - pid: data.pid, - ip: socket.ip - }); + events.log({ + type: 'post-restore', + uid: socket.uid, + pid: data.pid, + ip: socket.ip + }); - callback(); - }); + setImmediate(next); + } + ], callback); }; SocketPosts.deletePosts = function (socket, data, callback) { if (!data || !Array.isArray(data.pids)) { return callback(new Error('[[error:invalid-data]]')); } - async.each(data.pids, function (pid, next) { + async.eachSeries(data.pids, function (pid, next) { SocketPosts.delete(socket, {pid: pid, tid: data.tid}, next); }, callback); }; @@ -129,66 +131,61 @@ module.exports = function (SocketPosts) { if (!data || !Array.isArray(data.pids)) { return callback(new Error('[[error:invalid-data]]')); } - async.each(data.pids, function (pid, next) { + async.eachSeries(data.pids, function (pid, next) { SocketPosts.purge(socket, {pid: pid, tid: data.tid}, next); }, callback); }; SocketPosts.purge = function (socket, data, callback) { - function purgePost() { - var postData; - async.waterfall([ - function (next) { - posts.getPostField(data.pid, 'toPid', next); - }, - function (toPid, next) { - postData = {pid: data.pid, toPid: toPid}; - posts.tools.purge(socket.uid, data.pid, next); - }, - function (next) { - websockets.in('topic_' + data.tid).emit('event:post_purged', postData); - topics.getTopicField(data.tid, 'title', next); - }, - function (title, next) { - events.log({ - type: 'post-purge', - uid: socket.uid, - pid: data.pid, - ip: socket.ip, - title: validator.escape(String(title)) - }, next); - } - ], callback); - } - if (!data || !parseInt(data.pid, 10)) { return callback(new Error('[[error:invalid-data]]')); } - - isMainAndLastPost(data.pid, function (err, results) { - if (err) { - return callback(err); - } - - if (!results.isMain) { - return purgePost(); - } - - if (!results.isLast) { - return callback(new Error('[[error:cant-purge-main-post]]')); + var postData; + async.waterfall([ + function (next) { + isMainAndLastPost(data.pid, next); + }, + function (results, next) { + if (results.isMain && !results.isLast) { + return callback(new Error('[[error:cant-purge-main-post]]')); + } + if (results.isMain && results.isLast) { + deleteTopicOf(data.pid, socket, next); + } + setImmediate(next); + }, + function (next) { + posts.getPostField(data.pid, 'toPid', next); + }, + function (toPid, next) { + postData = {pid: data.pid, toPid: toPid}; + posts.tools.purge(socket.uid, data.pid, next); + }, + function (next) { + websockets.in('topic_' + data.tid).emit('event:post_purged', postData); + topics.getTopicField(data.tid, 'title', next); + }, + function (title, next) { + events.log({ + type: 'post-purge', + uid: socket.uid, + pid: data.pid, + ip: socket.ip, + title: validator.escape(String(title)) + }, next); } - - deleteTopicOf(data.pid, socket, callback); - }); + ], callback); }; function deleteTopicOf(pid, socket, callback) { - posts.getTopicFields(pid, ['tid', 'cid'], function (err, topic) { - if (err) { - return callback(err); + async.waterfall([ + function (next) { + posts.getTopicFields(pid, ['tid', 'cid'], next); + }, + function (topic, next) { + socketTopics.doTopicAction('delete', 'event:topic_deleted', socket, {tids: [topic.tid], cid: topic.cid}, next); } - socketTopics.doTopicAction('delete', 'event:topic_deleted', socket, {tids: [topic.tid], cid: topic.cid}, callback); - }); + ], callback); } function isMainAndLastPost(pid, callback) { diff --git a/src/socket.io/topics/tools.js b/src/socket.io/topics/tools.js index 62e159f9fd..b124c7e3fd 100644 --- a/src/socket.io/topics/tools.js +++ b/src/socket.io/topics/tools.js @@ -1,7 +1,6 @@ 'use strict'; var async = require('async'); -var winston = require('winston'); var validator = require('validator'); var topics = require('../../topics'); @@ -89,31 +88,37 @@ module.exports = function (SocketTopics) { } async.each(data.tids, function (tid, next) { - topics.tools[action](tid, socket.uid, function (err, data) { - if (err) { - return next(err); + async.waterfall([ + function (next) { + topics.tools[action](tid, socket.uid, next); + }, + function (data, next) { + socketHelpers.emitToTopicAndCategory(event, data); + logTopicAction(action, socket, tid, next); } - - socketHelpers.emitToTopicAndCategory(event, data); - - if (action === 'delete' || action === 'restore' || action === 'purge') { - topics.getTopicField(tid, 'title', function (err, title) { - if (err) { - return winston.error(err); - } - events.log({ - type: 'topic-' + action, - uid: socket.uid, - ip: socket.ip, - tid: tid, - title: validator.escape(String(title)) - }); - }); - } - - next(); - }); + ], next); }, callback); }; + function logTopicAction(action, socket, tid, callback) { + var actionsToLog = ['delete', 'restore', 'purge']; + if (actionsToLog.indexOf(action) === -1) { + return setImmediate(callback); + } + async.waterfall([ + function (next) { + topics.getTopicField(tid, 'title', next); + }, + function (title, next) { + events.log({ + type: 'topic-' + action, + uid: socket.uid, + ip: socket.ip, + tid: tid, + title: validator.escape(String(title)) + }, next); + } + ], callback); + } + }; \ No newline at end of file diff --git a/src/topics/tags.js b/src/topics/tags.js index db1be50fbe..a360de290e 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -203,6 +203,13 @@ module.exports = function (Topics) { db.getSetMembers('topic:' + tid + ':tags', callback); }; + Topics.getTopicsTags = function (tids, callback) { + var keys = tids.map(function (tid) { + return 'topic:' + tid + ':tags'; + }); + db.getSetsMembers(keys, callback); + }; + Topics.getTopicTagsObjects = function (tid, callback) { Topics.getTopicsTagsObjects([tid], function (err, data) { callback(err, Array.isArray(data) && data.length ? data[0] : []); diff --git a/src/views/admin/advanced/cache.tpl b/src/views/admin/advanced/cache.tpl index bd01bf99e0..70f82ab5db 100644 --- a/src/views/admin/advanced/cache.tpl +++ b/src/views/admin/advanced/cache.tpl @@ -2,25 +2,25 @@
    -
    Post Cache
    +
    [[admin/advanced/cache:post-cache]]
    -
    +
    {postCache.itemCount}
    -
    +
    {postCache.avgPostSize}
    -
    +
    {postCache.length} / {postCache.max}
    - {postCache.percentFull}% Full + [[admin/advanced/cache:percent-full, {postCache.percentFull}]]
    - +
    @@ -30,15 +30,15 @@
    Group Cache
    -
    +
    {groupCache.itemCount}
    -
    +
    {groupCache.length} / {groupCache.max}
    - {groupCache.percentFull}% Full + [[admin/advanced/cache:percent-full, {groupCache.percentFull}]]
    @@ -51,9 +51,9 @@
    -
    Control Panel
    +
    [[admin/advanced/cache:control-panel]]
    - +
    diff --git a/src/views/admin/advanced/database.tpl b/src/views/admin/advanced/database.tpl index 4ebd277f55..0773a27adc 100644 --- a/src/views/admin/advanced/database.tpl +++ b/src/views/admin/advanced/database.tpl @@ -2,27 +2,27 @@
    -
    Mongo
    +
    [[admin/advanced/database:mongo]]
    - MongoDB Version {mongo.version}
    + [[admin/advanced/database:mongo.version]] {mongo.version}

    - Uptime in Seconds {mongo.uptime}
    - Storage Engine {mongo.storageEngine}
    - Collections {mongo.collections}
    - Objects {mongo.objects}
    - Avg. Object Size {mongo.avgObjSize} b
    + [[admin/advanced/database:uptime-seconds]] {mongo.uptime}
    + [[admin/advanced/database:mongo.storage-engine]] {mongo.storageEngine}
    + [[admin/advanced/database:mongo.collections]] {mongo.collections}
    + [[admin/advanced/database:mongo.objects]] {mongo.objects}
    + [[admin/advanced/database:mongo.avg-object-size]] [[admin/advanced/database:x-b, {mongo.avgObjSize}]]

    - Data Size {mongo.dataSize} mb
    - Storage Size {mongo.storageSize} mb
    - Index Size {mongo.indexSize} mb
    + [[admin/advanced/database:mongo.data-size]] [[admin/advanced/database:x-mb, {mongo.dataSize}]]
    + [[admin/advanced/database:mongo.storage-size]] [[admin/advanced/database:x-mb, {mongo.storageSize}]]
    + [[admin/advanced/database:mongo.index-size]] [[admin/advanced/database:x-mb, {mongo.indexSize}]]
    - File Size {mongo.fileSize} mb
    + [[admin/advanced/database:mongo.file-size]] [[admin/advanced/database:x-mb, {mongo.fileSize}]]

    - Resident Memory {mongo.mem.resident} mb
    - Virtual Memory {mongo.mem.virtual} mb
    - Mapped Memory {mongo.mem.mapped} mb
    + [[admin/advanced/database:mongo.resident-memory]] [[admin/advanced/database:x-mb, {mongo.mem.resident}]]
    + [[admin/advanced/database:mongo.virtual-memory]] [[admin/advanced/database:x-mb, {mongo.mem.virtual]]
    + [[admin/advanced/database:mongo.mapped-memory]] [[admin/advanced/database:x-mb, {mongo.mem.mapped}]]
    @@ -30,28 +30,28 @@
    -
    Redis
    +
    [[admin/advanced/database:redis]]
    - Redis Version {redis.redis_version}
    + [[admin/advanced/database:redis.version]] {redis.redis_version}

    - Uptime in Seconds {redis.uptime_in_seconds}
    - Uptime in Days {redis.uptime_in_days}
    + [[admin/advanced/database:uptime-seconds]] {redis.uptime_in_seconds}
    + [[admin/advanced/database:uptime-days]] {redis.uptime_in_days}

    - Connected Clients {redis.connected_clients}
    - Connected Slaves {redis.connected_slaves}
    - Blocked Clients {redis.blocked_clients}
    + [[admin/advanced/database:redis.connected-clients]] {redis.connected_clients}
    + [[admin/advanced/database:redis.connected-slaves]] {redis.connected_slaves}
    + [[admin/advanced/database:redis.blocked-clients]] {redis.blocked_clients}

    - Used Memory {redis.used_memory_human}
    - Memory Fragmentation Ratio {redis.mem_fragmentation_ratio}
    + [[admin/advanced/database:redis.used-memory]] {redis.used_memory_human}
    + [[admin/advanced/database:redis.memory-frag-ratio]] {redis.mem_fragmentation_ratio}

    - Total Connections Received {redis.total_connections_received}
    - Total Commands Processed {redis.total_commands_processed}
    - Instantaneous Ops. Per Second {redis.instantaneous_ops_per_sec}
    + [[admin/advanced/database:redis.total-connections-recieved]] {redis.total_connections_received}
    + [[admin/advanced/database:redis.total-commands-processed]] {redis.total_commands_processed}
    + [[admin/advanced/database:redis.iops]] {redis.instantaneous_ops_per_sec}

    - Keyspace Hits {redis.keyspace_hits}
    - Keyspace Misses {redis.keyspace_misses}
    + [[admin/advanced/database:redis.keyspace-hits]] {redis.keyspace_hits}
    + [[admin/advanced/database:redis.keyspace-misses]] {redis.keyspace_misses}
    @@ -60,7 +60,7 @@
    -

    MongoDB Raw Info

    +

    [[admin/advanced/database:mongo.raw-info]]

    @@ -74,7 +74,7 @@
    -

    Redis Raw Info

    +

    [[admin/advanced/database:redis.raw-info]]

    diff --git a/src/views/admin/advanced/errors.tpl b/src/views/admin/advanced/errors.tpl index d3c23e78b7..f5f0838c31 100644 --- a/src/views/admin/advanced/errors.tpl +++ b/src/views/admin/advanced/errors.tpl @@ -6,7 +6,10 @@
    - +
    @@ -14,18 +17,25 @@
    - +
    -
    Manage Error Log
    +
    [[admin/advanced/errors:manage-error-log]]
    - Export Error Log (CSV) - + + [[admin/advanced/errors:export-error-log]] + +
    @@ -35,12 +45,14 @@
    -
    404 Not Found
    +
    + [[admin/advanced/errors:error.404]] +
    - - + + @@ -53,7 +65,7 @@ diff --git a/src/views/admin/advanced/events.tpl b/src/views/admin/advanced/events.tpl index f1c0973501..b80f56ed6e 100644 --- a/src/views/admin/advanced/events.tpl +++ b/src/views/admin/advanced/events.tpl @@ -1,10 +1,10 @@
    -
    Events
    +
    [[admin/advanced/events:events]]
    -
    There are no events
    +
    [[admin/advanced/events:no-events]]
    @@ -30,9 +30,11 @@
    -
    Events Control Panel
    +
    - +
    diff --git a/src/views/admin/advanced/logs.tpl b/src/views/admin/advanced/logs.tpl index 9eda8fc383..a8f8a501a3 100644 --- a/src/views/admin/advanced/logs.tpl +++ b/src/views/admin/advanced/logs.tpl @@ -1,7 +1,7 @@
    -
    Logs
    +
    [[admin/advanced/logs:logs]]
    {data}
    @@ -9,10 +9,14 @@
    -
    Logs Control Panel
    +
    [[admin/advanced/logs:control-panel]]
    - - + +
    diff --git a/src/views/admin/appearance/customise.tpl b/src/views/admin/appearance/customise.tpl index b4d54bec13..f2fdbcea60 100644 --- a/src/views/admin/appearance/customise.tpl +++ b/src/views/admin/appearance/customise.tpl @@ -1,13 +1,13 @@

    - Enter your own CSS declarations here, which will be applied after all other styles. + [[admin/appearance/customise:custom-css.description]]

    @@ -17,14 +17,14 @@

    - Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup. + [[admin/appearance/customise:custom-header.description]]

    @@ -35,7 +35,7 @@
    diff --git a/src/views/admin/development/info.tpl b/src/views/admin/development/info.tpl index c4f9ddde1b..50963d4d8c 100644 --- a/src/views/admin/development/info.tpl +++ b/src/views/admin/development/info.tpl @@ -1,20 +1,20 @@
    -

    Info - You are on {host}:{port}

    +

    [[admin/development/info:you-are-on, {host}, {port}]]

    RouteCount[[admin/advanced/errors:route]][[admin/advanced/errors:count]]
    - Hooray! There are no routes that were not found. + [[admin/advanced/errors:no-routes-not-found]]
    - - - - - - - + + + + + + + @@ -23,7 +23,11 @@ - + @@ -37,7 +41,7 @@
    -

    Info

    +

    [[admin/development/info:info]]

    diff --git a/src/views/admin/development/logger.tpl b/src/views/admin/development/logger.tpl index 4a280238b7..7b33625931 100644 --- a/src/views/admin/development/logger.tpl +++ b/src/views/admin/development/logger.tpl @@ -1,33 +1,33 @@
    -
    Logger Settings
    +
    [[admin/development/logger:logger-settings]]

    - By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals. + [[admin/development/logger:description]]


    - Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed. + [[admin/development/logger:explanation]]






    - - + +
    @@ -36,9 +36,9 @@
    -
    Logger Control Panel
    +
    [[admin/development/logger:control-panel]]
    - +
    diff --git a/src/views/admin/extend/plugins.tpl b/src/views/admin/extend/plugins.tpl index 07c51bcb73..7afffd5e08 100644 --- a/src/views/admin/extend/plugins.tpl +++ b/src/views/admin/extend/plugins.tpl @@ -1,12 +1,12 @@
    @@ -41,24 +41,24 @@
    -
    Plugin Search
    +
    [[admin/extend/plugins:plugin-search]]
    -
    +
    -
    Re-order Plugins
    +
    [[admin/extend/plugins:reorder-plugins]]
    - +
    -
    Interested in writing plugins for NodeBB?
    +
    [[admin/extend/plugins:dev-interested]]

    - Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal. + [[admin/extend/plugins:docs-info]]

    @@ -70,20 +70,20 @@
    diff --git a/src/views/admin/extend/rewards.tpl b/src/views/admin/extend/rewards.tpl index 9d2a2fd0f4..b4256a41d3 100644 --- a/src/views/admin/extend/rewards.tpl +++ b/src/views/admin/extend/rewards.tpl @@ -1,14 +1,14 @@
    -
    Rewards
    +
    [[admin/extend/rewards:rewards]]
    • -
      +
      -
      +
      -
      +
      - Enter 0 for infinite + [[admin/extend/rewards:zero-infinite]]
      - + - + - +
    @@ -66,10 +66,10 @@
    -
    Rewards Control
    +
    [[admin/extend/rewards:control-panel]]
    - - + +
    diff --git a/src/views/admin/extend/widgets.tpl b/src/views/admin/extend/widgets.tpl index 381d03794e..07b8b5c193 100644 --- a/src/views/admin/extend/widgets.tpl +++ b/src/views/admin/extend/widgets.tpl @@ -28,12 +28,12 @@
    -
    Available Widgets
    +
    [[admin/extend/widgets:available]]
    -

    Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.

    +

    [[admin/extend/widgets:explanation]]

    -
    No widgets found! Activate the essential widgets plugin in the plugins control panel.
    +
    [[none-installed, {config.relative_path}/admin/extend/plugins]]

    @@ -14,14 +14,14 @@


    diff --git a/src/views/admin/general/languages.tpl b/src/views/admin/general/languages.tpl index 1a2f56f185..310d1a366d 100644 --- a/src/views/admin/general/languages.tpl +++ b/src/views/admin/general/languages.tpl @@ -1,16 +1,14 @@
    -
    Language Settings
    +
    [[admin/general/languages:language-settings]]

    - The default language determines the language settings for all users who - are visiting your forum.
    - Individual users can override the default language on their account settings page. + [[admin/general/languages:description]]

    - +
    - +
    - +
    - +
    - +
    - +
    - Properties: + [[admin/general/navigation:properties]]
    - Installed Plugins Required: + [[admin/general/navigation:installed-plugins-required]]
    - + - + - + @@ -108,7 +109,7 @@
    -
    Available Menu Items
    +
    [[admin/general/navigation:available-menu-items]]
    • @@ -116,7 +117,7 @@

    - Custom Route + [[admin/general/navigation:custom-route]]

    @@ -126,7 +127,7 @@

    {available.text} {available.route}
    - core plugin + [[admin/general/navigation:core]] [[admin/general/navigation:plugin]]

    diff --git a/src/views/admin/general/social.tpl b/src/views/admin/general/social.tpl index 5ce9ccfc84..152dcef3fa 100644 --- a/src/views/admin/general/social.tpl +++ b/src/views/admin/general/social.tpl @@ -1,7 +1,7 @@ diff --git a/src/views/admin/general/sounds.tpl b/src/views/admin/general/sounds.tpl index 1154f4ec75..d37447d56e 100644 --- a/src/views/admin/general/sounds.tpl +++ b/src/views/admin/general/sounds.tpl @@ -2,9 +2,9 @@
    -
    Notifications
    +
    [[admin/general/sounds:notifications]]
    - +
    - +
    -
    Chat Messages
    +
    [[admin/general/sounds:chat-messages]]
    - +
    - +
    - +
    - +
    - +
    diff --git a/src/views/admin/manage/category-analytics.tpl b/src/views/admin/manage/category-analytics.tpl index eb02abd141..a582a3599e 100644 --- a/src/views/admin/manage/category-analytics.tpl +++ b/src/views/admin/manage/category-analytics.tpl @@ -1,6 +1,8 @@ - Back to Categories List + + [[admin/manage/categories:analytics.back]] + -

    Analytics for "{name}" category

    +

    [[admin/manage/categories:analytics.title, {name}]]


    @@ -12,7 +14,7 @@

    - +
    @@ -23,7 +25,7 @@

    - +
    @@ -36,7 +38,7 @@

    - +
    @@ -47,7 +49,7 @@

    - +
    \ No newline at end of file diff --git a/src/views/admin/manage/category.tpl b/src/views/admin/manage/category.tpl index 7b2638b584..4d006ad191 100644 --- a/src/views/admin/manage/category.tpl +++ b/src/views/admin/manage/category.tpl @@ -1,8 +1,10 @@

    @@ -10,30 +12,40 @@
    - -
    + +
    - -
    + +
    - +
    - +
    - - @@ -42,19 +54,25 @@

    - +
    - +
    - +
    @@ -81,38 +99,53 @@
    - +
    - +

    - +
    - +
    - +
    - +

    - +
    - +
    @@ -120,12 +153,10 @@

    - You can configure the access control privileges for this category in this section. Privileges can be granted on a per-user or - a per-group basis. You can add a new user to this table by searching for them in the form below. + [[admin/manage/categories:privileges.description]]

    - Note: Privilege settings take effect immediately. It is not necessary to save the category after adjusting - these settings. + [[admin/manage/categories:privileges.warning]]


    @@ -139,4 +170,3 @@ - diff --git a/src/views/admin/manage/group.tpl b/src/views/admin/manage/group.tpl index a50fdba51b..f119f51914 100644 --- a/src/views/admin/manage/group.tpl +++ b/src/views/admin/manage/group.tpl @@ -3,27 +3,27 @@
    - + readonly/>
    - +
    - +
    -
    +

    - + {group.userTitle}
    @@ -31,7 +31,7 @@
    @@ -39,13 +39,14 @@
    @@ -55,7 +56,8 @@
    @@ -63,17 +65,18 @@
    - - + +
      @@ -81,7 +84,7 @@
      -

      Member List

      +

      [[admin/manage/groups:edit.members]]

      @@ -95,14 +98,16 @@
      -
      Groups Control Panel
      +
      [[admin/manage/groups:control-panel]]
      - +
      - +
      diff --git a/src/views/admin/manage/groups.tpl b/src/views/admin/manage/groups.tpl index 363a123ec1..c2b0ca2f32 100644 --- a/src/views/admin/manage/groups.tpl +++ b/src/views/admin/manage/groups.tpl @@ -4,20 +4,22 @@
      hostpidnodejsonlinegitloaduptime[[admin/development/info:host]][[admin/development/info:pid]][[admin/development/info:nodejs]][[admin/development/info:online]][[admin/development/info:git]][[admin/development/info:load]][[admin/development/info:uptime]]
      {info.os.hostname}:{info.process.port} {info.process.pid} {info.process.version}{info.stats.onlineRegisteredCount} / {info.stats.onlineGuestCount} / {info.stats.socketCount} + {info.stats.onlineRegisteredCount} / + {info.stats.onlineGuestCount} / + {info.stats.socketCount} + {info.git.branch}@{info.git.hash} {info.os.load} {info.process.uptime}
      - - + +
      Group NameGroup Description[[admin/manage/groups:name]][[admin/manage/groups:description]]
      {groups.displayName} - System Group + [[admin/manage/groups:system]]
      - Edit + + [[admin/manage/groups:edit]] + @@ -36,7 +38,7 @@
      - +
      @@ -47,24 +49,28 @@
      diff --git a/src/views/admin/manage/ip-blacklist.tpl b/src/views/admin/manage/ip-blacklist.tpl index 26170b286e..23f54ff04a 100644 --- a/src/views/admin/manage/ip-blacklist.tpl +++ b/src/views/admin/manage/ip-blacklist.tpl @@ -1,12 +1,10 @@

      - Configure your IP blacklist here. + [[admin/manage/ip-blacklist:lead]]

      - Occasionally, a user account ban is not enough of a deterrant. Other times, restricting access to the forum to a specific IP or a range of IPs - is the best way to protect a forum. In these scenarios, you can add troublesome IP addresses or entire CIDR blocks to this blacklist, and - they will be prevented from logging in to or registering a new account. + [[admin/manage/ip-blacklist:description]]

      @@ -15,21 +13,24 @@
      -
      Active Rules
      +
      [[admin/manage/ip-blacklist:active-rules]]
      - - + +
      -
      Syntax Hints
      +
      [[admin/manage/ip-blacklist:hints]]

      - Define a single IP addresses per line. You can add IP blocks as long as they follow the CIDR format (e.g. - 192.168.100.0/22). + [[admin/manage/ip-blacklist:hint-1]]

      - You can add in comments by starting lines with the # symbol. + [[admin/manage/ip-blacklist:hint-2]]

      diff --git a/src/views/admin/manage/registration.tpl b/src/views/admin/manage/registration.tpl index 8b28b2ef0f..f8504fb31d 100644 --- a/src/views/admin/manage/registration.tpl +++ b/src/views/admin/manage/registration.tpl @@ -1,21 +1,19 @@
      - Queue + [[admin/manage/registration:queue]]

      - There are no users in the registration queue.
      - To enable this feature, go to Settings → User → User Registration and set - Registration Type to "Admin Approval". + [[admin/manage/registration:description, {config.relative_path}/admin/settings/user]]

      - - - - + + + + @@ -25,7 +23,7 @@
      NameEmail[[admin/manage/registration:list.name]][[admin/manage/registration:list.email]]
      - + @@ -33,7 +31,7 @@ - + @@ -41,7 +39,7 @@