Browse Source

feat: Persian locale + RTL initial support + browser locales fixes

pull/249/head v1.0.9
Nicolas Giard 7 years ago
committed by GitHub
parent
commit
7957a12216
31 changed files with 535 additions and 24 deletions
  1. 9
      CHANGELOG.md
  2. 9
      README.md
  3. 1
      client/scss/app.scss
  4. 28
      client/scss/layout/_rtl.scss
  5. 5
      config.sample.yml
  6. 2
      package.json
  7. 1
      server/app/data.yml
  8. 10
      server/locales/es/browser.json
  9. 82
      server/locales/fa/admin.json
  10. 32
      server/locales/fa/auth.json
  11. 116
      server/locales/fa/browser.json
  12. 51
      server/locales/fa/common.json
  13. 30
      server/locales/fa/errors.json
  14. 6
      server/locales/fa/git.json
  15. 37
      server/locales/ko/admin.json
  16. 104
      server/locales/ko/browser.json
  17. 4
      server/locales/ko/common.json
  18. 2
      server/locales/ko/errors.json
  19. 8
      server/locales/nl/admin.json
  20. 2
      server/locales/nl/common.json
  21. 2
      server/locales/pt/admin.json
  22. 4
      server/locales/pt/common.json
  23. 1
      server/locales/tr/admin.json
  24. 1
      server/locales/tr/auth.json
  25. 1
      server/locales/tr/browser.json
  26. 1
      server/locales/tr/common.json
  27. 1
      server/locales/tr/errors.json
  28. 1
      server/locales/tr/git.json
  29. 4
      server/locales/zh/admin.json
  30. 2
      server/views/layout.pug
  31. 2
      tools/fuse_tasks.js

9
CHANGELOG.md

@ -2,6 +2,14 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [v1.0.9] - 2017-09-14
### Added
- **Localization**: Persian (farsi) locale is now available (thanks to @ashkang)
- **UI**: Support for right-to-left languages
### Fixed
- **i18n**: Browser locale files not generated properly (ported from dev branch)
## [v1.0.8] - 2017-08-31
### Changed
- **Misc**: Updated dependencies
@ -217,6 +225,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Changed
- Updated dependencies + snyk policy
[v1.0.9]: https://github.com/Requarks/wiki/releases/tag/v1.0.9
[v1.0.8]: https://github.com/Requarks/wiki/releases/tag/v1.0.8
[v1.0.7]: https://github.com/Requarks/wiki/releases/tag/v1.0.7
[v1.0.6]: https://github.com/Requarks/wiki/releases/tag/v1.0.6

9
README.md

