From bbad36717f84e870edda9236ec6c41ce98ad2b84 Mon Sep 17 00:00:00 2001
From: LokiHung <80607635+LokiHung@users.noreply.github.com>
Date: Wed, 12 Feb 2025 10:56:24 +0800
Subject: [PATCH] Feature: Chinese Traditional translation (#9076)
---------
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
---
src-ui/angular.json | 3 +-
src-ui/messages.xlf | 15 +-
src-ui/setup-jest.ts | 2 +
src-ui/src/app/services/settings.service.ts | 6 +
src-ui/src/main.ts | 2 +
src/locale/en_US/LC_MESSAGES/django.po | 442 +++++++++++---------
src/paperless/settings.py | 1 +
7 files changed, 257 insertions(+), 214 deletions(-)
diff --git a/src-ui/angular.json b/src-ui/angular.json
index c93770860..4c7fb6c12 100644
--- a/src-ui/angular.json
+++ b/src-ui/angular.json
@@ -47,7 +47,8 @@
"sv-SE": "src/locale/messages.sv_SE.xlf",
"tr-TR": "src/locale/messages.tr_TR.xlf",
"uk-UA": "src/locale/messages.uk_UA.xlf",
- "zh-CN": "src/locale/messages.zh_CN.xlf"
+ "zh-CN": "src/locale/messages.zh_CN.xlf",
+ "zh-TW": "src/locale/messages.zh_TW.xlf"
}
},
"architect": {
diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf
index a578445c5..b9af58af3 100644
--- a/src-ui/messages.xlf
+++ b/src-ui/messages.xlf
@@ -9620,32 +9620,39 @@
243
+
+ Chinese Traditional
+
+ src/app/services/settings.service.ts
+ 249
+
+
ISO 8601
src/app/services/settings.service.ts
- 251
+ 257
Successfully completed one-time migratration of settings to the database!
src/app/services/settings.service.ts
- 584
+ 590
Unable to migrate settings to the database, please try saving manually.
src/app/services/settings.service.ts
- 585
+ 591
You can restart the tour from the settings page.
src/app/services/settings.service.ts
- 661
+ 667
diff --git a/src-ui/setup-jest.ts b/src-ui/setup-jest.ts
index 52dccaf02..a688f4a6e 100644
--- a/src-ui/setup-jest.ts
+++ b/src-ui/setup-jest.ts
@@ -40,6 +40,7 @@ import localeSv from '@angular/common/locales/sv'
import localeTr from '@angular/common/locales/tr'
import localeUk from '@angular/common/locales/uk'
import localeZh from '@angular/common/locales/zh'
+import localeZhHant from '@angular/common/locales/zh-Hant'
registerLocaleData(localeAf)
registerLocaleData(localeAr)
@@ -73,6 +74,7 @@ registerLocaleData(localeSv)
registerLocaleData(localeTr)
registerLocaleData(localeUk)
registerLocaleData(localeZh)
+registerLocaleData(localeZhHant)
/* global mocks for jsdom */
const mock = () => {
diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts
index 9e1b3e360..80e3b3474 100644
--- a/src-ui/src/app/services/settings.service.ts
+++ b/src-ui/src/app/services/settings.service.ts
@@ -244,6 +244,12 @@ const LANGUAGE_OPTIONS = [
englishName: 'Chinese Simplified',
dateInputFormat: 'yyyy-mm-dd',
},
+ {
+ code: 'zh-tw',
+ name: $localize`Chinese Traditional`,
+ englishName: 'Chinese Traditional',
+ dateInputFormat: 'yyyy/mm/dd',
+ },
]
const ISO_LANGUAGE_OPTION: LanguageOption = {
diff --git a/src-ui/src/main.ts b/src-ui/src/main.ts
index 484a77c82..a9d446891 100644
--- a/src-ui/src/main.ts
+++ b/src-ui/src/main.ts
@@ -181,6 +181,7 @@ import localeSv from '@angular/common/locales/sv'
import localeTr from '@angular/common/locales/tr'
import localeUk from '@angular/common/locales/uk'
import localeZh from '@angular/common/locales/zh'
+import localeZhHant from '@angular/common/locales/zh-Hant'
import { CorrespondentNamePipe } from './app/pipes/correspondent-name.pipe'
import { DocumentTypeNamePipe } from './app/pipes/document-type-name.pipe'
import { StoragePathNamePipe } from './app/pipes/storage-path-name.pipe'
@@ -217,6 +218,7 @@ registerLocaleData(localeSv)
registerLocaleData(localeTr)
registerLocaleData(localeUk)
registerLocaleData(localeZh)
+registerLocaleData(localeZhHant)
function initializeApp(settings: SettingsService) {
return () => {
diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po
index 57494a5c2..32d60ac19 100644
--- a/src/locale/en_US/LC_MESSAGES/django.po
+++ b/src/locale/en_US/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-01-28 12:17-0800\n"
+"POT-Creation-Date: 2025-02-11 18:43-0800\n"
"PO-Revision-Date: 2022-02-17 04:17\n"
"Last-Translator: \n"
"Language-Team: English\n"
@@ -21,67 +21,67 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: documents/filters.py:344
+#: documents/filters.py:369
msgid "Value must be valid JSON."
msgstr ""
-#: documents/filters.py:363
+#: documents/filters.py:388
msgid "Invalid custom field query expression"
msgstr ""
-#: documents/filters.py:373
+#: documents/filters.py:398
msgid "Invalid expression list. Must be nonempty."
msgstr ""
-#: documents/filters.py:394
+#: documents/filters.py:419
msgid "Invalid logical operator {op!r}"
msgstr ""
-#: documents/filters.py:408
+#: documents/filters.py:433
msgid "Maximum number of query conditions exceeded."
msgstr ""
-#: documents/filters.py:473
+#: documents/filters.py:498
msgid "{name!r} is not a valid custom field."
msgstr ""
-#: documents/filters.py:510
+#: documents/filters.py:535
msgid "{data_type} does not support query expr {expr!r}."
msgstr ""
-#: documents/filters.py:618
+#: documents/filters.py:643
msgid "Maximum nesting depth exceeded."
msgstr ""
-#: documents/filters.py:785
+#: documents/filters.py:813
msgid "Custom field not found"
msgstr ""
-#: documents/models.py:41 documents/models.py:801
+#: documents/models.py:41 documents/models.py:806
msgid "owner"
msgstr ""
-#: documents/models.py:58 documents/models.py:1012
+#: documents/models.py:58 documents/models.py:1017
msgid "None"
msgstr ""
-#: documents/models.py:59 documents/models.py:1013
+#: documents/models.py:59 documents/models.py:1018
msgid "Any word"
msgstr ""
-#: documents/models.py:60 documents/models.py:1014
+#: documents/models.py:60 documents/models.py:1019
msgid "All words"
msgstr ""
-#: documents/models.py:61 documents/models.py:1015
+#: documents/models.py:61 documents/models.py:1020
msgid "Exact match"
msgstr ""
-#: documents/models.py:62 documents/models.py:1016
+#: documents/models.py:62 documents/models.py:1021
msgid "Regular expression"
msgstr ""
-#: documents/models.py:63 documents/models.py:1017
+#: documents/models.py:63 documents/models.py:1022
msgid "Fuzzy word"
msgstr ""
@@ -89,20 +89,20 @@ msgstr ""
msgid "Automatic"
msgstr ""
-#: documents/models.py:67 documents/models.py:433 documents/models.py:1493
+#: documents/models.py:67 documents/models.py:433 documents/models.py:1498
#: paperless_mail/models.py:23 paperless_mail/models.py:143
msgid "name"
msgstr ""
-#: documents/models.py:69 documents/models.py:1080
+#: documents/models.py:69 documents/models.py:1085
msgid "match"
msgstr ""
-#: documents/models.py:72 documents/models.py:1083
+#: documents/models.py:72 documents/models.py:1088
msgid "matching algorithm"
msgstr ""
-#: documents/models.py:77 documents/models.py:1088
+#: documents/models.py:77 documents/models.py:1093
msgid "is insensitive"
msgstr ""
@@ -168,7 +168,7 @@ msgstr ""
msgid "title"
msgstr ""
-#: documents/models.py:175 documents/models.py:715
+#: documents/models.py:175 documents/models.py:720
msgid "content"
msgstr ""
@@ -206,8 +206,8 @@ msgstr ""
msgid "The number of pages of the document."
msgstr ""
-#: documents/models.py:221 documents/models.py:401 documents/models.py:721
-#: documents/models.py:759 documents/models.py:830 documents/models.py:888
+#: documents/models.py:221 documents/models.py:401 documents/models.py:726
+#: documents/models.py:764 documents/models.py:835 documents/models.py:893
msgid "created"
msgstr ""
@@ -255,8 +255,8 @@ msgstr ""
msgid "The position of this document in your physical document archive."
msgstr ""
-#: documents/models.py:295 documents/models.py:732 documents/models.py:786
-#: documents/models.py:1536
+#: documents/models.py:295 documents/models.py:737 documents/models.py:791
+#: documents/models.py:1541
msgid "document"
msgstr ""
@@ -320,11 +320,11 @@ msgstr ""
msgid "Title"
msgstr ""
-#: documents/models.py:420 documents/models.py:1032
+#: documents/models.py:420 documents/models.py:1037
msgid "Created"
msgstr ""
-#: documents/models.py:421 documents/models.py:1031
+#: documents/models.py:421 documents/models.py:1036
msgid "Added"
msgstr ""
@@ -392,7 +392,7 @@ msgstr ""
msgid "Document display fields"
msgstr ""
-#: documents/models.py:473 documents/models.py:531
+#: documents/models.py:473 documents/models.py:536
msgid "saved view"
msgstr ""
@@ -572,579 +572,599 @@ msgstr ""
msgid "custom fields query"
msgstr ""
-#: documents/models.py:534
-msgid "rule type"
+#: documents/models.py:525
+msgid "created to"
msgstr ""
-#: documents/models.py:536
-msgid "value"
+#: documents/models.py:526
+msgid "created from"
+msgstr ""
+
+#: documents/models.py:527
+msgid "added to"
+msgstr ""
+
+#: documents/models.py:528
+msgid "added from"
+msgstr ""
+
+#: documents/models.py:529
+msgid "mime type is"
msgstr ""
#: documents/models.py:539
+msgid "rule type"
+msgstr ""
+
+#: documents/models.py:541
+msgid "value"
+msgstr ""
+
+#: documents/models.py:544
msgid "filter rule"
msgstr ""
-#: documents/models.py:540
+#: documents/models.py:545
msgid "filter rules"
msgstr ""
-#: documents/models.py:651
+#: documents/models.py:656
msgid "Task ID"
msgstr ""
-#: documents/models.py:652
+#: documents/models.py:657
msgid "Celery ID for the Task that was run"
msgstr ""
-#: documents/models.py:657
+#: documents/models.py:662
msgid "Acknowledged"
msgstr ""
-#: documents/models.py:658
+#: documents/models.py:663
msgid "If the task is acknowledged via the frontend or API"
msgstr ""
-#: documents/models.py:664
+#: documents/models.py:669
msgid "Task Filename"
msgstr ""
-#: documents/models.py:665
+#: documents/models.py:670
msgid "Name of the file which the Task was run for"
msgstr ""
-#: documents/models.py:671
+#: documents/models.py:676
msgid "Task Name"
msgstr ""
-#: documents/models.py:672
+#: documents/models.py:677
msgid "Name of the Task which was run"
msgstr ""
-#: documents/models.py:679
+#: documents/models.py:684
msgid "Task State"
msgstr ""
-#: documents/models.py:680
+#: documents/models.py:685
msgid "Current state of the task being run"
msgstr ""
-#: documents/models.py:685
+#: documents/models.py:690
msgid "Created DateTime"
msgstr ""
-#: documents/models.py:686
+#: documents/models.py:691
msgid "Datetime field when the task result was created in UTC"
msgstr ""
-#: documents/models.py:691
+#: documents/models.py:696
msgid "Started DateTime"
msgstr ""
-#: documents/models.py:692
+#: documents/models.py:697
msgid "Datetime field when the task was started in UTC"
msgstr ""
-#: documents/models.py:697
+#: documents/models.py:702
msgid "Completed DateTime"
msgstr ""
-#: documents/models.py:698
+#: documents/models.py:703
msgid "Datetime field when the task was completed in UTC"
msgstr ""
-#: documents/models.py:703
+#: documents/models.py:708
msgid "Result Data"
msgstr ""
-#: documents/models.py:705
+#: documents/models.py:710
msgid "The data returned by the task"
msgstr ""
-#: documents/models.py:717
+#: documents/models.py:722
msgid "Note for the document"
msgstr ""
-#: documents/models.py:741
+#: documents/models.py:746
msgid "user"
msgstr ""
-#: documents/models.py:746
+#: documents/models.py:751
msgid "note"
msgstr ""
-#: documents/models.py:747
+#: documents/models.py:752
msgid "notes"
msgstr ""
-#: documents/models.py:755
+#: documents/models.py:760
msgid "Archive"
msgstr ""
-#: documents/models.py:756
+#: documents/models.py:761
msgid "Original"
msgstr ""
-#: documents/models.py:767 paperless_mail/models.py:75
+#: documents/models.py:772 paperless_mail/models.py:75
msgid "expiration"
msgstr ""
-#: documents/models.py:774
+#: documents/models.py:779
msgid "slug"
msgstr ""
-#: documents/models.py:806
+#: documents/models.py:811
msgid "share link"
msgstr ""
-#: documents/models.py:807
+#: documents/models.py:812
msgid "share links"
msgstr ""
-#: documents/models.py:819
+#: documents/models.py:824
msgid "String"
msgstr ""
-#: documents/models.py:820
+#: documents/models.py:825
msgid "URL"
msgstr ""
-#: documents/models.py:821
+#: documents/models.py:826
msgid "Date"
msgstr ""
-#: documents/models.py:822
+#: documents/models.py:827
msgid "Boolean"
msgstr ""
-#: documents/models.py:823
+#: documents/models.py:828
msgid "Integer"
msgstr ""
-#: documents/models.py:824
+#: documents/models.py:829
msgid "Float"
msgstr ""
-#: documents/models.py:825
+#: documents/models.py:830
msgid "Monetary"
msgstr ""
-#: documents/models.py:826
+#: documents/models.py:831
msgid "Document Link"
msgstr ""
-#: documents/models.py:827
+#: documents/models.py:832
msgid "Select"
msgstr ""
-#: documents/models.py:839
+#: documents/models.py:844
msgid "data type"
msgstr ""
-#: documents/models.py:846
+#: documents/models.py:851
msgid "extra data"
msgstr ""
-#: documents/models.py:850
+#: documents/models.py:855
msgid "Extra data for the custom field, such as select options"
msgstr ""
-#: documents/models.py:856
+#: documents/models.py:861
msgid "custom field"
msgstr ""
-#: documents/models.py:857
+#: documents/models.py:862
msgid "custom fields"
msgstr ""
-#: documents/models.py:954
+#: documents/models.py:959
msgid "custom field instance"
msgstr ""
-#: documents/models.py:955
+#: documents/models.py:960
msgid "custom field instances"
msgstr ""
-#: documents/models.py:1020
+#: documents/models.py:1025
msgid "Consumption Started"
msgstr ""
-#: documents/models.py:1021
+#: documents/models.py:1026
msgid "Document Added"
msgstr ""
-#: documents/models.py:1022
+#: documents/models.py:1027
msgid "Document Updated"
msgstr ""
-#: documents/models.py:1023
+#: documents/models.py:1028
msgid "Scheduled"
msgstr ""
-#: documents/models.py:1026
+#: documents/models.py:1031
msgid "Consume Folder"
msgstr ""
-#: documents/models.py:1027
+#: documents/models.py:1032
msgid "Api Upload"
msgstr ""
-#: documents/models.py:1028
+#: documents/models.py:1033
msgid "Mail Fetch"
msgstr ""
-#: documents/models.py:1033
+#: documents/models.py:1038
msgid "Modified"
msgstr ""
-#: documents/models.py:1034
+#: documents/models.py:1039
msgid "Custom Field"
msgstr ""
-#: documents/models.py:1037
+#: documents/models.py:1042
msgid "Workflow Trigger Type"
msgstr ""
-#: documents/models.py:1049
+#: documents/models.py:1054
msgid "filter path"
msgstr ""
-#: documents/models.py:1054
+#: documents/models.py:1059
msgid ""
"Only consume documents with a path that matches this if specified. Wildcards "
"specified as * are allowed. Case insensitive."
msgstr ""
-#: documents/models.py:1061
+#: documents/models.py:1066
msgid "filter filename"
msgstr ""
-#: documents/models.py:1066 paperless_mail/models.py:200
+#: documents/models.py:1071 paperless_mail/models.py:200
msgid ""
"Only consume documents which entirely match this filename if specified. "
"Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
-#: documents/models.py:1077
+#: documents/models.py:1082
msgid "filter documents from this mail rule"
msgstr ""
-#: documents/models.py:1093
+#: documents/models.py:1098
msgid "has these tag(s)"
msgstr ""
-#: documents/models.py:1101
+#: documents/models.py:1106
msgid "has this document type"
msgstr ""
-#: documents/models.py:1109
+#: documents/models.py:1114
msgid "has this correspondent"
msgstr ""
-#: documents/models.py:1113
+#: documents/models.py:1118
msgid "schedule offset days"
msgstr ""
-#: documents/models.py:1116
+#: documents/models.py:1121
msgid "The number of days to offset the schedule trigger by."
msgstr ""
-#: documents/models.py:1121
+#: documents/models.py:1126
msgid "schedule is recurring"
msgstr ""
-#: documents/models.py:1124
+#: documents/models.py:1129
msgid "If the schedule should be recurring."
msgstr ""
-#: documents/models.py:1129
+#: documents/models.py:1134
msgid "schedule recurring delay in days"
msgstr ""
-#: documents/models.py:1133
+#: documents/models.py:1138
msgid "The number of days between recurring schedule triggers."
msgstr ""
-#: documents/models.py:1138
+#: documents/models.py:1143
msgid "schedule date field"
msgstr ""
-#: documents/models.py:1143
+#: documents/models.py:1148
msgid "The field to check for a schedule trigger."
msgstr ""
-#: documents/models.py:1152
+#: documents/models.py:1157
msgid "schedule date custom field"
msgstr ""
-#: documents/models.py:1156
+#: documents/models.py:1161
msgid "workflow trigger"
msgstr ""
-#: documents/models.py:1157
+#: documents/models.py:1162
msgid "workflow triggers"
msgstr ""
-#: documents/models.py:1165
+#: documents/models.py:1170
msgid "email subject"
msgstr ""
-#: documents/models.py:1169
+#: documents/models.py:1174
msgid ""
"The subject of the email, can include some placeholders, see documentation."
msgstr ""
-#: documents/models.py:1175
+#: documents/models.py:1180
msgid "email body"
msgstr ""
-#: documents/models.py:1178
+#: documents/models.py:1183
msgid ""
"The body (message) of the email, can include some placeholders, see "
"documentation."
msgstr ""
-#: documents/models.py:1184
+#: documents/models.py:1189
msgid "emails to"
msgstr ""
-#: documents/models.py:1187
+#: documents/models.py:1192
msgid "The destination email addresses, comma separated."
msgstr ""
-#: documents/models.py:1193
+#: documents/models.py:1198
msgid "include document in email"
msgstr ""
-#: documents/models.py:1202
+#: documents/models.py:1207
msgid "webhook url"
msgstr ""
-#: documents/models.py:1204
+#: documents/models.py:1209
msgid "The destination URL for the notification."
msgstr ""
-#: documents/models.py:1209
+#: documents/models.py:1214
msgid "use parameters"
msgstr ""
-#: documents/models.py:1214
+#: documents/models.py:1219
msgid "send as JSON"
msgstr ""
-#: documents/models.py:1218
+#: documents/models.py:1223
msgid "webhook parameters"
msgstr ""
-#: documents/models.py:1221
+#: documents/models.py:1226
msgid "The parameters to send with the webhook URL if body not used."
msgstr ""
-#: documents/models.py:1225
+#: documents/models.py:1230
msgid "webhook body"
msgstr ""
-#: documents/models.py:1228
+#: documents/models.py:1233
msgid "The body to send with the webhook URL if parameters not used."
msgstr ""
-#: documents/models.py:1232
+#: documents/models.py:1237
msgid "webhook headers"
msgstr ""
-#: documents/models.py:1235
+#: documents/models.py:1240
msgid "The headers to send with the webhook URL."
msgstr ""
-#: documents/models.py:1240
+#: documents/models.py:1245
msgid "include document in webhook"
msgstr ""
-#: documents/models.py:1251
+#: documents/models.py:1256
msgid "Assignment"
msgstr ""
-#: documents/models.py:1255
+#: documents/models.py:1260
msgid "Removal"
msgstr ""
-#: documents/models.py:1259 documents/templates/account/password_reset.html:15
+#: documents/models.py:1264 documents/templates/account/password_reset.html:15
msgid "Email"
msgstr ""
-#: documents/models.py:1263
+#: documents/models.py:1268
msgid "Webhook"
msgstr ""
-#: documents/models.py:1267
+#: documents/models.py:1272
msgid "Workflow Action Type"
msgstr ""
-#: documents/models.py:1273
+#: documents/models.py:1278
msgid "assign title"
msgstr ""
-#: documents/models.py:1278
+#: documents/models.py:1283
msgid ""
"Assign a document title, can include some placeholders, see documentation."
msgstr ""
-#: documents/models.py:1287 paperless_mail/models.py:274
+#: documents/models.py:1292 paperless_mail/models.py:274
msgid "assign this tag"
msgstr ""
-#: documents/models.py:1296 paperless_mail/models.py:282
+#: documents/models.py:1301 paperless_mail/models.py:282
msgid "assign this document type"
msgstr ""
-#: documents/models.py:1305 paperless_mail/models.py:296
+#: documents/models.py:1310 paperless_mail/models.py:296
msgid "assign this correspondent"
msgstr ""
-#: documents/models.py:1314
+#: documents/models.py:1319
msgid "assign this storage path"
msgstr ""
-#: documents/models.py:1323
+#: documents/models.py:1328
msgid "assign this owner"
msgstr ""
-#: documents/models.py:1330
+#: documents/models.py:1335
msgid "grant view permissions to these users"
msgstr ""
-#: documents/models.py:1337
+#: documents/models.py:1342
msgid "grant view permissions to these groups"
msgstr ""
-#: documents/models.py:1344
+#: documents/models.py:1349
msgid "grant change permissions to these users"
msgstr ""
-#: documents/models.py:1351
+#: documents/models.py:1356
msgid "grant change permissions to these groups"
msgstr ""
-#: documents/models.py:1358
+#: documents/models.py:1363
msgid "assign these custom fields"
msgstr ""
-#: documents/models.py:1365
+#: documents/models.py:1370
msgid "remove these tag(s)"
msgstr ""
-#: documents/models.py:1370
+#: documents/models.py:1375
msgid "remove all tags"
msgstr ""
-#: documents/models.py:1377
+#: documents/models.py:1382
msgid "remove these document type(s)"
msgstr ""
-#: documents/models.py:1382
+#: documents/models.py:1387
msgid "remove all document types"
msgstr ""
-#: documents/models.py:1389
+#: documents/models.py:1394
msgid "remove these correspondent(s)"
msgstr ""
-#: documents/models.py:1394
+#: documents/models.py:1399
msgid "remove all correspondents"
msgstr ""
-#: documents/models.py:1401
+#: documents/models.py:1406
msgid "remove these storage path(s)"
msgstr ""
-#: documents/models.py:1406
+#: documents/models.py:1411
msgid "remove all storage paths"
msgstr ""
-#: documents/models.py:1413
+#: documents/models.py:1418
msgid "remove these owner(s)"
msgstr ""
-#: documents/models.py:1418
+#: documents/models.py:1423
msgid "remove all owners"
msgstr ""
-#: documents/models.py:1425
+#: documents/models.py:1430
msgid "remove view permissions for these users"
msgstr ""
-#: documents/models.py:1432
+#: documents/models.py:1437
msgid "remove view permissions for these groups"
msgstr ""
-#: documents/models.py:1439
+#: documents/models.py:1444
msgid "remove change permissions for these users"
msgstr ""
-#: documents/models.py:1446
+#: documents/models.py:1451
msgid "remove change permissions for these groups"
msgstr ""
-#: documents/models.py:1451
+#: documents/models.py:1456
msgid "remove all permissions"
msgstr ""
-#: documents/models.py:1458
+#: documents/models.py:1463
msgid "remove these custom fields"
msgstr ""
-#: documents/models.py:1463
+#: documents/models.py:1468
msgid "remove all custom fields"
msgstr ""
-#: documents/models.py:1472
+#: documents/models.py:1477
msgid "email"
msgstr ""
-#: documents/models.py:1481
+#: documents/models.py:1486
msgid "webhook"
msgstr ""
-#: documents/models.py:1485
+#: documents/models.py:1490
msgid "workflow action"
msgstr ""
-#: documents/models.py:1486
+#: documents/models.py:1491
msgid "workflow actions"
msgstr ""
-#: documents/models.py:1495 paperless_mail/models.py:145
+#: documents/models.py:1500 paperless_mail/models.py:145
msgid "order"
msgstr ""
-#: documents/models.py:1501
+#: documents/models.py:1506
msgid "triggers"
msgstr ""
-#: documents/models.py:1508
+#: documents/models.py:1513
msgid "actions"
msgstr ""
-#: documents/models.py:1511 paperless_mail/models.py:154
+#: documents/models.py:1516 paperless_mail/models.py:154
msgid "enabled"
msgstr ""
-#: documents/models.py:1522
+#: documents/models.py:1527
msgid "workflow"
msgstr ""
-#: documents/models.py:1526
+#: documents/models.py:1531
msgid "workflow trigger type"
msgstr ""
-#: documents/models.py:1540
+#: documents/models.py:1545
msgid "date run"
msgstr ""
-#: documents/models.py:1546
+#: documents/models.py:1551
msgid "workflow run"
msgstr ""
-#: documents/models.py:1547
+#: documents/models.py:1552
msgid "workflow runs"
msgstr ""
@@ -1153,16 +1173,16 @@ msgstr ""
msgid "Invalid regular expression: %(error)s"
msgstr ""
-#: documents/serialisers.py:474
+#: documents/serialisers.py:553
msgid "Invalid color."
msgstr ""
-#: documents/serialisers.py:1559
+#: documents/serialisers.py:1554
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
-#: documents/serialisers.py:1648
+#: documents/serialisers.py:1643
msgid "Invalid variable detected."
msgstr ""
@@ -1545,139 +1565,143 @@ msgstr ""
msgid "paperless application settings"
msgstr ""
-#: paperless/settings.py:698
+#: paperless/settings.py:721
msgid "English (US)"
msgstr ""
-#: paperless/settings.py:699
+#: paperless/settings.py:722
msgid "Arabic"
msgstr ""
-#: paperless/settings.py:700
+#: paperless/settings.py:723
msgid "Afrikaans"
msgstr ""
-#: paperless/settings.py:701
+#: paperless/settings.py:724
msgid "Belarusian"
msgstr ""
-#: paperless/settings.py:702
+#: paperless/settings.py:725
msgid "Bulgarian"
msgstr ""
-#: paperless/settings.py:703
+#: paperless/settings.py:726
msgid "Catalan"
msgstr ""
-#: paperless/settings.py:704
+#: paperless/settings.py:727
msgid "Czech"
msgstr ""
-#: paperless/settings.py:705
+#: paperless/settings.py:728
msgid "Danish"
msgstr ""
-#: paperless/settings.py:706
+#: paperless/settings.py:729
msgid "German"
msgstr ""
-#: paperless/settings.py:707
+#: paperless/settings.py:730
msgid "Greek"
msgstr ""
-#: paperless/settings.py:708
+#: paperless/settings.py:731
msgid "English (GB)"
msgstr ""
-#: paperless/settings.py:709
+#: paperless/settings.py:732
msgid "Spanish"
msgstr ""
-#: paperless/settings.py:710
+#: paperless/settings.py:733
msgid "Finnish"
msgstr ""
-#: paperless/settings.py:711
+#: paperless/settings.py:734
msgid "French"
msgstr ""
-#: paperless/settings.py:712
+#: paperless/settings.py:735
msgid "Hungarian"
msgstr ""
-#: paperless/settings.py:713
+#: paperless/settings.py:736
msgid "Italian"
msgstr ""
-#: paperless/settings.py:714
+#: paperless/settings.py:737
msgid "Japanese"
msgstr ""
-#: paperless/settings.py:715
+#: paperless/settings.py:738
msgid "Korean"
msgstr ""
-#: paperless/settings.py:716
+#: paperless/settings.py:739
msgid "Luxembourgish"
msgstr ""
-#: paperless/settings.py:717
+#: paperless/settings.py:740
msgid "Norwegian"
msgstr ""
-#: paperless/settings.py:718
+#: paperless/settings.py:741
msgid "Dutch"
msgstr ""
-#: paperless/settings.py:719
+#: paperless/settings.py:742
msgid "Polish"
msgstr ""
-#: paperless/settings.py:720
+#: paperless/settings.py:743
msgid "Portuguese (Brazil)"
msgstr ""
-#: paperless/settings.py:721
+#: paperless/settings.py:744
msgid "Portuguese"
msgstr ""
-#: paperless/settings.py:722
+#: paperless/settings.py:745
msgid "Romanian"
msgstr ""
-#: paperless/settings.py:723
+#: paperless/settings.py:746
msgid "Russian"
msgstr ""
-#: paperless/settings.py:724
+#: paperless/settings.py:747
msgid "Slovak"
msgstr ""
-#: paperless/settings.py:725
+#: paperless/settings.py:748
msgid "Slovenian"
msgstr ""
-#: paperless/settings.py:726
+#: paperless/settings.py:749
msgid "Serbian"
msgstr ""
-#: paperless/settings.py:727
+#: paperless/settings.py:750
msgid "Swedish"
msgstr ""
-#: paperless/settings.py:728
+#: paperless/settings.py:751
msgid "Turkish"
msgstr ""
-#: paperless/settings.py:729
+#: paperless/settings.py:752
msgid "Ukrainian"
msgstr ""
-#: paperless/settings.py:730
+#: paperless/settings.py:753
msgid "Chinese Simplified"
msgstr ""
-#: paperless/urls.py:341
+#: paperless/settings.py:754
+msgid "Chinese Traditional"
+msgstr ""
+
+#: paperless/urls.py:364
msgid "Paperless-ngx administration"
msgstr ""
diff --git a/src/paperless/settings.py b/src/paperless/settings.py
index e92d9dc5a..8072f694e 100644
--- a/src/paperless/settings.py
+++ b/src/paperless/settings.py
@@ -751,6 +751,7 @@ LANGUAGES = [
("tr-tr", _("Turkish")),
("uk-ua", _("Ukrainian")),
("zh-cn", _("Chinese Simplified")),
+ ("zh-tw", _("Chinese Traditional")),
]
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]