1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2025-01-10 13:56:47 +01:00
immich/web/src/lib/constants.ts

284 lines
12 KiB
TypeScript
Raw Normal View History

export enum AssetAction {
ARCHIVE = 'archive',
UNARCHIVE = 'unarchive',
FAVORITE = 'favorite',
UNFAVORITE = 'unfavorite',
feat(server): trash asset (#4015) * refactor(server): delete assets endpoint * fix: formatting * chore: cleanup * chore: open api * chore(mobile): replace DeleteAssetDTO with BulkIdsDTOs * feat: trash an asset * chore(server): formatting * chore: open api * chore: wording * chore: open-api * feat(server): add withDeleted to getAssets queries * WIP: mobile-recycle-bin * feat(server): recycle-bin to system config * feat(web): use recycle-bin system config * chore(server): domain assetcore removed * chore(server): rename recycle-bin to trash * chore(web): rename recycle-bin to trash * chore(server): always send soft deleted assets for getAllByUserId * chore(web): formatting * feat(server): permanent delete assets older than trashed period * feat(web): trash empty placeholder image * feat(server): empty trash * feat(web): empty trash * WIP: mobile-recycle-bin * refactor(server): empty / restore trash to separate endpoint * test(server): handle failures * test(server): fix e2e server-info test * test(server): deletion test refactor * feat(mobile): use map settings from server-config to enable / disable map * feat(mobile): trash asset * fix(server): operations on assets in trash * feat(web): show trash statistics * fix(web): handle trash enabled * fix(mobile): restore updates from trash * fix(server): ignore trashed assets for person * fix(server): add / remove search index when trashed / restored * chore(web): format * fix(server): asset service test * fix(server): include trashed assts for duplicates from uploads * feat(mobile): no dialog for trash, always dialog for permanent delete * refactor(mobile): use isar where instead of dart filter * refactor(mobile): asset provide - handle deletes in single db txn * chore(mobile): review changes * feat(web): confirmation before empty trash * server: review changes * fix(server): handle library changes * fix: filter external assets from getting trashed / deleted * fix(server): empty-bin * feat: broadcast config update events through ws * change order of trash button on mobile * styling * fix(mobile): do not show trashed toast for local only assets --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-10-06 09:01:14 +02:00
TRASH = 'trash',
DELETE = 'delete',
RESTORE = 'restore',
ADD = 'add',
}
export enum AppRoute {
ADMIN_USER_MANAGEMENT = '/admin/user-management',
ADMIN_LIBRARY_MANAGEMENT = '/admin/library-management',
ADMIN_SETTINGS = '/admin/system-settings',
ADMIN_STATS = '/admin/server-status',
ADMIN_JOBS = '/admin/jobs-status',
ADMIN_REPAIR = '/admin/repair',
ALBUMS = '/albums',
LIBRARIES = '/libraries',
ARCHIVE = '/archive',
FAVORITES = '/favorites',
PEOPLE = '/people',
PLACES = '/places',
PHOTOS = '/photos',
EXPLORE = '/explore',
SHARE = '/share',
SHARING = '/sharing',
SHARED_LINKS = '/sharing/sharedlinks',
SEARCH = '/search',
MAP = '/map',
USER_SETTINGS = '/user-settings',
MEMORY = '/memory',
feat(server): trash asset (#4015) * refactor(server): delete assets endpoint * fix: formatting * chore: cleanup * chore: open api * chore(mobile): replace DeleteAssetDTO with BulkIdsDTOs * feat: trash an asset * chore(server): formatting * chore: open api * chore: wording * chore: open-api * feat(server): add withDeleted to getAssets queries * WIP: mobile-recycle-bin * feat(server): recycle-bin to system config * feat(web): use recycle-bin system config * chore(server): domain assetcore removed * chore(server): rename recycle-bin to trash * chore(web): rename recycle-bin to trash * chore(server): always send soft deleted assets for getAllByUserId * chore(web): formatting * feat(server): permanent delete assets older than trashed period * feat(web): trash empty placeholder image * feat(server): empty trash * feat(web): empty trash * WIP: mobile-recycle-bin * refactor(server): empty / restore trash to separate endpoint * test(server): handle failures * test(server): fix e2e server-info test * test(server): deletion test refactor * feat(mobile): use map settings from server-config to enable / disable map * feat(mobile): trash asset * fix(server): operations on assets in trash * feat(web): show trash statistics * fix(web): handle trash enabled * fix(mobile): restore updates from trash * fix(server): ignore trashed assets for person * fix(server): add / remove search index when trashed / restored * chore(web): format * fix(server): asset service test * fix(server): include trashed assts for duplicates from uploads * feat(mobile): no dialog for trash, always dialog for permanent delete * refactor(mobile): use isar where instead of dart filter * refactor(mobile): asset provide - handle deletes in single db txn * chore(mobile): review changes * feat(web): confirmation before empty trash * server: review changes * fix(server): handle library changes * fix: filter external assets from getting trashed / deleted * fix(server): empty-bin * feat: broadcast config update events through ws * change order of trash button on mobile * styling * fix(mobile): do not show trashed toast for local only assets --------- Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-10-06 09:01:14 +02:00
TRASH = '/trash',
PARTNERS = '/partners',
AUTH_LOGIN = '/auth/login',
AUTH_REGISTER = '/auth/register',
AUTH_CHANGE_PASSWORD = '/auth/change-password',
AUTH_ONBOARDING = '/auth/onboarding',
2024-05-23 19:57:25 +02:00
UTILITIES = '/utilities',
DUPLICATES = '/utilities/duplicates',
}
feat (web/server) 360 degrees Web panoramas [attempt 2] (#3412) * commit 1 (isPanorama: boolean) * working solution for projectiontypeenum * fix * format fix * fix * fix * fix * fix * enum projectiontype * working solution with exif * fix * reverted > * fix format * reverted auto-magic api.ts prettification * fix * reverted api.ts autogenerated * api ts regenerated * Update web/src/lib/components/assets/thumbnail/thumbnail.svelte Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com> * Update web/src/lib/components/asset-viewer/asset-viewer.svelte Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com> * exifProjectionType * Update server/src/microservices/processors/metadata-extraction.processor.ts Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com> * projectionType?: string = ProjectionType.NONE; * not null * projectionType!: ProjectionType; * opeapi generator fix * fixes * fix * fix * generate api * asset.exifInifo?.projectionType * Update server/src/domain/asset/response-dto/exif-response.dto.ts Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> * Update server/src/microservices/processors/metadata-extraction.processor.ts Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> * enum -> varchar;projectiontypeenum->projectiontype * asset-viewer fixed prettiffier * @Column({}) single line * enum | string * make api * enum | string * enum | str fix * fix * chore: use string instead of enum * chore: open api * fix: checks --------- Co-authored-by: Sergey Kondrikov <sergey.kondrikov@gmail.com> Co-authored-by: Alex Tran <alex.tran1502@gmail.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2023-07-28 06:29:09 +02:00
export enum ProjectionType {
EQUIRECTANGULAR = 'EQUIRECTANGULAR',
CUBEMAP = 'CUBEMAP',
CUBESTRIP = 'CUBESTRIP',
EQUIRECTANGULAR_STEREO = 'EQUIRECTANGULAR_STEREO',
CUBEMAP_STEREO = 'CUBEMAP_STEREO',
CUBESTRIP_STEREO = 'CUBESTRIP_STEREO',
CYLINDER = 'CYLINDER',
NONE = 'NONE',
}
export const dateFormats = {
album: <Intl.DateTimeFormatOptions>{
month: 'short',
day: 'numeric',
year: 'numeric',
},
};
export enum QueryParameter {
ACTION = 'action',
ASSET_INDEX = 'assetIndex',
IS_OPEN = 'isOpen',
MEMORY_INDEX = 'memoryIndex',
ONBOARDING_STEP = 'step',
OPEN_SETTING = 'openSetting',
PREVIOUS_ROUTE = 'previousRoute',
QUERY = 'query',
SEARCHED_PEOPLE = 'searchedPeople',
SMART_SEARCH = 'smartSearch',
PAGE = 'page',
}
export enum OpenSettingQueryParameterValue {
OAUTH = 'oauth',
JOB = 'job',
STORAGE_TEMPLATE = 'storage-template',
}
export enum ActionQueryParameterValue {
MERGE = 'merge',
}
export const maximumLengthSearchPeople: number = 20;
// time to load the map before displaying the loading spinner
export const timeToLoadTheMap: number = 100;
export const timeBeforeShowLoadingSpinner: number = 100;
export const timeDebounceOnSearch: number = 300;
// should be the same values as the ones in the app.html
export enum Theme {
LIGHT = 'light',
DARK = 'dark',
}
export const fallbackLocale = {
code: 'en-US',
name: 'English (US)',
};
export const locales = [
{ code: 'af-ZA', name: 'Afrikaans (South Africa)' },
{ code: 'sq-AL', name: 'Albanian (Albania)' },
{ code: 'ar-DZ', name: 'Arabic (Algeria)' },
{ code: 'ar-BH', name: 'Arabic (Bahrain)' },
{ code: 'ar-EG', name: 'Arabic (Egypt)' },
{ code: 'ar-IQ', name: 'Arabic (Iraq)' },
{ code: 'ar-JO', name: 'Arabic (Jordan)' },
{ code: 'ar-KW', name: 'Arabic (Kuwait)' },
{ code: 'ar-LB', name: 'Arabic (Lebanon)' },
{ code: 'ar-LY', name: 'Arabic (Libya)' },
{ code: 'ar-MA', name: 'Arabic (Morocco)' },
{ code: 'ar-OM', name: 'Arabic (Oman)' },
{ code: 'ar-QA', name: 'Arabic (Qatar)' },
{ code: 'ar-SA', name: 'Arabic (Saudi Arabia)' },
{ code: 'ar-SY', name: 'Arabic (Syria)' },
{ code: 'ar-TN', name: 'Arabic (Tunisia)' },
{ code: 'ar-AE', name: 'Arabic (United Arab Emirates)' },
{ code: 'ar-YE', name: 'Arabic (Yemen)' },
{ code: 'hy-AM', name: 'Armenian (Armenia)' },
{ code: 'az-AZ', name: 'Azerbaijani (Azerbaijan)' },
{ code: 'eu-ES', name: 'Basque (Spain)' },
{ code: 'be-BY', name: 'Belarusian (Belarus)' },
{ code: 'bn-IN', name: 'Bengali (India)' },
{ code: 'bs-BA', name: 'Bosnian (Bosnia and Herzegovina)' },
{ code: 'bg-BG', name: 'Bulgarian (Bulgaria)' },
{ code: 'ca-ES', name: 'Catalan (Spain)' },
{ code: 'zh-CN', name: 'Chinese (China)' },
{ code: 'zh-HK', name: 'Chinese (Hong Kong SAR China)' },
{ code: 'zh-MO', name: 'Chinese (Macao SAR China)' },
{ code: 'zh-SG', name: 'Chinese (Singapore)' },
{ code: 'zh-TW', name: 'Chinese (Taiwan)' },
{ code: 'hr-HR', name: 'Croatian (Croatia)' },
{ code: 'cs-CZ', name: 'Czech (Czech Republic)' },
{ code: 'da-DK', name: 'Danish (Denmark)' },
{ code: 'nl-BE', name: 'Dutch (Belgium)' },
{ code: 'nl-NL', name: 'Dutch (Netherlands)' },
{ code: 'en-AU', name: 'English (Australia)' },
{ code: 'en-BZ', name: 'English (Belize)' },
{ code: 'en-CA', name: 'English (Canada)' },
{ code: 'en-IE', name: 'English (Ireland)' },
{ code: 'en-JM', name: 'English (Jamaica)' },
{ code: 'en-NZ', name: 'English (New Zealand)' },
{ code: 'en-PH', name: 'English (Philippines)' },
{ code: 'en-ZA', name: 'English (South Africa)' },
{ code: 'en-TT', name: 'English (Trinidad and Tobago)' },
{ code: 'en-VI', name: 'English (U.S. Virgin Islands)' },
{ code: 'en-GB', name: 'English (United Kingdom)' },
chore: update translations (#10003) * chore: add translations (German) * chore: add translations (Dutch) * chore: add translations (Spanish) * chore: add translations (Spanish (es_ES@new)) * chore: (Spanish) Currently translated at 0.1% (1 of 769 strings) Translation: Immich/immich Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/ * chore: remove translations (Spanish (es_ES@new)) * chore: add translations (Arabic) * chore: add translations (Catalan) * chore: add translations (Danish) * chore: add translations (Finnish) * chore: add translations (French) * chore: add translations (Hebrew) * chore: add translations (Hindi) * chore: add translations (Hungarian) * chore: add translations (Italian) * chore: add translations (Japanese) * chore: add translations (Korean) * chore: add translations (Lithuanian) * chore: add translations (Latvian) * chore: add translations (Mongolian) * chore: add translations (Norwegian Bokmål) * chore: add translations (Polish) * chore: add translations (Portuguese) * chore: add translations (Romanian) * chore: add translations (Russian) * chore: add translations (Slovak) * chore: add translations (Slovenian) * chore: add translations (Serbian) * chore: add translations (Swedish) * chore: add translations (Thai) * chore: add translations (Ukrainian) * chore: add translations (Vietnamese) * chore: add translations (Czech) * chore: add translations (Chinese (Simplified) (zh_SIMPLIFIED)) * chore: add base languages --------- Co-authored-by: Immich <immich@futo.org> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-06-06 19:20:41 +02:00
{ code: 'en-US', name: 'English (United States)' },
{ code: 'en-ZW', name: 'English (Zimbabwe)' },
{ code: 'et-EE', name: 'Estonian (Estonia)' },
{ code: 'fo-FO', name: 'Faroese (Faroe Islands)' },
{ code: 'fi-FI', name: 'Finnish (Finland)' },
{ code: 'fr-BE', name: 'French (Belgium)' },
{ code: 'fr-CA', name: 'French (Canada)' },
{ code: 'fr-FR', name: 'French (France)' },
{ code: 'fr-LU', name: 'French (Luxembourg)' },
{ code: 'fr-MC', name: 'French (Monaco)' },
{ code: 'fr-CH', name: 'French (Switzerland)' },
{ code: 'gl-ES', name: 'Galician (Spain)' },
{ code: 'ka-GE', name: 'Georgian (Georgia)' },
{ code: 'de-AT', name: 'German (Austria)' },
{ code: 'de-DE', name: 'German (Germany)' },
{ code: 'de-LI', name: 'German (Liechtenstein)' },
{ code: 'de-LU', name: 'German (Luxembourg)' },
{ code: 'de-CH', name: 'German (Switzerland)' },
{ code: 'el-GR', name: 'Greek (Greece)' },
{ code: 'gu-IN', name: 'Gujarati (India)' },
{ code: 'he-IL', name: 'Hebrew (Israel)' },
{ code: 'hi-IN', name: 'Hindi (India)' },
{ code: 'hu-HU', name: 'Hungarian (Hungary)' },
{ code: 'is-IS', name: 'Icelandic (Iceland)' },
{ code: 'id-ID', name: 'Indonesian (Indonesia)' },
{ code: 'it-IT', name: 'Italian (Italy)' },
{ code: 'it-CH', name: 'Italian (Switzerland)' },
{ code: 'ja-JP', name: 'Japanese (Japan)' },
{ code: 'kn-IN', name: 'Kannada (India)' },
{ code: 'kk-KZ', name: 'Kazakh (Kazakhstan)' },
{ code: 'kok-IN', name: 'Konkani (India)' },
{ code: 'ko-KR', name: 'Korean (South Korea)' },
{ code: 'lv-LV', name: 'Latvian (Latvia)' },
{ code: 'lt-LT', name: 'Lithuanian (Lithuania)' },
{ code: 'mk-MK', name: 'Macedonian (Macedonia)' },
{ code: 'ms-BN', name: 'Malay (Brunei)' },
{ code: 'ms-MY', name: 'Malay (Malaysia)' },
{ code: 'ml-IN', name: 'Malayalam (India)' },
{ code: 'mt-MT', name: 'Maltese (Malta)' },
{ code: 'mr-IN', name: 'Marathi (India)' },
{ code: 'mn-MN', name: 'Mongolian (Mongolia)' },
{ code: 'se-NO', name: 'Northern Sami (Norway)' },
{ code: 'nb-NO', name: 'Norwegian Bokmål (Norway)' },
{ code: 'nn-NO', name: 'Norwegian Nynorsk (Norway)' },
{ code: 'fa-IR', name: 'Persian (Iran)' },
{ code: 'pl-PL', name: 'Polish (Poland)' },
{ code: 'pt-BR', name: 'Portuguese (Brazil)' },
{ code: 'pt-PT', name: 'Portuguese (Portugal)' },
{ code: 'pa-IN', name: 'Punjabi (India)' },
{ code: 'ro-RO', name: 'Romanian (Romania)' },
{ code: 'ru-RU', name: 'Russian (Russia)' },
{ code: 'sr-BA', name: 'Serbian (Bosnia and Herzegovina)' },
{ code: 'sr-CS', name: 'Serbian (Serbia And Montenegro)' },
{ code: 'sk-SK', name: 'Slovak (Slovakia)' },
{ code: 'sl-SI', name: 'Slovenian (Slovenia)' },
{ code: 'es-AR', name: 'Spanish (Argentina)' },
{ code: 'es-BO', name: 'Spanish (Bolivia)' },
{ code: 'es-CL', name: 'Spanish (Chile)' },
{ code: 'es-CO', name: 'Spanish (Colombia)' },
{ code: 'es-CR', name: 'Spanish (Costa Rica)' },
{ code: 'es-DO', name: 'Spanish (Dominican Republic)' },
{ code: 'es-EC', name: 'Spanish (Ecuador)' },
{ code: 'es-SV', name: 'Spanish (El Salvador)' },
{ code: 'es-GT', name: 'Spanish (Guatemala)' },
{ code: 'es-HN', name: 'Spanish (Honduras)' },
{ code: 'es-MX', name: 'Spanish (Mexico)' },
{ code: 'es-NI', name: 'Spanish (Nicaragua)' },
{ code: 'es-PA', name: 'Spanish (Panama)' },
{ code: 'es-PY', name: 'Spanish (Paraguay)' },
{ code: 'es-PE', name: 'Spanish (Peru)' },
{ code: 'es-PR', name: 'Spanish (Puerto Rico)' },
{ code: 'es-ES', name: 'Spanish (Spain)' },
{ code: 'es-UY', name: 'Spanish (Uruguay)' },
{ code: 'es-VE', name: 'Spanish (Venezuela)' },
{ code: 'sw-KE', name: 'Swahili (Kenya)' },
{ code: 'sv-FI', name: 'Swedish (Finland)' },
{ code: 'sv-SE', name: 'Swedish (Sweden)' },
{ code: 'te-IN', name: 'Telugu (India)' },
{ code: 'th-TH', name: 'Thai (Thailand)' },
{ code: 'tn-ZA', name: 'Tswana (South Africa)' },
{ code: 'tr-TR', name: 'Turkish (Turkey)' },
{ code: 'uk-UA', name: 'Ukrainian (Ukraine)' },
{ code: 'uz-UZ', name: 'Uzbek (Uzbekistan)' },
{ code: 'vi-VN', name: 'Vietnamese (Vietnam)' },
{ code: 'cy-GB', name: 'Welsh (United Kingdom)' },
{ code: 'xh-ZA', name: 'Xhosa (South Africa)' },
{ code: 'zu-ZA', name: 'Zulu (South Africa)' },
];
feat(web): translations (#9854) * First test * Added translation using Weblate (French) * Translated using Weblate (German) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/fr/ * Further testing * Further testing * Translated using Weblate (German) Currently translated at 100.0% (18 of 18 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Further work * Update string file. * More strings * Automatically changed strings * Add automatically translated german file for testing purposes * Fix merge-face-selector component * Make server stats strings uppercase * Fix uppercase string * Fix some strings in jobs-panel * Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements * Update german test translations * Fix typo in locales file * Change string keys * Extract more strings * Extract and replace some more strings * Update testtranslationfile * Change translation keys * Fix rebase errors * Fix one more rebase error * Remove german translation file * Co-authored-by: Daniel Dietzler <danieldietzler@users.noreply.github.com> * chore: clean up translations * chore: add new line * fix formatting * chore: fixes * fix: loading and tests --------- Co-authored-by: root <root@Blacki> Co-authored-by: admin <admin@example.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-06-04 21:53:00 +02:00
2024-06-07 18:35:05 +02:00
export const defaultLang = { name: 'English', code: 'en', loader: () => import('$lib/i18n/en.json') };
feat(web): translations (#9854) * First test * Added translation using Weblate (French) * Translated using Weblate (German) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/fr/ * Further testing * Further testing * Translated using Weblate (German) Currently translated at 100.0% (18 of 18 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Further work * Update string file. * More strings * Automatically changed strings * Add automatically translated german file for testing purposes * Fix merge-face-selector component * Make server stats strings uppercase * Fix uppercase string * Fix some strings in jobs-panel * Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements * Update german test translations * Fix typo in locales file * Change string keys * Extract more strings * Extract and replace some more strings * Update testtranslationfile * Change translation keys * Fix rebase errors * Fix one more rebase error * Remove german translation file * Co-authored-by: Daniel Dietzler <danieldietzler@users.noreply.github.com> * chore: clean up translations * chore: add new line * fix formatting * chore: fixes * fix: loading and tests --------- Co-authored-by: root <root@Blacki> Co-authored-by: admin <admin@example.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-06-04 21:53:00 +02:00
export const langs = [
chore: update translations (#10003) * chore: add translations (German) * chore: add translations (Dutch) * chore: add translations (Spanish) * chore: add translations (Spanish (es_ES@new)) * chore: (Spanish) Currently translated at 0.1% (1 of 769 strings) Translation: Immich/immich Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/ * chore: remove translations (Spanish (es_ES@new)) * chore: add translations (Arabic) * chore: add translations (Catalan) * chore: add translations (Danish) * chore: add translations (Finnish) * chore: add translations (French) * chore: add translations (Hebrew) * chore: add translations (Hindi) * chore: add translations (Hungarian) * chore: add translations (Italian) * chore: add translations (Japanese) * chore: add translations (Korean) * chore: add translations (Lithuanian) * chore: add translations (Latvian) * chore: add translations (Mongolian) * chore: add translations (Norwegian Bokmål) * chore: add translations (Polish) * chore: add translations (Portuguese) * chore: add translations (Romanian) * chore: add translations (Russian) * chore: add translations (Slovak) * chore: add translations (Slovenian) * chore: add translations (Serbian) * chore: add translations (Swedish) * chore: add translations (Thai) * chore: add translations (Ukrainian) * chore: add translations (Vietnamese) * chore: add translations (Czech) * chore: add translations (Chinese (Simplified) (zh_SIMPLIFIED)) * chore: add base languages --------- Co-authored-by: Immich <immich@futo.org> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-06-06 19:20:41 +02:00
{ name: 'Arabic', code: 'ar', loader: () => import('$lib/i18n/ar.json') },
{ name: 'Catalan', code: 'ca', loader: () => import('$lib/i18n/ca.json') },
{ name: 'Czech', code: 'cs', loader: () => import('$lib/i18n/cs.json') },
{ name: 'Danish', code: 'da', loader: () => import('$lib/i18n/da.json') },
{ name: 'German', code: 'de', loader: () => import('$lib/i18n/de.json') },
2024-06-07 18:35:05 +02:00
defaultLang,
chore: update translations (#10003) * chore: add translations (German) * chore: add translations (Dutch) * chore: add translations (Spanish) * chore: add translations (Spanish (es_ES@new)) * chore: (Spanish) Currently translated at 0.1% (1 of 769 strings) Translation: Immich/immich Translate-URL: https://hosted.weblate.org/projects/immich/immich/es/ * chore: remove translations (Spanish (es_ES@new)) * chore: add translations (Arabic) * chore: add translations (Catalan) * chore: add translations (Danish) * chore: add translations (Finnish) * chore: add translations (French) * chore: add translations (Hebrew) * chore: add translations (Hindi) * chore: add translations (Hungarian) * chore: add translations (Italian) * chore: add translations (Japanese) * chore: add translations (Korean) * chore: add translations (Lithuanian) * chore: add translations (Latvian) * chore: add translations (Mongolian) * chore: add translations (Norwegian Bokmål) * chore: add translations (Polish) * chore: add translations (Portuguese) * chore: add translations (Romanian) * chore: add translations (Russian) * chore: add translations (Slovak) * chore: add translations (Slovenian) * chore: add translations (Serbian) * chore: add translations (Swedish) * chore: add translations (Thai) * chore: add translations (Ukrainian) * chore: add translations (Vietnamese) * chore: add translations (Czech) * chore: add translations (Chinese (Simplified) (zh_SIMPLIFIED)) * chore: add base languages --------- Co-authored-by: Immich <immich@futo.org> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-06-06 19:20:41 +02:00
{ name: 'Spanish', code: 'es', loader: () => import('$lib/i18n/es.json') },
{ name: 'Finnish', code: 'fi', loader: () => import('$lib/i18n/fi.json') },
{ name: 'French', code: 'fr', loader: () => import('$lib/i18n/fr.json') },
{ name: 'Hebrew', code: 'he', loader: () => import('$lib/i18n/he.json') },
{ name: 'Hindi', code: 'hi', loader: () => import('$lib/i18n/hi.json') },
{ name: 'Hungarian', code: 'hu', loader: () => import('$lib/i18n/hu.json') },
{ name: 'Italian', code: 'it', loader: () => import('$lib/i18n/it.json') },
{ name: 'Japanese', code: 'ja', loader: () => import('$lib/i18n/ja.json') },
{ name: 'Korean', code: 'ko', loader: () => import('$lib/i18n/ko.json') },
{ name: 'Lithuanian', code: 'lt', loader: () => import('$lib/i18n/lt.json') },
{ name: 'Latvian', code: 'lv', loader: () => import('$lib/i18n/lv.json') },
{ name: 'Mongolian', code: 'mn', loader: () => import('$lib/i18n/mn.json') },
{ name: 'Norwegian Bokmål', code: 'nb_NO', loader: () => import('$lib/i18n/nb_NO.json') },
{ name: 'Dutch', code: 'nl', loader: () => import('$lib/i18n/nl.json') },
{ name: 'Polish', code: 'pl', loader: () => import('$lib/i18n/pl.json') },
{ name: 'Portuguese', code: 'pt', loader: () => import('$lib/i18n/pt.json') },
{ name: 'Romanian', code: 'ro', loader: () => import('$lib/i18n/ro.json') },
{ name: 'Russian', code: 'ru', loader: () => import('$lib/i18n/ru.json') },
{ name: 'Slovak', code: 'sk', loader: () => import('$lib/i18n/sk.json') },
{ name: 'Slovenian', code: 'sl', loader: () => import('$lib/i18n/sl.json') },
{ name: 'Serbian', code: 'sr', loader: () => import('$lib/i18n/sr.json') },
{ name: 'Swedish', code: 'sv', loader: () => import('$lib/i18n/sv.json') },
{ name: 'Thai', code: 'th', loader: () => import('$lib/i18n/th.json') },
{ name: 'Ukrainian', code: 'uk', loader: () => import('$lib/i18n/uk.json') },
{ name: 'Vietnamese', code: 'vi', loader: () => import('$lib/i18n/vi.json') },
{ name: 'Chinese (Simplified)', code: 'zh_SIMPLIFIED', loader: () => import('$lib/i18n/zh_SIMPLIFIED.json') },
{ name: 'Development (keys only)', code: 'dev', loader: () => Promise.resolve({}) },
feat(web): translations (#9854) * First test * Added translation using Weblate (French) * Translated using Weblate (German) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Translated using Weblate (French) Currently translated at 100.0% (4 of 4 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/fr/ * Further testing * Further testing * Translated using Weblate (German) Currently translated at 100.0% (18 of 18 strings) Translation: immich/web Translate-URL: http://familie-mach.net/projects/immich/web/de/ * Further work * Update string file. * More strings * Automatically changed strings * Add automatically translated german file for testing purposes * Fix merge-face-selector component * Make server stats strings uppercase * Fix uppercase string * Fix some strings in jobs-panel * Fix lower and uppercase strings. Add a few additional string. Fix a few unnecessary replacements * Update german test translations * Fix typo in locales file * Change string keys * Extract more strings * Extract and replace some more strings * Update testtranslationfile * Change translation keys * Fix rebase errors * Fix one more rebase error * Remove german translation file * Co-authored-by: Daniel Dietzler <danieldietzler@users.noreply.github.com> * chore: clean up translations * chore: add new line * fix formatting * chore: fixes * fix: loading and tests --------- Co-authored-by: root <root@Blacki> Co-authored-by: admin <admin@example.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com> Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-06-04 21:53:00 +02:00
];