@ -53,12 +53,12 @@ You can also use a Dockerfile ([see example](https://github.com/Requarks/wiki/bl
Current and upcoming milestones *(major features only, see the [changelog](https://github.com/Requarks/wiki/blob/master/CHANGELOG.md) for complete list of features and bug fixes)*:
### 1.0.8 - Stable
### 1.0.9 - Stable
![Progress](http://progressed.io/bar/100)
- [x] Fix: Azure AD client Id is now referenced correctly ([#219](https://github.com/Requarks/wiki/issues/219))
- [x] Fix: Git Branch is now referenced correctly ([#215](https://github.com/Requarks/wiki/issues/215))
- [x] Updated dependencies
- [x] Persian (farsi) locale is now available (thanks to @ashkang)
- [x] Added Support for right-to-left languages
- [x] Fix: Browser locale files not generated properly (ported from dev branch)
### 2.0.0 - Dev
![Progress](http://progressed.io/bar/25)
@ -118,6 +118,7 @@ We are looking for translators to make Wiki.js available in multiple languages.
- [x] French
- [x] German - *Thanks to [@joetjengerdes](https://github.com/joetjengerdes)*
- [x] Korean - *Thanks to [@junwonpk](https://github.com/junwonpk)*
- [x] Persian - *Thanks to [@ashkang](https://github.com/ashkang)*
- [x] Portuguese - *Thanks to [@felipeplets](https://github.com/felipeplets)*
- [x] Russian - *Thanks to [@efimlosev](https://github.com/efimlosev)*
- [x] Spanish - *Thanks to [@MatiasArriola](https://github.com/MatiasArriola)*

1
client/scss/app.scss

@ -41,6 +41,7 @@ $primary: 'indigo';
@import 'layout/_header';
@import 'layout/_loader';
@import 'layout/_rtl';
@import 'pages/_welcome';

28
client/scss/layout/_rtl.scss

@ -0,0 +1,28 @@
.rtl {
direction: rtl;
.button i {
margin-left: 8px;
margin-right: 0px;
}
.nav-right .nav-item {
padding: 0 10px 0 0;
}
.nav-item h1 i {
margin-left: 8px;
margin-right: 8px;
}
.sidebar aside .sidebar-menu li a i {
margin-left: 7px;
margin-right: 0;
}
.mkcontent {
ul {
padding: 10px 40px 10px 0;
}
}
}

5
config.sample.yml

@ -44,10 +44,13 @@ uploads:
# ---------------------------------------------------------------------
# Site Language
# ---------------------------------------------------------------------
# Possible values: en, es, fr, ko, ru or zh
# Possible values: en, de, es, fa, fr, ko, nl, pt, ru, sr, tr or zh
lang: en
# Enable for right to left languages (e.g. arabic):
langRtl: false
# ---------------------------------------------------------------------
# Site Authentication
# ---------------------------------------------------------------------

2
package.json

@ -1,6 +1,6 @@
{
"name": "wiki",
"version": "1.0.8",
"version": "1.0.9",
"description": "A modern, lightweight and powerful wiki app built on NodeJS, Git and Markdown",
"main": "wiki.js",
"scripts": {

1
server/app/data.yml

@ -15,6 +15,7 @@ defaults:
maxImageFileSize: 3,
maxOtherFileSize: 100
lang: en
langRtl: false
public: false
auth:
defaultReadAccess: false

10
server/locales/es/browser.json

@ -45,6 +45,16 @@
"videosupportedtitle": "Los siguientes están soportados:",
"videotitle": "Insertar Video"
},
"history": {
"pastversions": "Versiones Previas",
"timestamp": "Marca de tiempo",
"author": "Autor",
"commit": "Commit",
"comparewith": "Comparar con...",
"view": "Ver",
"reverttoversion": "Volver a la Versión",
"sidebyside": "Vista lado a lado"
},
"modal": {
"abort": "Abortar",
"anchorerror": "Falló la copia del Portapapeles. Copie la URL manualmente.",

82
server/locales/fa/admin.json

@ -0,0 +1,82 @@
{
"profile": {
"displayname": "نام کامل",
"displaynameexample": "علی علوی",
"email": "ایمیل",
"lastprofileupdate": "آخرین زمان به روز رسانی پروفایل",
"membersince": "تاریخ عضویت",
"password": "گذرواژه",
"passwordverify": "تایید گذرواژه",
"provider": "سرویس‌دهنده",
"savechanges": "ذخیره تغییرات",
"subtitle": "اطلاعات پروفایل و سیستم احراز هویت",
"tfa": "احراز هویت دو مرحله‌ای",
"tfadisable": "غیرفعال کردن سیستم احراز هویت دو مرحله‌ای",
"tfadisabled": "غیرفعال",
"tfaenable": "فعال کردن سیستم احراز هویت دو مرحله‌ای",
"tfaenabled": "فعال"
},
"stats": {
"subtitle": "آمار کلی وبسایت",
"entries": "مدخل",
"uploads": "آپلودها",
"users": "کاربران"
},
"settings": {
"subtitle": "مدیریت تنظیمات وبسایت"
},
"system": {
"subtitle": "ابزارها و اطلاعات برای ویکی شما",
"systemversion": "نسخه سیستم",
"currentversion": "نسخه فعلی",
"latestversion": "آخرین نسخه",
"upgrade": "ارتقاء",
"reinstall": "نصب مجدد نسخه فعلی",
"versioncheckfailed": "امکان پیدا کردن آخرین نسخه نرم افزار وجود ندارد. لطفا بعدا امتحان کنید.",
"administrativetools": "ابزارهای مدیریت",
"flushcache": "پاک کردن کش و بازسازی فهرست‌ها",
"flushcachetext": "اگر به نظر میرسد محتوای وبسایت به روز نیست یا آخرین تغییرات در آن وجود ندارد، پاک کردن کش احتمالا میتواند به حل این مشکل کمک کند.",
"flushcachebtn": "پاک کردن و بازسازی",
"resetaccounts": "ریست کردن حسابهای کاربری سیستمی به حالت پیش‌فرض",
"resetaccountstext": "حسابهای کاربری سیستمی (مثل حساب مهمان) به حالت پیش‌فرض برخواهند گشت.",
"resetaccountsbtn": "ریست کردن حسابهای سیستمی",
"flushsessions": "پاک کردن نشست تمام کاربران آنلاین",
"flushsessionstext": "نشست تمام کاربرانی که در حال حاضر مشغول استفاده از وبسایت هستند پاک و باید مجددا وارد سیستم شوند.",
"flushsessionsbtn": "پاک‌کردن نشست‌ها",
"hostinfo": "اطلاعات مربوط به سیستم میزبان",
"os": "سیستم عامل",
"nodeversion": "نسخه نود‌جی‌اس",
"hostname": "نام میزبان",
"cores": "تعداد هسته‌های پردازنده",
"totalmem": "مجموع حافظه",
"cwd": "دایرکتوری کاری"
},
"theme": {
"subtitle": "تغییر ظاهر وبسایت",
"primarycolor": "رنگ اصلی",
"primarycolordesc": "در نوار ناوبری بالا، سرساز، پیوند‌ها و غیره استفاده میشود.",
"altcolor": "رنگ دوم",
"altcolordesc": "در نوارابزار گوشه استفاده میشود (با رنگ کمی تیره‌تر)",
"footercolor": "رنگ پاورقی",
"footercolordesc": "برای پاورقی پایین صفحه استفاده میشود (با رنگ کمی روشن‌تر)",
"codeblock": {
"title": "قطعات کد",
"dark": "استفاده از تم تیره",
"colorize": "رنگ‌آمیزی کد بر اساس سینتکس"
},
"savechanges": "ذخیره تغییرات",
"reset": "برگشت به وضعیت پیش‌فرض"
},
"users": {
"createauthorize": "مدیریت کاربران",
"subtitle": "ایجاد یا تغییر دسترسی کاربران به وبسایت",
"name": "نام",
"email": "آدرس ایمیل",
"provider": "سرویس‌دهنده",
"createdon": "ساخته شده در تاریخ",
"updatedon": "به روز رسانی شده در تاریخ",
"returntousers": "بازگشت به لیست کاربران",
"edituser": "ویرایش کاربر",
"uniqueid": "شناسه یکتا"
}
}

32
server/locales/fa/auth.json

@ -0,0 +1,32 @@
{
"loginrequired": "باید وارد سیستم شوید",
"loginusing": "وارد شدن به وسیله...",
"loginusingalt": "یا وارد شدن به وسیله...",
"fields": {
"emailuser": "ایمیل/شناسه کاربری",
"password": "گذرواژه"
},
"actions": {
"login": "ورود"
},
"errors": {
"invalidlogin": "شناسه کاربری نادرست",
"invalidloginmsg": "آدرس ایمیل یا گذرواژه نادرست است.",
"invaliduseremail": "آدرس ایمیل نامعتبر",
"loginerror": "خطا در ورود به سیستم",
"notyetauthorized": "هنوز اجازه ورود به وبسایت به شما داده نشده است.",
"toomanyattempts": "تلاش‌های ناموفق زیاد!",
"toomanyattemptsmsg": "شما در مدت زمان کوتاهی تلاشهای ناموفق بسیاری کرده‌اید. لطفا مجددا بعد از {{time}} امتحان کنید.",
"usernotfound": "کاربر پیدا نشد"
},
"providers": {
"local": "محلی",
"windowslive": "حساب مایکروسافت",
"azure": "حساب اکتیو دایرکتوری اژر مایکروسافت",
"google": "حساب گوگل",
"facebook": "فیسبوک",
"github": "گیتهاب",
"slack": "اسلک",
"ldap": "ال‌دپ/اکتیو دایرکتوری"
}
}

116
server/locales/fa/browser.json

@ -0,0 +1,116 @@
{
"editor": {
"codeblockinsert": "قطعه کد را وارد کنید",
"codeblocklanguage": "زبان",
"codeblockloading": "در حال بارگیری سینتکس {{name}}",
"codeblockloadingerror": "خطا: امکان بارگیری سینتکس برای این زبان وجود ندارد.",
"codeblocksuccess": "قطعه کد شما درج شد.",
"codeblocktitle": "درج قطعه کد",
"discard": "دور انداختن",
"filedeleteaction": "حذف",
"filedeleteloading": "در حال حذف فایل...",
"filedeletedefault": "این فایل",
"filedeletesuccess": "فایل با موفقیت حذف شد.",
"fileerror": "امکان دریافت فهرست به روز رسانی شده وجود ندارد.",
"filefolderempty": "این پوشه خالی است.",
"fileinsert": "الصاق پیوند به فایل",
"fileloading": "در حال دریافت فایلها...",
"filemoveaction": "انتقال به...",
"filemoveerror": "خطا در انتقال: {{err}}",
"filemoveloading": "در حال انتقال فایل...",
"filemovesuccess": "فایل با موفقیت منتقل شد.",
"fileprocessing": "در حال پردازش...",
"filerenameaction": "تغییر نام",
"filesuccess": "پیوند به فایل درج شد.",
"filetitle": "الصاق فایل",
"fileupload": "بارگذاری فایل",
"fileuploaderror": "خطا در بارگذاری: {{err}}",
"fileuploadsuccess": "فایلها با موفقیت بارگذاری شدند.",
"folders": "پوشه‌ها",
"foldersloading": "در حال دریافت لیست پوشه‌ها...",
"imagetitle": "الصاق عکس",
"imageinsert": "الصاق عکس",
"imagesuccess": "عکس الصاق شد.",
"imageupload": "بارگذاری عکس",
"imagealignleft": "چپ (پیش‌فرض)",
"imagealigncenter": "مرکز",
"imagealignright": "راست",
"imagealignlogo": "لوگوی صفحه",
"newfolder": "پوشه جدید",
"videoanymp4file": "هر فایل ام‌پی‌۴ استاندارد",
"videoinsert": "الصاق ویدئو",
"videolinktitle": "برای قرار دادن ویدئوی توکار، پیوند ویدئو را وارد کنید:",
"videonotsupported": "این پیوند نادرست است یا پشتیبانی نمی‌شود.",
"videosuccess": "کد ویدئو الصاق شد.",
"videosupportedtitle": "موارد زیر پشتیبانی میشوند:",
"videotitle": "الصاق ویدئو"
},
"history": {
"pastversions": "نسخه‌های پیشین",
"timestamp": "زمان",
"author": "نویسنده",
"commit": "کامیت",
"comparewith": "مقایسه کن با...",
"view": "نمایش",
"reverttoversion": "برگرداندن به نسخه",
"sidebyside": "نمایش پهلو به پهلو"
},
"modal": {
"abort": "قطع کردن",
"anchorerror": "کپی از کلیپ‌برد امکان‌پذیر نیست. لطفا پیوند را دستی وارد کنید.",
"anchorsuccess": "پیوند در کلیپ‌برد کپی شد.",
"anchortitle": "پیوند به این قسمت را کپی کن",
"copyclipboard": "کپی در کلیپ‌برد",
"create": "ایجاد",
"createpageinvalid": "مسیر این صفحه نادرست است.",
"createpagepath": "مسیر جدید صفحه را وارد کنید:",
"createpagetitle": "ایجاد صفحه جدید",
"createuser": "ایجاد حساب کاربری",
"createuserauthorize": "دسترسی دادن به کاربر",
"createuseremail": "آدرس ایمیل:",
"createuseremailplaceholder": "مثلا john.doe@company.com",
"createusername": "نام و نام خانوادگی:",
"createusernameplaceholder": "مثلا علی علوی",
"createuserpassword": "گذرواژه:",
"createuserprovider": "سرویس‌دهنده:",
"createusertitle": "ساخت حساب کاربری",
"delete": "حذف",
"deletefiletitle": "حذف شود؟",
"deletefilewarn": "آیا مطمئن هستید که میخواهید حذف شود؟",
"deleteusertitle": "حساب کاربری حذف شود؟",
"deleteuserwarning": "آیا مطمئن هستید که میخواهید حساب کاربری حذف شود؟ این عمل قابل بازگشت نیست.",
"discard": "دور انداختن",
"discardpagecreate": "آیا مطمئن هستید که میخواهید این صفحه را ترک کنید؟ تمام چیزهایی که تا این لحظه نوشتید از بین خواهند رفت.",
"discardpageedit": "آیا مطمئن هستید که میخواهید این صفحه را ترک کنید؟ تغییرات شما از بین خواهند رفت.",
"discardpagestay": "در این صفحه بمان",
"discardpagetitle": "دور ریخته شود؟",
"move": "انتقال",
"movepageinvalid": "مسیر این صفحه مجاز نیست یا نامعتبر است",
"movepagepath": "مسیر جدید این صفحه را وارد کنید:",
"movepageplaceholder": "نام صفحه",
"movepagetitle": "انتقال صفحه",
"movepagewarning": "توجه کنید که تغییر نام یا انتقال صفحه موجب خراب شدن پیوندهای سایر صفحات به این صفحه میشود. مطمئن شوید که سایر پیوندها به این صفحه را پس از انجام این کار درست خواهید کرد.",
"newfolderinvalid": "نام پوشه نامعتبر است!",
"newfolderloading": "در حال ساخت پوشه جدید...",
"newfoldername": "نام پوشه جدید را وارد کنید:",
"newfoldernameplaceholder": "نام پوشه",
"newfoldersuccess": "پوشه جدید با نام {{name}} ایجاد شد.",
"newfoldertitle": "پوشه جدید",
"renamefile": "تغییر نام",
"renamefileerror": "خطا در تغییر نام: {{err}}",
"renamefileinvalid": "نام این فایل نامعتبر است!",
"renamefileloading": "در حال تغییر نام فایل...",
"renamefilename": "نام جدید این فایل را (بدون پسوند) وارد کنید:",
"renamefilenameplaceholder": "نام فایل",
"renamefiletitle": "تغییر نام فایل"
},
"nav": {
"home": "خانه"
},
"search": {
"didyoumean": "منظورتان این بود؟",
"nomatch": "نتیجه‌ای برای جست و جوی شما یافت نشد",
"placeholder": "جستجو...",
"results": "نتایج جستجو"
}
}

51
server/locales/fa/common.json

@ -0,0 +1,51 @@
{
"wiki": "ویکی",
"header": {
"overview": "بررسی اجمالی",
"createdoc": "ایجاد سند جدید"
},
"footer": {
"poweredby": "ساخته شده به وسیله",
"home": "خانه",
"top": "بازگشت به بالای صفحه"
},
"sidebar": {
"nav": "ناوبری",
"navigation": "ناوبری",
"pagecontents": "محتویات صفحه",
"pastversions": "نسخه های پیشین"
},
"nav": {
"account": "حساب کاربری",
"allpages": "تمام صفحات",
"create": "ايجاد کردن",
"discard": "دور انداختن",
"edit": "ویرایش",
"history": "تاریخچه",
"login": "ورود",
"logout": "خروج",
"move": "انتقال",
"myprofile": "پروفایل من",
"normalview": "چشم‌انداز معمولی",
"root": "خانه",
"savechanges": "ذخیره تغییرات",
"savedocument": "ذخیره سند",
"settings": "تنظیمات",
"source": "منبع",
"stats": "آمار",
"sysinfo": "اطلاعات سیستم",
"syssettings": "تنظیمات سیستم",
"theme": "تم رنگ",
"users": "کاربران",
"viewlatest": "مشاهده آخرین"
},
"welcome": {
"title": "به ویکی خودتان خوش آمدید!",
"subtitle": "شروع و ساختن صفحه اصلی",
"createhome": "ایجاد صفحه اصلی"
},
"loading": {
"source": "درحال بارگیری منبع...",
"editor": "در حال بارگیری ویرایشگر..."
}
}

30
server/locales/fa/errors.json

@ -0,0 +1,30 @@
{
"alreadyexists": "این ورودی از پیش وجود دارد!",
"debugmsg": "ردپای دقیق برای اشکال زدائی",
"fileexists": "فایل {{path}} از پیش وجود دارد.",
"forbidden": "ممنوع",
"forbiddendetail": "متاسفانه شما اجازه لازم برای دسترسی به این صفحه را ندارید.",
"generic": "اشتباهی رخ داد",
"invalidaction": "عمل نامعتبر",
"invaliddestfolder": "پوشه مقصد نامعتبر است!",
"invalidfiletype": "نوع فایل نامعتبر است",
"invalidfolder": "پوشه نامعتبر",
"invalidoperation": "عملیات نامعتبر!",
"invalidpath": "مسیر صفحه نامعتبر است",
"invaliduserid": "شناسه کاربری نامعتبر",
"newpasswordtooshort": "گذرواژه جدید بسیار کوتاه است!",
"notexist": "مدخل {{path}} وجود ندارد!",
"notexistdetail": "آیا میخواهید این مدخل را ایجاد کنید؟",
"parentinvalid": "مدخل والد یک فایل معتبر نیست",
"parentisroot": "مدخل والد ریشه است.",
"remotetoolarge": "فایل خارجی بسیار بزرگ است",
"reservedname": "نمیتوانید سندی با این نام ایجاد کنید، چرا که نام این سند توسط سیستم رزرو شده است.",
"savefailed": "ذخیره سند با مشکل مواجه شد",
"starterfailed": "محتوای آغازگر بارگیری نشد!",
"unauthorized": "غیر مجاز",
"actions": {
"create": "ايجاد كردن",
"gohome": "بازگشت به خانه",
"loginas": "ورود به سیستم به عنوان..."
}
}

6
server/locales/fa/git.json

@ -0,0 +1,6 @@
{
"added": "مسیر {{path}} اضافه شد",
"deleted": "حذف/تغییرنام {{path}}",
"updated": "{{path}} به روز رسانی شد",
"uploaded": "مسیر {{path}} بارگذاری شد"
}

37
server/locales/ko/admin.json

@ -1,15 +1,20 @@
{
"profile": {
"displayname": "이름",
"displaynameexample": "박준원",
"displaynameexample": "홍길동",
"email": "이메일",
"lastprofileupdate": "최근 프로필 업데이트",
"membersince": "회원 가입일",
"password": "비밀번호",
"passwordverify": "비밀번호 확인",
"provider": "제공자",
"savechanges": "변경 사항 저장",
"subtitle": "프로필 및 인증 정보"
"savechanges": "변경사항 저장",
"subtitle": "프로필 및 인증 정보",
"tfa": "이중 인증",
"tfadisable": "이중 인증 해제",
"tfadisabled": "사용중지",
"tfaenable": "이중 인증 사용",
"tfaenabled": "사용"
},
"stats": {
"subtitle": "사이트 전체 통계",
@ -21,6 +26,7 @@
"subtitle": "사이트 구성 관리"
},
"system": {
"subtitle": "위키의 정보 및 유틸리티",
"systemversion": "시스템 버전",
"currentversion": "현재 버전",
"latestversion": "최신 버전",
@ -36,7 +42,30 @@
"resetaccountsbtn": "시스템 계정들 재설정",
"flushsessions": "모든 활성 사용자 세션 플러시",
"flushsessionstext": "모든 유저들이 로그아웃 됩니다. 당신의 지금 세션도 영향 받습니다.",
"flushsessionsbtn": "세션 플러시"
"flushsessionsbtn": "세션 플러시",
"hostinfo": "서버 정보",
"os": "운영 체제",
"nodeversion": "Node.js 버전",
"hostname": "서버 이름",
"cores": "CPU 코어 개수",
"totalmem": "총 메모리",
"cwd": "작업 폴더"
},
"theme": {
"subtitle": "위키의 색과 느낌을 바꿔보세요",
"primarycolor": "기본 색상",
"primarycolordesc": "상단 바, 제목, 링크 등에 쓰입니다.",
"altcolor": "포인트 색상",
"altcolordesc": "사이드 바에 쓰입니다 (어두운 톤)",
"footercolor": "하단 바 색상",
"footercolordesc": "하단 바에 쓰입니다 (밝은 톤)",
"codeblock": {
"title": "코드 블록",
"dark": "어두운 테마 사용",
"colorize": "코드 색상 강조하기"
},
"savechanges": "변경사항 저장",
"reset": "기본값으로 되돌리기"
},
"users": {
"createauthorize": "사용자 생성 / 허가",

104
server/locales/ko/browser.json

@ -1,6 +1,108 @@
{
"editor": {
"codeblockinsert": "코드 블록 삽입",
"codeblocklanguage": "언어",
"codeblockloading": "{{name}} 코드 문법 로딩중",
"codeblockloadingerror": "오류; 언어 문법을 가져오지 못했습니다",
"codeblocksuccess": "코드 블록이 삽입되었습니다",
"codeblocktitle": "코드 블록 삽입",
"discard": "취소",
"filedeleteaction": "삭제",
"filedeleteloading": "파일 삭제 중..",
"filedeletedefault": "이 파일",
"filedeletesuccess": "파일이 성공적으로 삭제되었습니다.",
"fileerror": "업데이트된 목록을 가져올 수 없습니다.",
"filefolderempty": "이 폴더는 비어 있습니다.",
"fileinsert": "파일에 링크 삽입",
"fileloading": "파일을 불러오는중..",
"filemoveaction": "로 이동...",
"filemoveerror": "이동 실패 : {{err}}",
"filemoveloading": "파일 이동 중...",
"filemovesuccess": "파일을 성공적으로 이동했습니다.",
"fileprocessing": "처리중...",
"filerenameaction": "이름 바꾸기",
"filesuccess": "파일 링크가 삽입되었습니다.",
"filetitle": "파일 삽입",
"fileupload": "파일 업로드",
"fileuploaderror": "업로드 실패 : {{err}}",
"fileuploadsuccess": "파일이 성공적으로 업로드되었습니다.",
"folders": "폴더",
"foldersloading": "폴더 목록을 불러 오는 중...",
"imagetitle": "이미지 삽입",
"imageinsert": "이미지 삽입",
"imagesuccess": "이미지가 삽입되었습니다.",
"imageupload": "이미지 업로드",
"imagealignleft": "왼쪽 (기본)",
"imagealigncenter": "가운데",
"imagealignright": "오른쪽",
"imagealignlogo": "Page Logo",
"newfolder": "새 폴더",
"videoanymp4file": "표준 .MP4 파일",
"videoinsert": "영상 삽입",
"videolinktitle": "삽입할 영상의 링크를 입력하세요:",
"videonotsupported": "URL이 유효하지 않거나 지원되지 않는 형식입니다",
"videosuccess": "비디오 코드가 삽입되었습니다",
"videosupportedtitle": "아래 항목을 지원합니다:",
"videotitle": "영상 삽입"
},
"history": {
"pastversions": "지난 버전들",
"timestamp": "생성일",
"author": "작성자",
"commit": "변경ID",
"comparewith": "비교하기",
"view": "시각화",
"reverttoversion": "이전 버전으로 되돌리기",
"sidebyside": "나란히보기"
},
"modal": {
"move": "이동"
"abort": "중단",
"anchorerror": "클립보드 복사 실패. 수동으로 URL을 복사하십시오.",
"anchorsuccess": "URL이 클립보드에 복사되었습니다.",
"anchortitle": "이 섹션에 링크 복사",
"copyclipboard": "클립보드에 복사",
"create": "추가",
"createpageinvalid": "페이지 경로가 유효하지 않습니다",
"createpagepath": "새 페이지의 경로를 입력하세요:",
"createpagetitle": "새 페이지 생성",
"createuser": "사용자 생성",
"createuserauthorize": "사용자 승인",
"createuseremail": "이메일 주소",
"createuseremailplaceholder": "예: john.doe@company.com",
"createusername": "성명",
"createusernameplaceholder": "예: 홍길동",
"createuserpassword": "비밀번호:",
"createuserprovider": "제공자:",
"createusertitle": "사용자 계정 생성 / 승인",
"delete": "삭제",
"deletefiletitle": "삭제하시겠습니까?",
"deletefilewarn": "정말로 삭제하시겠습니까?",
"deleteusertitle": "계정을 삭제하시겠습니까?",
"deleteuserwarning": "정말로 삭제하시겠습니까? 이 작업은 복구할 수 없습니다",
"discard": "취소",
"discardpagecreate": "지금까지 작성한 내용을 저장하지 않고 나가겠습니까?",
"discardpageedit": "변경 사항을 저장하지 않고 나가시겠습니까? ",
"discardpagestay": "페이지에 머무르기",
"discardpagetitle": "취소하시겠습니까?",
"move": "이동",
"movepageinvalid": "페이지 경로가 잘못되었거나 페이지 접근 권한이 없습니다",
"movepagepath": "새로운 페이지 경로 등록",
"movepageplaceholder": "페이지 이름",
"movepagetitle": "페이지 이동",
"movepagewarning": "페이지를 이동하거나 이름을 변경하면 해당 페이지를 참조하는 다른 페이지의 링크를 꼭 수정하세요!",
"newfolderinvalid": "폴더 이름이 유효하지 않습니다",
"newfolderloading": "새 폴더 생성 중...",
"newfoldername": "새로 만들 폴더의 이름을 입력하세요:",
"newfoldernameplaceholder": "폴더명",
"newfoldersuccess": "{{name}} 폴더 생성 완료",
"newfoldertitle": "새 폴더",
"renamefile": "이름 바꾸기",
"renamefileerror": "이름 바꾸기 실패 : {{err}}",
"renamefileinvalid": "파일 이름이 유효하지 않습니다",
"renamefileloading": "파일 이름 변경 중...",
"renamefilename": "새로운 파일명(확장자 없이)을 입력하세요",
"renamefilenameplaceholder": "파일명",
"renamefiletitle": "파일 이름 바꾸기"
},
"nav": {
"home": "홈으로"

4
server/locales/ko/common.json

@ -27,11 +27,15 @@
"move": "이동",
"myprofile": "내 프로필",
"normalview": "기본 보기",
"root": "홈으로",
"savechanges": "변경사항 저장",
"savedocument": "문서 저장",
"settings": "설정",
"source": "소스",
"stats": "통계",
"sysinfo": "시스템 정보",
"syssettings": "시스템 설정",
"theme": "색상 테마",
"users": "사용자",
"viewlatest": "최신 보기"
},

2
server/locales/ko/errors.json

@ -1,5 +1,5 @@
{
"alreadyexists": "이미 정보가 입력되었습니다.",
"alreadyexists": "이미 존재하는 문서입니다.",
"debugmsg": "상세한 디버그 트레일",
"fileexists": "{{path}} 이미 존재함",
"forbidden": "접근 금지",

8
server/locales/nl/admin.json

@ -40,9 +40,9 @@
"resetaccounts": "Systeem gebruikers terugzetten naar fabrieksinstellingen",
"resetaccountstext": "De systeem gebruikers (zoals Gast) zullen teruggezet worden naar hun originele instellingen.",
"resetaccountsbtn": "Systeem accounts terugzetten",
"flushsessions": "Actieve gebruikerssessies sluiten",
"flushsessions": "Actieve gebruikerssessies beëindigen",
"flushsessionstext": "Alle actieve gebruikerssessies zullen gesloten worden. Alle gebruikers zullen opnieuw moeten inloggen. Ook jouw huidige sessie zal be-eindigen.",
"flushsessionsbtn": "Sessies sluiten",
"flushsessionsbtn": "Sessies beëindigen",
"hostinfo": "Host informatie",
"os": "Besturingssysteem",
"nodeversion": "Node.js versie",
@ -64,12 +64,12 @@
"dark": "Gebruik donkere thema",
"colorize": "Gebruik kleuren syntax"
},
"savechanges": "Veranderingen opslaan",
"savechanges": "Opslaan",
"reset": "Standaardinstellingen terugzetten"
},
"users": {
"createauthorize": "Gebruiker aanmaken ",
"subtitle": "Beheer gebruikersrechten",
"subtitle": "Gebruikers en gebruikersrechten beheren",
"name": "Naam",
"email": "E-mailadres",
"provider": "Inlog dienst",

2
server/locales/nl/common.json

@ -28,7 +28,7 @@
"myprofile": "Profiel",
"normalview": "Normaal uiterlijk",
"root": "Home",
"savechanges": "Veranderingen opslaan",
"savechanges": "Opslaan",
"savedocument": "Document opslaan",
"settings": "Instellingen",
"source": "Paginabron",

2
server/locales/pt/admin.json

@ -25,7 +25,7 @@
"currentversion": "Versão Atual",
"latestversion": "Última Versão",
"upgrade": "Atualizar",
"reinstall": "Reinstalar versão atual",
"reinstall": "Re-instalar versão atual",
"versioncheckfailed": "Não é possível consultar a versão mais recente. Tente mais tarde.",
"administrativetools": "Ferramentas Administrativas",
"flushcache": "Limpar o cache e reconstruir índices",

4
server/locales/pt/common.json

@ -21,7 +21,7 @@
"create": "Criar",
"discard": "Descartar",
"edit": "Editar",
"history": "Histórico",
"history": "Historico",
"login": "Login",
"logout": "Sair",
"move": "Mover",
@ -31,7 +31,7 @@
"savedocument": "Salvar Documento",
"settings": "Configurações",
"source": "Fonte",
"stats": "Estatísticas",
"stats": "Statatísticas",
"syssettings": "Configurações do Sistema",
"theme": "Tema de Cor",
"users": "Usuários",

1
server/locales/tr/admin.json

@ -0,0 +1 @@
{ }

1
server/locales/tr/auth.json

@ -0,0 +1 @@
{ }

1
server/locales/tr/browser.json

@ -0,0 +1 @@
{ }

1
server/locales/tr/common.json

@ -0,0 +1 @@
{ }

1
server/locales/tr/errors.json

@ -0,0 +1 @@
{ }

1
server/locales/tr/git.json

@ -0,0 +1 @@
{ }

4
server/locales/zh/admin.json

@ -56,9 +56,9 @@
"primarycolor": "原色",
"primarycolordesc": "用于顶级导航栏,标题,链接等",
"altcolor": "替代颜色",
"altcolordesc": "用于边栏(色)",
"altcolordesc": "用于边栏(色)",
"footercolor": "页脚颜色",
"footercolordesc": "用于foter(较轻的音调)",
"footercolordesc": "用于页脚(浅色)",
"codeblock": {
"title": "代码块",
"dark": "使用黑色主题",

2
server/views/layout.pug

@ -28,7 +28,7 @@ html
block head
body
body(class={ 'rtl': appconfig.langRtl })
#root.has-stickynav(class=['is-primary-' + appconfig.theme.primary, 'is-alternate-' + appconfig.theme.alt])
include ./common/header.pug
alert

2
tools/fuse_tasks.js

@ -76,7 +76,7 @@ module.exports = Promise.mapSeries([
return Promise.map(langs, lang => {
console.info(colors.white(' ' + lang + '.json'))
let outputPath = path.join('./assets/js/i18n', lang + '.json')
return fs.readJsonAsync(path.join('./server/locales', lang + 'browser.json'), 'utf8').then((content) => {
return fs.readJsonAsync(path.join('./server/locales', lang, 'browser.json'), 'utf8').then((content) => {
return fs.outputJsonAsync(outputPath, _.defaultsDeep(content, enContent))
}).catch(err => { // eslint-disable-line handle-callback-err
return fs.outputJsonAsync(outputPath, enContent)

Loading…
Cancel
Save