Fixes 25 failing tests across translations and eml-import test suites:
- Add 141 missing i18n keys to en/common.json for P2.1 (extended signatures
feature) and P2.5 (email import feature). Keys cover:
- signatures.* (signature editor, toolbar labels, per-identity settings)
- settings.importer.* (mail import UI labels and messages)
- settings.tabs.signatures, settings.{loading,refresh}
- email_composer.{insert_signature,no_signature,select_signature}
- identities.form.{signature_store_*,use_global_default}
- calendar.{edit,delete,duplicate}, contacts.{edit,delete,send_email}
- contacts.import.csv_* (CSV column mapping labels)
- Other related keys for sharing, mailbox context menu, file operations
- Propagate new keys to all 23 other locale files:
- ar, ca, cs, da, de, es, fa, fr, he, hu, it, ja, ko, lv, nl, pl, pt, ro,
ru, sk, tr, uk, zh
- 19 locales with real, idiomatic translations matching existing tone
- 4 locales (da, es, fa, zh) with English placeholders pending native
translation
- Fix eml-import test: update accept-string expectation to match actual
EML_IMPORT_ACCEPT constant (now includes .tgz, .tar.gz, application/gzip
support added in P2.5)
All 53 tests now pass:
- 48 translation completeness tests
- 5 eml-import tests
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
| 1 | calendar.delete | Delete |
|---|---|---|
| 2 | calendar.duplicate | Duplicate |
| 3 | calendar.edit | Edit |
| 4 | calendar.freeBusy.busy | Busy |
| 5 | calendar.freeBusy.check | Check Availability |
| 6 | calendar.freeBusy.click_to_select | Click a free slot to select this time |
| 7 | calendar.freeBusy.free | Free |
| 8 | calendar.freeBusy.hide | Hide Availability |
| 9 | calendar.freeBusy.loading | Loading... |
| 10 | calendar.freeBusy.no_participants | Add participants to check availability. |
| 11 | calendar.freeBusy.tentative | Tentative |
| 12 | calendar.freeBusy.timezone | Timezone |
| 13 | calendar.freeBusy.title | Availability |
| 14 | calendar.freeBusy.unavailable | Out of office |
| 15 | calendar.freeBusy.unknown | No information |
| 16 | calendar.resources.clear_all | Clear all |
| 17 | calendar.resources.filter_all | All |
| 18 | calendar.resources.hide | Hide resources |
| 19 | calendar.resources.no_resources | No resources available |
| 20 | calendar.resources.remove | Remove {name} |
| 21 | calendar.resources.search_placeholder | Search resources... |
| 22 | calendar.resources.title | Resources |
| 23 | calendar.resources.type_equipment | Equipment |
| 24 | calendar.resources.type_other | Other |
| 25 | calendar.resources.type_room | Rooms |
| 26 | calendar.resources.type_vehicle | Vehicles |
| 27 | contacts.delete | Delete |
| 28 | contacts.edit | Edit |
| 29 | contacts.import.csv_address | Address |
| 30 | contacts.import.csv_address_book | Address book |
| 31 | contacts.import.csv_back | Back |
| 32 | contacts.import.csv_city | City |
| 33 | contacts.import.csv_company | Company |
| 34 | contacts.import.csv_country | Country |
| 35 | contacts.import.csv_email | |
| 36 | contacts.import.csv_first_name | First name |
| 37 | contacts.import.csv_ignore | Ignore this column |
| 38 | contacts.import.csv_job_title | Job title |
| 39 | contacts.import.csv_last_name | Last name |
| 40 | contacts.import.csv_load_all | Load all |
| 41 | contacts.import.csv_map_columns | Map columns |
| 42 | contacts.import.csv_nickname | Nickname |
| 43 | contacts.import.csv_note | Note |
| 44 | contacts.import.csv_phone | Phone |
| 45 | contacts.import.csv_postcode | Postal code |
| 46 | contacts.import.csv_preview | Preview |
| 47 | contacts.import.csv_preview_title | Preview ({count, plural, one {# row} other {# rows}}) |
| 48 | contacts.import.csv_region | State/Region |
| 49 | contacts.import.csv_website | Website |
| 50 | contacts.import.file_types_csv | .csv files |
| 51 | contacts.send_email | Send email |
| 52 | email_composer.insert_signature | Insert signature |
| 53 | email_composer.no_signature | No signature |
| 54 | email_composer.select_signature | Select signature |
| 55 | email_viewer.create_appointment | Create Appointment |
| 56 | files.send_as_attachment | Send as Attachment |
| 57 | identities.form.signature_store_default | Default signature |
| 58 | identities.form.signature_store_mapping | Signature mapping |
| 59 | identities.form.signature_store_reply | Reply signature |
| 60 | identities.form.use_global_default | Use global default |
| 61 | mailbox_context_menu.share_folder | Share Folder... |
| 62 | settings.importer.action_label | Import |
| 63 | settings.importer.cancel | Cancel |
| 64 | settings.importer.choose_files | Choose files |
| 65 | settings.importer.conflict_copy | Keep both |
| 66 | settings.importer.conflict_description | Choose what to do when an imported message already exists. |
| 67 | settings.importer.conflict_label | Duplicate handling |
| 68 | settings.importer.conflict_replace | Replace duplicates |
| 69 | settings.importer.conflict_skip | Skip duplicates |
| 70 | settings.importer.description | Import email messages from .eml files into a folder. |
| 71 | settings.importer.error_details | {count, plural, one {# error} other {# errors}} |
| 72 | settings.importer.fail | Import failed |
| 73 | settings.importer.file_description | Select one or more .eml files to import. |
| 74 | settings.importer.file_label | Files |
| 75 | settings.importer.files_selected | {count, plural, one {# file selected} other {# files selected}} |
| 76 | settings.importer.folder_description | Choose the folder to import messages into. |
| 77 | settings.importer.folder_label | Destination folder |
| 78 | settings.importer.import_complete | Import complete |
| 79 | settings.importer.import_more | Import more |
| 80 | settings.importer.importing | Importing... |
| 81 | settings.importer.progress_failed | {count} failed |
| 82 | settings.importer.progress_imported | {count} imported |
| 83 | settings.importer.progress_skipped | {count} skipped |
| 84 | settings.importer.start_import | {count, plural, one {Import # file} other {Import # files}} |
| 85 | settings.importer.success | {count, plural, one {# message imported} other {# messages imported}} |
| 86 | settings.importer.summary_failed | {count, plural, one {# message failed} other {# messages failed}} |
| 87 | settings.importer.summary_imported | {count, plural, one {# message imported} other {# messages imported}} |
| 88 | settings.importer.summary_skipped | {count, plural, one {# message skipped} other {# messages skipped}} |
| 89 | settings.importer.title | Import Mail |
| 90 | settings.loading | Loading... |
| 91 | settings.refresh | Refresh |
| 92 | settings.tabs.import | Import |
| 93 | settings.tabs.sharing | Sharing |
| 94 | settings.tabs.signatures | Signatures |
| 95 | sharing.accept | Accept |
| 96 | sharing.decline | Decline |
| 97 | sharing.no_shares_by_me | You haven't shared anything yet. |
| 98 | sharing.no_shares_with_me | No folders shared with you yet. |
| 99 | sharing.shared_by | Shared by |
| 100 | sharing.tab_shared_by_me | Shared by me |
| 101 | sharing.tab_shared_with_me | Shared with me |
| 102 | signatures.add_signature | Add signature |
| 103 | signatures.default | Default |
| 104 | signatures.default_signature.description | Used for new messages unless overridden per identity. |
| 105 | signatures.default_signature.label | Default signature |
| 106 | signatures.delete_title | Delete signature? |
| 107 | signatures.description | Create and manage email signatures to use when composing or replying. |
| 108 | signatures.duplicate | Duplicate |
| 109 | signatures.edit_signature | Edit signature |
| 110 | signatures.editor_label | Signature |
| 111 | signatures.html_preview_label | HTML preview |
| 112 | signatures.name_label | Name |
| 113 | signatures.name_placeholder | e.g., Work, Personal |
| 114 | signatures.name_required | Name is required |
| 115 | signatures.new_signature | New signature |
| 116 | signatures.no_signature | No signature |
| 117 | signatures.no_signatures | No signatures yet |
| 118 | signatures.per_identity_signatures.description | Override the default and reply signature for individual identities. |
| 119 | signatures.per_identity_signatures.label | Per-identity signatures |
| 120 | signatures.plain_text_preview_label | Plain text preview |
| 121 | signatures.reply | Reply |
| 122 | signatures.reply_signature.description | Used when replying or forwarding unless overridden per identity. |
| 123 | signatures.reply_signature.label | Reply signature |
| 124 | signatures.show_editor | Show editor |
| 125 | signatures.show_preview | Show preview |
| 126 | signatures.title | Signatures |
| 127 | signatures.toolbar.align_center | Align center |
| 128 | signatures.toolbar.align_left | Align left |
| 129 | signatures.toolbar.align_right | Align right |
| 130 | signatures.toolbar.bold | Bold |
| 131 | signatures.toolbar.bullet_list | Bullet list |
| 132 | signatures.toolbar.italic | Italic |
| 133 | signatures.toolbar.link | Link |
| 134 | signatures.toolbar.ordered_list | Ordered list |
| 135 | signatures.toolbar.remove_color | Remove color |
| 136 | signatures.toolbar.strikethrough | Strikethrough |
| 137 | signatures.toolbar.text_color | Text color |
| 138 | signatures.toolbar.underline | Underline |
| 139 | signatures.use_global_default | Use global default |
| 140 | signatures.your_signatures | Your signatures ({count}) |