From 4e9647651c565747fd86270198b6ffc23fe6d5e0 Mon Sep 17 00:00:00 2001 From: zak <134242+strass@users.noreply.github.com> Date: Thu, 18 Jul 2024 20:06:44 -0700 Subject: [PATCH 001/106] label generation tool prefills already allocated items --- frontend/pages/reports/label-generator.vue | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/frontend/pages/reports/label-generator.vue b/frontend/pages/reports/label-generator.vue index e7281bf4b..c010a28ca 100644 --- a/frontend/pages/reports/label-generator.vue +++ b/frontend/pages/reports/label-generator.vue @@ -181,7 +181,7 @@ return route(`/qrcode`, { data: encodeURIComponent(data) }); } - function getItem(n: number): LabelData { + function getItem(n: number, item: { value: { name: string, location: string } } | null): LabelData { // format n into - seperated string with leading zeros const assetID = fmtAssetID(n); @@ -189,11 +189,21 @@ return { url: getQRCodeUrl(assetID), assetID, - name: "_______________", - location: "_______________", + name: item?.value?.name ?? "_______________", + location: item?.value?.location ?? "_______________", }; } + const { data: allFields } = useAsyncData(async () => { + const { data, error } = await api.items.fields.getAll(); + + if (error) { + return []; + } + + return data; + }); + const items = computed(() => { if (displayProperties.assetRange > displayProperties.assetRangeMax) { return []; @@ -207,7 +217,7 @@ const items: LabelData[] = []; for (let i = displayProperties.assetRange; i < displayProperties.assetRangeMax; i++) { - items.push(getItem(i)); + items.push(getItem(i, allFields[i] ?? null)); } return items; }); From f51de343557a2eae8f547bf7b23e9d50287c818c Mon Sep 17 00:00:00 2001 From: Zak Strassberg Date: Fri, 19 Jul 2024 06:09:51 +0000 Subject: [PATCH 002/106] fix issues with api usage and import --- frontend/pages/reports/label-generator.vue | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/pages/reports/label-generator.vue b/frontend/pages/reports/label-generator.vue index c010a28ca..0d0c48a1b 100644 --- a/frontend/pages/reports/label-generator.vue +++ b/frontend/pages/reports/label-generator.vue @@ -9,6 +9,8 @@ title: "Homebox | Printer", }); + const api = useUserApi(); + const bordered = ref(false); const displayProperties = reactive({ @@ -181,7 +183,7 @@ return route(`/qrcode`, { data: encodeURIComponent(data) }); } - function getItem(n: number, item: { value: { name: string, location: string } } | null): LabelData { + function getItem(n: number, item: { value: { name: string; location: string } } | null): LabelData { // format n into - seperated string with leading zeros const assetID = fmtAssetID(n); @@ -189,13 +191,13 @@ return { url: getQRCodeUrl(assetID), assetID, - name: item?.value?.name ?? "_______________", - location: item?.value?.location ?? "_______________", + name: item?.name ?? "_______________", + location: item?.location?.name ?? "_______________", }; } - const { data: allFields } = useAsyncData(async () => { - const { data, error } = await api.items.fields.getAll(); + const { data: allFields } = await useAsyncData(async () => { + const { data, error } = await api.items.getAll(); if (error) { return []; @@ -217,7 +219,7 @@ const items: LabelData[] = []; for (let i = displayProperties.assetRange; i < displayProperties.assetRangeMax; i++) { - items.push(getItem(i, allFields[i] ?? null)); + items.push(getItem(i, allFields?.value?.items?.[i] ?? null)); } return items; }); From 229d4db99684bf13c1bee5ccfe1a38d484f421c0 Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Mon, 2 Sep 2024 20:29:32 -0400 Subject: [PATCH 003/106] fix: types --- frontend/pages/reports/label-generator.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/pages/reports/label-generator.vue b/frontend/pages/reports/label-generator.vue index 0b26c733c..2e440a99d 100644 --- a/frontend/pages/reports/label-generator.vue +++ b/frontend/pages/reports/label-generator.vue @@ -183,7 +183,7 @@ return route(`/qrcode`, { data: encodeURIComponent(data) }); } - function getItem(n: number, item: { value: { name: string; location: string } } | null): LabelData { + function getItem(n: number, item: { name: string; location: { name: string } } | null): LabelData { // format n into - seperated string with leading zeros const assetID = fmtAssetID(n); From 969ef1941b67fa17a8728f97b5adf46307c2fe26 Mon Sep 17 00:00:00 2001 From: Weblate Date: Sat, 14 Sep 2024 22:48:35 +0000 Subject: [PATCH 004/106] Translated using Weblate (Russian) Currently translated at 65.2% (92 of 141 strings) Translated using Weblate (Spanish) Currently translated at 84.3% (119 of 141 strings) Translated using Weblate (Spanish) Currently translated at 84.3% (119 of 141 strings) Translated using Weblate (German) Currently translated at 80.1% (113 of 141 strings) Co-authored-by: Kollskoya Co-authored-by: MyMemory Co-authored-by: Slydite4 <39199098+Slydite4@users.noreply.github.com> Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/de/ Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/es/ Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/ru/ Translation: Homebox/Frontend --- frontend/locales/de.json | 3 ++- frontend/locales/es.json | 41 +++++++++++++++++++++++++++++++++++++++- frontend/locales/ru.json | 4 +++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/frontend/locales/de.json b/frontend/locales/de.json index 2b9eb5a36..ec4fb01fe 100644 --- a/frontend/locales/de.json +++ b/frontend/locales/de.json @@ -133,7 +133,8 @@ "import": "Inventar importieren", "export_sub": "Exportiert das Standard-CSV-Format für Homebox. Damit werden alle Artikel in deinem Inventar exportiert.", "export": "Inventar exportieren", - "import_sub": "Importiert das Standard-CSV-Format für Homebox. Ohne eine ''HB.import_ref'' Spalte werden vorhandenen Artikel in Ihrem Bestand ''nicht'' überschrieben, sondern nur neue Artikel hinzugefügt. Zeilen mit einer ''HB.import_ref'' Spalte werden mit vorhandenen Artikeln mit der gleichen import_ref zusammengeführt, sofern vorhanden." + "import_sub": "Importiert das Standard-CSV-Format für Homebox. Ohne eine ''HB.import_ref'' Spalte werden vorhandenen Artikel in Ihrem Bestand ''nicht'' überschrieben, sondern nur neue Artikel hinzugefügt. Zeilen mit einer ''HB.import_ref'' Spalte werden mit vorhandenen Artikeln mit der gleichen import_ref zusammengeführt, sofern vorhanden.", + "export_button": "Inventar exportieren" }, "reports_set": { "bill_of_materials_button": "Stückliste generieren", diff --git a/frontend/locales/es.json b/frontend/locales/es.json index d30d2d3e9..70fccaa05 100644 --- a/frontend/locales/es.json +++ b/frontend/locales/es.json @@ -123,6 +123,45 @@ "user_profile_sub": "Invita a usuarios y gestiona tu cuenta.", "delete_account_sub": "Elimina tu cuenta y todos sus datos asociados. Esto no se puede deshacer.", "notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Notificación", - "theme_settings_sub": "La configuración del tema se guarda en el almacenamiento local de tu navegador. Puedes cambiar el tema en cualquier momento. Si tienes\n problemas para configurar el tema, prueba a actualizar el navegador." + "theme_settings_sub": "La configuración del tema se guarda en el almacenamiento local de tu navegador. Puedes cambiar el tema en cualquier momento. Si tienes\n problemas para configurar el tema, prueba a actualizar el navegador.", + "language": "Idioma" + }, + "tools": { + "reports_sub": "Genera diferentes informes para tu inventario.", + "reports": "Informes", + "reports_set": { + "bill_of_materials_button": "Generar lista de materiales", + "bill_of_materials_sub": "Genera un archivo CSV (Valores Separados por Comas) que puede importarse a un programa de hojas de cálculo. Es un resumen de tu inventario con información básica sobre artículos y precios." + }, + "actions_set": { + "ensure_ids_sub": "Garantiza que todos los elementos de tu inventario tienen un campo asset_id válido. Esto se hace encontrando el campo asset_id actual más alto en la base de datos y aplicando el siguiente valor a cada artículo que tenga un campo asset_id sin establecer. Esto se hace en orden del campo created_at.", + "ensure_import_refs_sub": "Garantiza que todos los artículos de tu inventario tienen un campo import_ref válido. Esto se hace generando aleatoriamente una cadena de 8 caracteres para cada artículo que tenga un campo import_ref sin establecer." + }, + "import_export_sub": "Importa y exporta tu inventario a y desde un archivo CSV. Esto es útil para migrar tu inventario a una nueva instancia de Homebox.", + "import_export_set": { + "export_sub": "Exporta el formato CSV estándar para Homebox. Esto exportará todos los elementos de tu inventario." + }, + "import_export": "Importar/Exportar", + "actions_sub": "Aplica Acciones a tu inventario de forma masiva. Estas son acciones irreversibles. ''Ten Cuidado.''" + }, + "languages": { + "ca": "Catalán", + "de": "Alemán", + "es": "Español", + "fr": "Francés", + "hu": "Húngaro", + "it": "Italiano", + "nl": "Holandés", + "pl": "Polaco", + "ru": "Ruso", + "sl": "Esloveno", + "sv": "Sueco", + "tr": "Turco", + "zh-CN": "Chino (Simplificado)", + "zh-HK": "Chino (Hong Kong)", + "zh-MO": "Chino (Macao)", + "zh-TW": "Chino (Tradicional)", + "en": "Inglés", + "pt-BR": "Portugués (Brasil)" } } diff --git a/frontend/locales/ru.json b/frontend/locales/ru.json index 756cc2964..4acc648f0 100644 --- a/frontend/locales/ru.json +++ b/frontend/locales/ru.json @@ -123,6 +123,8 @@ "theme_settings_sub": "Настройки темы хранятся в локальном хранилище браузера. Вы можете изменить тему в любое время. Если у вас\n не удается установить тему, попробуйте перезапустить браузер.", "delete_account_sub": "Удалить свой аккаунт и все связанные с ним данные. Это действие невозможно отменить.", "gen_invite": "Сгенерировать ссылку-приглашение", - "group_settings_sub": "Настройки общей группы. Для применения изменений возможно потребуется перезагрузить страницу." + "group_settings_sub": "Настройки общей группы. Для применения изменений возможно потребуется перезагрузить страницу.", + "language": "Язык", + "update_language": "Обновить язык" } } From d1a57e3ec5c67025ed410526d5c9f8b6cf1e53b3 Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Sat, 14 Sep 2024 22:45:55 -0400 Subject: [PATCH 005/106] fix: ignore localhost in docs as dead link --- docs/.vitepress/config.mts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 4ca480390..2eb2b4fc9 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -2,6 +2,10 @@ import { defineConfig } from 'vitepress' // https://vitepress.dev/reference/site-config export default defineConfig({ + ignoreDeadLinks: [ + /^https?:\/\/localhost:7745/, + ], + title: "HomeBox", description: "A simple home inventory management software", lastUpdated: true, From 3da3025935ce6df4997e81da214031cd3b9bddbf Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Sat, 14 Sep 2024 22:53:09 -0400 Subject: [PATCH 006/106] chore: Update translation contribution documentation. --- docs/en/contribute/get-started.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/en/contribute/get-started.md b/docs/en/contribute/get-started.md index 9c7901665..d335e7ad9 100644 --- a/docs/en/contribute/get-started.md +++ b/docs/en/contribute/get-started.md @@ -58,7 +58,12 @@ For documentation contributions, you only need Node.js and PNPM. ::: ## Translations -We use our own [Weblate instance](https://translate.sysadminsmedia.com/projects/homebox/) for translations. If you would like to help translate Homebox, please visit the Weblate instance and help us translate the project. +We use our own [Weblate instance](https://translate.sysadminsmedia.com/projects/homebox/) for translations. If you would like to help translate Homebox, please visit the +Weblate instance and help us translate the project. We accept translations for any language. + +If you add a new language, please go to the English translation, press the `Add new translation string` button and then +use `languages.` as the key. For example, if you are adding a French translation, the key would be `languages.fr`. +And then the string should be the name of the language in English. This is used to display the language in the language switcher. [![Translation status](http://translate.sysadminsmedia.com/widget/homebox/multi-auto.svg)](http://translate.sysadminsmedia.com/engage/homebox/) From 0c8ce366eb6473058baaacae6254de3651408348 Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Sat, 14 Sep 2024 22:59:18 -0400 Subject: [PATCH 007/106] refactor: move english menu to separate file. --- docs/.vitepress/config.mts | 26 ++------------------------ docs/.vitepress/menus/en.mts | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 24 deletions(-) create mode 100644 docs/.vitepress/menus/en.mts diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 2eb2b4fc9..5c83b82d3 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,4 +1,5 @@ import { defineConfig } from 'vitepress' +import enMenu from "./menus/en.mjs"; // https://vitepress.dev/reference/site-config export default defineConfig({ @@ -36,30 +37,7 @@ export default defineConfig({ ], sidebar: { - '/en/': [ - { - text: 'Getting Started', - items: [ - { text: 'Quick Start', link: '/en/quick-start' }, - { text: 'Installation', link: '/en/installation' }, - { text: 'Configure Homebox', link: '/en/configure-homebox' }, - { text: 'Tips and Tricks', link: '/en/tips-tricks' } - ] - }, - { - text: 'Advanced', - items: [ - { text: 'Import CSV', link: '/en/import-csv' }, - ] - }, - { - text: 'Contributing', - items: [ - { text: 'Get Started', link: '/en/contribute/get-started' }, - { text: 'Bounty Program', link: '/en/contribute/bounty' } - ] - } - ] + '/en/': enMenu, }, socialLinks: [ diff --git a/docs/.vitepress/menus/en.mts b/docs/.vitepress/menus/en.mts new file mode 100644 index 000000000..b0257a3ff --- /dev/null +++ b/docs/.vitepress/menus/en.mts @@ -0,0 +1,24 @@ +export default [ + { + text: 'Getting Started', + items: [ + {text: 'Quick Start', link: '/en/quick-start'}, + {text: 'Installation', link: '/en/installation'}, + {text: 'Configure Homebox', link: '/en/configure-homebox'}, + {text: 'Tips and Tricks', link: '/en/tips-tricks'} + ] + }, + { + text: 'Advanced', + items: [ + {text: 'Import CSV', link: '/en/import-csv'}, + ] + }, + { + text: 'Contributing', + items: [ + {text: 'Get Started', link: '/en/contribute/get-started'}, + {text: 'Bounty Program', link: '/en/contribute/bounty'} + ] + } +] \ No newline at end of file From d63d6e94ddda0d13df8b50312a50776d67651f0a Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Sat, 14 Sep 2024 23:15:51 -0400 Subject: [PATCH 008/106] refactor: add doc head metadata --- docs/.vitepress/config.mts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 5c83b82d3..19535d27f 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -14,6 +14,15 @@ export default defineConfig({ hostname: 'https://homebox.software', }, + head: [ + ['link', { rel: 'icon', href: '/favicon.svg' }], + ['meta', { name: 'theme-color', content: '#3eaf7c' }], + ['meta', { name: 'og:title', content: 'HomeBox' }], + ['meta', { name: 'og:description', content: 'A simple home inventory management software' }], + ['meta', { name: 'og:image', content: '/homebox-email-banner.jpg' }], + ['meta', { name: 'twitter:card', content: 'summary' }], + ], + locales: { en: { label: 'English', From 6fa37cb474c2b3e22a7fbd0581c710919195bdaa Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 01:23:56 +0000 Subject: [PATCH 009/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 65.9% (93 of 141 strings) Translated using Weblate (Russian) Currently translated at 67.3% (95 of 141 strings) Co-authored-by: Fedor M Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/ru/ Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/zh_Hans/ Translation: Homebox/Frontend --- frontend/locales/ru.json | 84 ++++++++++++++++++---------------- frontend/locales/zh-CN.json | 89 +++++++++++++++++++------------------ 2 files changed, 91 insertions(+), 82 deletions(-) diff --git a/frontend/locales/ru.json b/frontend/locales/ru.json index 4acc648f0..1e9c8f8f6 100644 --- a/frontend/locales/ru.json +++ b/frontend/locales/ru.json @@ -2,9 +2,9 @@ "components": { "app": { "import_dialog": { - "title": "Импорт CSV файла", "change_warning": "Изменено поведение для импортов с существующими import_ref. Если в CSV-файле присутствует import_ref, \nто элемент будет обновлен значениями из CSV-файла.", "description": "Импортируйте CSV-файл, содержащий ваши предметы, ярлыки и местоположения. Для получения информации о требуемом формате \nсм. документацию.", + "title": "Импорт CSV файла", "upload": "Загрузить" } }, @@ -18,41 +18,41 @@ }, "item": { "create_modal": { - "title": "Создать элемент", - "photo_button": "Фото 📷" + "photo_button": "Фото 📷", + "title": "Создать элемент" }, "view": { "selectable": { + "card": "Карта", "items": "Элементы", "no_items": "Нет элементов для отображения", - "table": "Таблица", - "card": "Карта" + "table": "Таблица" } } }, - "location": { + "label": { "create_modal": { - "title": "Создать локацию" + "title": "Создать ярлык" } }, - "label": { + "location": { "create_modal": { - "title": "Создать ярлык" + "title": "Создать локацию" } } }, "global": { - "email": "Email", - "items": "Элементы", "build": "Сборка: { build }", "confirm": "Подтвердить", "create": "Создать", "create_and_add": "Создать и добавить еще", "created": "Создано", + "email": "Email", "follow_dev": "Следить за разработчиком", "github": "Проект Github", - "labels": "Ярлыки", + "items": "Элементы", "join_discord": "Присоединяйтесь к Discord", + "labels": "Ярлыки", "locations": "Локации", "name": "Имя", "password": "Пароль", @@ -64,67 +64,75 @@ "welcome": "Добро пожаловать, { username }" }, "index": { + "disabled_registration": "Регистрация отключена", + "dont_join_group": "Не хотите ли вступить в группу?", + "joining_group": "Вы присоединяетесь к уже существующей группе!", "login": "Войти", "register": "Зарегистрироваться", + "remember_me": "Запомнить меня", "set_email": "Какой у вас адрес электронной почты?", "set_name": "Как вас зовут?", "set_password": "Установите пароль", - "tagline": "Отслеживайте, упорядочивайте и управляйте своими вещами.", - "disabled_registration": "Регистрация отключена", - "dont_join_group": "Не хотите ли вступить в группу?", - "remember_me": "Запомнить меня", - "joining_group": "Вы присоединяетесь к уже существующей группе!" + "tagline": "Отслеживайте, упорядочивайте и управляйте своими вещами." }, "items": { "add": "Добавить", "created_at": "Создано в", "custom_fields": "Настраиваемые поля", - "first": "Первый", - "pages": "Страница {page} из {totalPages}", - "prev_page": "Предыдущая страница", - "reset_search": "Сбросить Поиск", "field_selector": "Поле выбора", "field_value": "Значение поля", + "first": "Первый", + "include_archive": "Включить архивированные элементы", "last": "Последний", "negate_labels": "Снять выбранные ярлыки", "next_page": "Следующая страница", "no_results": "Элементы не найдены", "options": "Параметры", + "order_by": "Сортировка по", + "pages": "Страница {page} из {totalPages}", + "prev_page": "Предыдущая страница", + "query_id": "Запрос идентификационного номера актива: { id }", + "reset_search": "Сбросить Поиск", "results": "{ total } Результатов", + "tip_1": "При фильтрации по локации и по ярлыкам используется логический оператор «ИЛИ». Если выбрано несколько фильтров, то для срабатывания\n требуется лишь одно совпадение.", + "tip_2": "Поисковые запросы с префиксом \"#\" должны включать в себя ID актива (прим. '#000-001')", + "tip_3": "Фильтры по полю используют операцию «ИЛИ». Если выбрано несколько фильтров, для совпадения\n требуется только один.", "tips": "Подсказки", "tips_sub": "Поисковые подсказки", - "updated_at": "Обновлено в", - "tip_3": "Фильтры по полю используют операцию «ИЛИ». Если выбрано несколько фильтров, для совпадения\n требуется только один.", - "tip_2": "Поисковые запросы с префиксом \"#\" должны включать в себя ID актива (прим. '#000-001')", - "include_archive": "Включить архивированные элементы", - "order_by": "Сортировка по", - "query_id": "Запрос идентификационного номера актива: { id }", - "tip_1": "При фильтрации по локации и по ярлыкам используется логический оператор «ИЛИ». Если выбрано несколько фильтров, то для срабатывания\n требуется лишь одно совпадение." + "updated_at": "Обновлено в" }, "profile": { - "new_password": "Новый пароль", - "update_group": "Обновить группу", "active": "Активный", "change_password": "Изменить пароль", "currency_format": "Формат валюты", "current_password": "Текущий пароль", "delete_account": "Удалить аккаунт", + "delete_account_sub": "Удалить свой аккаунт и все связанные с ним данные. Это действие невозможно отменить.", + "display_header": "{ currentValue, select, true {Hide Header} false {Show Header} other {Not Hit}}", + "enabled": "Активен", + "gen_invite": "Сгенерировать ссылку-приглашение", "group_settings": "Настройки группы", + "group_settings_sub": "Настройки общей группы. Для применения изменений возможно потребуется перезагрузить страницу.", "inactive": "Неактивный", + "language": "Язык", + "new_password": "Новый пароль", "notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Уведомитель", "notifiers": "Уведомители", "notifiers_sub": "Получить уведомление о предстоящем обслуживании", "test": "Тест", "theme_settings": "Настройки темы", + "theme_settings_sub": "Настройки темы хранятся в локальном хранилище браузера. Вы можете изменить тему в любое время. Если у вас\n не удается установить тему, попробуйте перезапустить браузер.", + "update_group": "Обновить группу", + "update_language": "Обновить язык", "url": "URL", "user_profile": "Профиль пользователя", - "user_profile_sub": "Приглашайте пользователей и управляйте своим аккаунтом.", - "enabled": "Активен", - "theme_settings_sub": "Настройки темы хранятся в локальном хранилище браузера. Вы можете изменить тему в любое время. Если у вас\n не удается установить тему, попробуйте перезапустить браузер.", - "delete_account_sub": "Удалить свой аккаунт и все связанные с ним данные. Это действие невозможно отменить.", - "gen_invite": "Сгенерировать ссылку-приглашение", - "group_settings_sub": "Настройки общей группы. Для применения изменений возможно потребуется перезагрузить страницу.", - "language": "Язык", - "update_language": "Обновить язык" + "user_profile_sub": "Приглашайте пользователей и управляйте своим аккаунтом." + }, + "tools": { + "reports": "Отчеты", + "reports_set": { + "asset_labels": "Этикетки с ID активов" + }, + "reports_sub": "Создавайте различные отчеты для вашего инвентаря." } } diff --git a/frontend/locales/zh-CN.json b/frontend/locales/zh-CN.json index 4e515189f..027d197c3 100644 --- a/frontend/locales/zh-CN.json +++ b/frontend/locales/zh-CN.json @@ -2,16 +2,24 @@ "components": { "app": { "import_dialog": { - "title": "导入 CSV 文件", - "upload": "上传", + "change_warning": "导入行为会导致现有的 import_refs 的字段被覆盖。\n如果 CSV 文件中存在 import_ref,则将使用 CSV 文件中的值更新该项。", "description": "导入包含物品、标签和位置的CSV文件。更多有关信息,\n请参阅文档查看所需格式。", - "change_warning": "导入行为会导致现有的 import_refs 的字段被覆盖。\n如果 CSV 文件中存在 import_ref,则将使用 CSV 文件中的值更新该项。" + "title": "导入 CSV 文件", + "upload": "上传" + } + }, + "global": { + "page_qr_code": { + "page_url": "页面URL" + }, + "password_score": { + "password_strength": "密码强度" } }, "item": { "create_modal": { - "title": "创建物品", - "photo_button": "照片 📷" + "photo_button": "照片 📷", + "title": "创建物品" }, "view": { "selectable": { @@ -22,46 +30,38 @@ } } }, - "location": { + "label": { "create_modal": { - "title": "创建位置" - } - }, - "global": { - "page_qr_code": { - "page_url": "页面URL" - }, - "password_score": { - "password_strength": "密码强度" + "title": "创建标签" } }, - "label": { + "location": { "create_modal": { - "title": "创建标签" + "title": "创建位置" } } }, "global": { - "create_and_add": "保存并继续创建", - "email": "邮箱", - "items": "物品", "build": "编译:{build}", "confirm": "确认", "create": "创建", + "create_and_add": "保存并继续创建", "created": "已创建", + "email": "邮箱", "follow_dev": "关注开发者", "github": "Github项目", + "items": "物品", "join_discord": "加入Discord讨论", "labels": "标签", - "sign_out": "注销", - "version": "版本:{version}", - "welcome": "欢迎,{username}", + "locations": "位置", "name": "名称", "password": "密码", "read_docs": "查阅文档", "search": "搜索", + "sign_out": "注销", "submit": "提交", - "locations": "位置" + "version": "版本:{version}", + "welcome": "欢迎,{username}" }, "index": { "disabled_registration": "已禁用注册", @@ -69,29 +69,29 @@ "joining_group": "您正在加入现有群组!", "login": "登录", "register": "注册", - "set_name": "你的名称叫什么?", "remember_me": "记住我", "set_email": "您的电子邮箱是什么?", - "tagline": "跟踪、整理和管理您的物品。", - "set_password": "设置密码" + "set_name": "你的名称叫什么?", + "set_password": "设置密码", + "tagline": "跟踪、整理和管理您的物品。" }, "items": { + "add": "添加", + "created_at": "创建于", + "custom_fields": "自定义字段", + "field_selector": "字段选择", + "field_value": "字段值", + "first": "第一页", + "include_archive": "包括已存档的项目", "last": "最后一页", "negate_labels": "取消选中的标签", "next_page": "下一页", "no_results": "没有可显示的物品", "options": "选项", - "prev_page": "上一页", - "add": "添加", - "field_selector": "字段选择", - "first": "第一页", "order_by": "排序方式", "pages": "第{page}页,共{totalPages}页", + "prev_page": "上一页", "query_id": "查询资产ID: {id}", - "created_at": "创建于", - "custom_fields": "自定义字段", - "field_value": "字段值", - "include_archive": "包括已存档的项目", "reset_search": "重置搜索", "results": "{ total } 条结果", "tip_1": "位置和标签过滤器使用“或”操作。如果选择了多个位置或标签,\n则只需要任意一个匹配上即可。", @@ -102,29 +102,30 @@ "updated_at": "更新于" }, "profile": { - "group_settings_sub": "共享组设置。您可能需要刷新浏览器来让某些设置生效。", - "notifier_modal": "{ type, select, true {编辑} false {创建} other {Other}} 通知器", "active": "活跃", - "delete_account_sub": "删除您的帐户及其所有相关数据。这是无法撤消的。", - "inactive": "非活跃", - "theme_settings_sub": "主题设置存储在浏览器的本地存储中。您可以随时更改主题。\n如果您在设置主题时遇到问题,请尝试刷新浏览器。", - "update_group": "更新组", "change_password": "更改密码", "currency_format": "货币格式", "current_password": "原密码", "delete_account": "删除帐户", + "delete_account_sub": "删除您的帐户及其所有相关数据。这是无法撤消的。", + "display_header": "{currentValue, select, true {隐藏页眉} false {显示页眉} other {未命中}}", "enabled": "已启用", "gen_invite": "生成邀请链接", "group_settings": "组设置", + "group_settings_sub": "共享组设置。您可能需要刷新浏览器来让某些设置生效。", + "inactive": "非活跃", + "language": "语言", "new_password": "新密码", + "notifier_modal": "{ type, select, true {编辑} false {创建} other {Other}} 通知器", "notifiers": "通知器", "notifiers_sub": "获取即将到来的维护提醒通知", "test": "测试", "theme_settings": "主题设置", + "theme_settings_sub": "主题设置存储在浏览器的本地存储中。您可以随时更改主题。\n如果您在设置主题时遇到问题,请尝试刷新浏览器。", + "update_group": "更新组", + "update_language": "更新语言", "url": "网址", "user_profile": "用户资料", - "user_profile_sub": "邀请用户共同管理您的资产。", - "update_language": "更新语言", - "language": "语言" + "user_profile_sub": "邀请用户共同管理您的资产。" } } From 62e6b08baf93e66485078b3f5a8521333bde2d5a Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 02:06:10 +0000 Subject: [PATCH 010/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 74.4% (105 of 141 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 74.4% (105 of 141 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 74.4% (105 of 141 strings) Co-authored-by: Jackxwb Co-authored-by: MyMemory Co-authored-by: dongzh Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/zh_Hans/ Translation: Homebox/Frontend --- frontend/locales/zh-CN.json | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/frontend/locales/zh-CN.json b/frontend/locales/zh-CN.json index 027d197c3..3a998b94f 100644 --- a/frontend/locales/zh-CN.json +++ b/frontend/locales/zh-CN.json @@ -108,7 +108,7 @@ "current_password": "原密码", "delete_account": "删除帐户", "delete_account_sub": "删除您的帐户及其所有相关数据。这是无法撤消的。", - "display_header": "{currentValue, select, true {隐藏页眉} false {显示页眉} other {未命中}}", + "display_header": "{currentValue, select, true {隐藏页眉} false {显示页眉} other {未选中}}", "enabled": "已启用", "gen_invite": "生成邀请链接", "group_settings": "组设置", @@ -127,5 +127,25 @@ "url": "网址", "user_profile": "用户资料", "user_profile_sub": "邀请用户共同管理您的资产。" + }, + "tools": { + "actions": "库存操作", + "actions_set": { + "ensure_ids": "确保资产ID" + }, + "actions_sub": "将操作批量应用于您的库存。这些都是不可逆转的行动' '谨慎操作。''", + "import_export_set": { + "export": "导出库存", + "export_button": "导出库存", + "export_sub": "按标准CSV格式导出Homebox。这将导出库存中的所有项目。" + }, + "reports": "报告", + "reports_set": { + "asset_labels": "资产ID标签", + "asset_labels_button": "标签生成器", + "asset_labels_sub": "为资产ID标签生成可打印PDF。这些标签并不特定于您的库存,因此您可以提前打印标签,并在收到标签时将其应用于您的仓库。", + "bill_of_materials": "物料清单" + }, + "reports_sub": "为您的库存生成其他的报告。" } } From d88b04b66f86110d966245d1a0bfa35c19cf08c1 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:42:12 +0000 Subject: [PATCH 011/106] Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (139 of 141 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (139 of 141 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 98.5% (139 of 141 strings) Translated using Weblate (Dutch) Currently translated at 66.6% (94 of 141 strings) Translated using Weblate (Dutch) Currently translated at 66.6% (94 of 141 strings) Co-authored-by: 101br03k Co-authored-by: Jackxwb Co-authored-by: MyMemory Co-authored-by: dongzh Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/zh_Hans/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 182 +++++++++++++++++++----------------- frontend/locales/zh-CN.json | 44 ++++++++- 2 files changed, 135 insertions(+), 91 deletions(-) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index ac57c7006..0cc5c287c 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -1,66 +1,32 @@ { - "global": { - "version": "Versie: { version }", - "github": "GitHub Project", - "join_discord": "Sluit je aan bij de Discord", - "follow_dev": "Volg de ontwikkelaar", - "read_docs": "Lees de documentatie", - "email": "E-mail", - "submit": "Indienen", - "confirm": "Bevestigen", - "create": "Maken", - "create_and_add": "Maak en voeg nog een toe", - "password": "Wachtwoord", - "build": "Bouw: { build }", - "created": "Gemaakt", - "welcome": "Welkom, { username }", - "sign_out": "Log uit", - "labels": "etiketten", - "locations": "Locaties", - "name": "Naam", - "items": "artikelen", - "search": "Zoeken" - }, - "index": { - "disabled_registration": "Registratie uitgeschakeld", - "login": "Log in", - "register": "Registreer", - "remember_me": "Onthoud mij", - "set_email": "Wat is je mailadres?", - "set_password": "Stel je wachtwoord in", - "set_name": "Wat is je naam?", - "joining_group": "Je neemt deel aan een bestaande groep!", - "tagline": "Volg, Organiseer en beheer je dingen.", - "dont_join_group": "Wil je niet aan een groep deelnemen?" - }, "components": { - "global": { - "password_score": { - "password_strength": "Wachtwoord sterkte" - }, - "page_qr_code": { - "page_url": "Pagina URL" - } - }, "app": { "import_dialog": { - "title": "Importeer CSV bestand", "change_warning": "Gedrag voor importeren met bestaande import_refs is veranderd. Als een import_refs reeds bestaat in het CSV bestand, het\nobject zal worden aangepast met de waardes van het CSV bestand.", - "upload": "Upload", - "description": "Importeer een CSV bestand met je objecten, labels en locaties. Zie documentatie voor meer informatie m.b.t.\n vereist format." + "description": "Importeer een CSV bestand met je objecten, labels en locaties. Zie documentatie voor meer informatie m.b.t.\n vereist format.", + "title": "Importeer CSV bestand", + "upload": "Upload" + } + }, + "global": { + "page_qr_code": { + "page_url": "Pagina URL" + }, + "password_score": { + "password_strength": "Wachtwoord sterkte" } }, "item": { "create_modal": { - "title": "Maak object", - "photo_button": "Foto 📷" + "photo_button": "Foto 📷", + "title": "Maak object" }, "view": { "selectable": { - "items": "Objecten", "card": "Kaart", - "table": "Tabel", - "no_items": "Geen objecten om te tonen" + "items": "Objecten", + "no_items": "Geen objecten om te tonen", + "table": "Tabel" } } }, @@ -75,45 +41,41 @@ } } }, - "profile": { - "gen_invite": "Genereer Uitnodigingslink", - "notifier_modal": "{ type, select, true {Bewerk} false {Creëer} other {overig}} Notifier", - "change_password": "Verander Wachtwoord", - "current_password": "Huidig Wachtwoord", - "new_password": "Nieuw Wachtwoord", - "url": "URL", - "enabled": "ingeschakeld", - "test": "Test", - "user_profile": "Gebruikers Profiel", - "user_profile_sub": "Nodig gebruikers uit, en beheer je account.", - "active": "Actief", - "inactive": "Inactief", - "notifiers_sub": "Krijg notificaties voor opkomende onderhouds herinneringen", - "group_settings_sub": "Gedeelde groepsinstellingen", - "group_settings": "Groeps Instellingen", - "notifiers": "Notificatie", - "currency_format": "Valutanotatie", - "update_group": "Groep bijwerken", - "theme_settings": "Theme instellingen", - "theme_settings_sub": "Thema-instellingen worden opgeslagen in de lokale opslag van uw browser. Je kan deze wijzigen op elk moment. \nAls je problemen hebt met de instellingen kun je je browser verversen.", - "delete_account": "Verwijder account", - "delete_account_sub": "Verwijder je account en alle geassocieerde data. Deze actie kan niet ongedaan worden." + "global": { + "build": "Bouw: { build }", + "confirm": "Bevestigen", + "create": "Maken", + "create_and_add": "Maak en voeg nog een toe", + "created": "Gemaakt", + "email": "E-mail", + "follow_dev": "Volg de ontwikkelaar", + "github": "GitHub Project", + "items": "artikelen", + "join_discord": "Sluit je aan bij de Discord", + "labels": "etiketten", + "locations": "Locaties", + "name": "Naam", + "password": "Wachtwoord", + "read_docs": "Lees de documentatie", + "search": "Zoeken", + "sign_out": "Log uit", + "submit": "Indienen", + "version": "Versie: { version }", + "welcome": "Welkom, { username }" + }, + "index": { + "disabled_registration": "Registratie uitgeschakeld", + "dont_join_group": "Wil je niet aan een groep deelnemen?", + "joining_group": "Je neemt deel aan een bestaande groep!", + "login": "Log in", + "register": "Registreer", + "remember_me": "Onthoud mij", + "set_email": "Wat is je mailadres?", + "set_name": "Wat is je naam?", + "set_password": "Stel je wachtwoord in", + "tagline": "Volg, Organiseer en beheer je dingen." }, "items": { - "tip_1": "Locatie- en labelfilters gebruiken de 'OF' -werking. Als er meer dan een is geselecteerd,\nis er maar een nodig voor een overeenkomst.", - "tip_2": "Zoekopdrachten voorafgegaan door '#'' zullen om een object-ID vragen (bijvoorbeeld '#000-001')", - "tip_3": "Veldfilters gebruiken de 'OF' -bewerking. Indien meer dan 1 is geselecteerd\nzal er maar 1 nodig zijn voor een match.", - "tips_sub": "Zoektips", - "updated_at": "Bijgewerkt op", - "pages": "Pagina { page } van { totalPages }", - "prev_page": "Vorige pagina", - "query_id": "ID-nummer van object opvragen: { id }", - "reset_search": "Reset Zoeken", - "tips": "Tips", - "no_results": "Geen Items Gevonden", - "options": "Opties", - "order_by": "Sorteren op", - "results": "{ total } Resultaten", "add": "Toevoegen", "created_at": "Aangemaakt op", "custom_fields": "Aangepaste velden", @@ -123,6 +85,50 @@ "include_archive": "Inclusief gearchiveerde items", "last": "Achternaam", "negate_labels": "Negeer Geselecteerde Etiketten", - "next_page": "Volgende pagina" + "next_page": "Volgende pagina", + "no_results": "Geen Items Gevonden", + "options": "Opties", + "order_by": "Sorteren op", + "pages": "Pagina { page } van { totalPages }", + "prev_page": "Vorige pagina", + "query_id": "ID-nummer van object opvragen: { id }", + "reset_search": "Reset Zoeken", + "results": "{ total } Resultaten", + "tip_1": "Locatie- en labelfilters gebruiken de 'OF' -werking. Als er meer dan een is geselecteerd,\nis er maar een nodig voor een overeenkomst.", + "tip_2": "Zoekopdrachten voorafgegaan door '#'' zullen om een object-ID vragen (bijvoorbeeld '#000-001')", + "tip_3": "Veldfilters gebruiken de 'OF' -bewerking. Indien meer dan 1 is geselecteerd\nzal er maar 1 nodig zijn voor een match.", + "tips": "Tips", + "tips_sub": "Zoektips", + "updated_at": "Bijgewerkt op" + }, + "profile": { + "active": "Actief", + "change_password": "Verander Wachtwoord", + "currency_format": "Valutanotatie", + "current_password": "Huidig Wachtwoord", + "delete_account": "Verwijder account", + "delete_account_sub": "Verwijder je account en alle geassocieerde data. Deze actie kan niet ongedaan worden.", + "enabled": "ingeschakeld", + "gen_invite": "Genereer Uitnodigingslink", + "group_settings": "Groeps Instellingen", + "group_settings_sub": "Gedeelde groepsinstellingen", + "inactive": "Inactief", + "language": "Taal", + "new_password": "Nieuw Wachtwoord", + "notifier_modal": "{ type, select, true {Bewerk} false {Creëer} other {overig}} Notifier", + "notifiers": "Notificatie", + "notifiers_sub": "Krijg notificaties voor opkomende onderhouds herinneringen", + "test": "Test", + "theme_settings": "Theme instellingen", + "theme_settings_sub": "Thema-instellingen worden opgeslagen in de lokale opslag van uw browser. Je kan deze wijzigen op elk moment. \nAls je problemen hebt met de instellingen kun je je browser verversen.", + "update_group": "Groep bijwerken", + "update_language": "Taal bijwerken", + "url": "URL", + "user_profile": "Gebruikers Profiel", + "user_profile_sub": "Nodig gebruikers uit, en beheer je account." + }, + "tools": { + "reports": "Rapportages", + "reports_sub": "Genereer verschillende rapporten voor uw voorraad." } } diff --git a/frontend/locales/zh-CN.json b/frontend/locales/zh-CN.json index 3a998b94f..41e8cd556 100644 --- a/frontend/locales/zh-CN.json +++ b/frontend/locales/zh-CN.json @@ -101,6 +101,26 @@ "tips_sub": "搜索提示", "updated_at": "更新于" }, + "languages": { + "ca": "加泰罗尼亚语", + "de": "德语", + "en": "英语", + "es": "西班牙语", + "fr": "法国", + "hu": "匈牙利语", + "it": "意大利语", + "nl": "荷兰语", + "pl": "波兰语", + "pt-BR": "葡萄牙语(巴西)", + "ru": "俄语", + "sl": "斯洛文尼亚语", + "sv": "瑞典语", + "tr": "土耳其语", + "zh-CN": "中文(简体)", + "zh-HK": "中文(香港)", + "zh-MO": "中文(澳门)", + "zh-TW": "中文(繁体)" + }, "profile": { "active": "活跃", "change_password": "更改密码", @@ -131,20 +151,38 @@ "tools": { "actions": "库存操作", "actions_set": { - "ensure_ids": "确保资产ID" + "ensure_ids": "确认资产ID", + "ensure_ids_button": "确认资产ID", + "ensure_ids_sub": "确保库存中的所有项目都有有效的asset_id字段。它会找到库中最大的asset_id字段,并将下一个值应用于还未设置asset_id字段的每个项目。未设置asset_id的项目将按created_at字段的顺序生成。", + "ensure_import_refs": "确认导入参考", + "ensure_import_refs_button": "确认导入参考", + "ensure_import_refs_sub": "确保库存中的所有项目都有有效的import_ref字段。这是通过为每个具有未设置的import_ref字段的项目随机生成一个8个字符的字符串来实现的。", + "set_primary_photo": "设置封面图片", + "set_primary_photo_button": "设置封面", + "set_primary_photo_sub": "设置封面在 Homebox v0.10.0 版本中,该列的类型为图片。如果没有设置封面,则会把附件中第一张图片作为封面。 ''更多请参考 GitHub PR #576''", + "zero_datetimes": "清空时间项", + "zero_datetimes_button": "清空时间项", + "zero_datetimes_sub": "将库存中所有日期时间字段的值重置为开始日期。这是为了修复在网站开发早期出现的一个错误,该错误导致自定义时间值保存时,日期会出现偏移的问题。 ''详细问题请参考 Github Issue #236 ''" }, "actions_sub": "将操作批量应用于您的库存。这些都是不可逆转的行动' '谨慎操作。''", + "import_export": "导入/导出", "import_export_set": { "export": "导出库存", "export_button": "导出库存", - "export_sub": "按标准CSV格式导出Homebox。这将导出库存中的所有项目。" + "export_sub": "按标准CSV格式导出Homebox。这将导出库存中的所有项目。", + "import": "导入库存", + "import_button": "导入库存", + "import_sub": "Homebox只能导入标准的CSV格式文件。当不存在 ''HB.import_ref'' 列的时候,将 ''不会'' 覆盖现数据库存中的任何现有项目,只添加为新项目。如果与现有的 ''HB.import_ref'' 的项目一样,则会将新旧数据合并。" }, + "import_export_sub": "按CSV格式导入和导出您的库存。在将库存迁移到Homebox的新实例时非常有用。", "reports": "报告", "reports_set": { "asset_labels": "资产ID标签", "asset_labels_button": "标签生成器", "asset_labels_sub": "为资产ID标签生成可打印PDF。这些标签并不特定于您的库存,因此您可以提前打印标签,并在收到标签时将其应用于您的仓库。", - "bill_of_materials": "物料清单" + "bill_of_materials": "物料清单", + "bill_of_materials_button": "生成物料清单", + "bill_of_materials_sub": "生成可以导入的CSV电子表格文件(使用逗号分隔值)。这是您的库存摘要,包括基本商品和定价信息。" }, "reports_sub": "为您的库存生成其他的报告。" } From 9275d2db9ca52de8f55e8454bc40a3219ef3e10a Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:43:14 +0000 Subject: [PATCH 012/106] Translated using Weblate (Dutch) Currently translated at 68.0% (96 of 141 strings) Translated using Weblate (Dutch) Currently translated at 68.0% (96 of 141 strings) Co-authored-by: 101br03k Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 0cc5c287c..8fe3b5eb8 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -129,6 +129,10 @@ }, "tools": { "reports": "Rapportages", - "reports_sub": "Genereer verschillende rapporten voor uw voorraad." + "reports_set": { + "asset_labels": "Labels voor item-ID", + "asset_labels_sub": "Genereert een afdrukbare PDF met labels voor een reeks Asset ID's" + }, + "reports_sub": "Genereer verschillende rapporten van je voorraad." } } From 3f3ca345fdf36169ca897f4ea9ef44a7fe0b550a Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:43:51 +0000 Subject: [PATCH 013/106] Translated using Weblate (Dutch) Currently translated at 70.2% (99 of 141 strings) Translated using Weblate (Dutch) Currently translated at 70.2% (99 of 141 strings) Co-authored-by: 101br03k Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 8fe3b5eb8..03812e66d 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -131,7 +131,10 @@ "reports": "Rapportages", "reports_set": { "asset_labels": "Labels voor item-ID", - "asset_labels_sub": "Genereert een afdrukbare PDF met labels voor een reeks Asset ID's" + "asset_labels_button": "Etiket Generator", + "asset_labels_sub": "Genereert een afdrukbare PDF met labels voor een reeks Asset ID's. Deze zijn niet specifiek voor de voorraad dus kun je deze van te voren printen en gebruiken wanneer je voorraad ontvangt.", + "bill_of_materials": "Materiaallijst", + "bill_of_materials_sub": "Genereert een CSV-bestand (door komma's gescheiden waarden) dat kan worden geïmporteerd in een spreadsheetprogramma" }, "reports_sub": "Genereer verschillende rapporten van je voorraad." } From de16f09108c1bae9bc1512d61ab5fbd924dffc7a Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:45:16 +0000 Subject: [PATCH 014/106] Translated using Weblate (Dutch) Currently translated at 72.3% (102 of 141 strings) Translated using Weblate (Dutch) Currently translated at 72.3% (102 of 141 strings) Co-authored-by: 101br03k Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 03812e66d..4ab0e7cc5 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -128,13 +128,16 @@ "user_profile_sub": "Nodig gebruikers uit, en beheer je account." }, "tools": { + "import_export": "Importeer/Exporteer", + "import_export_sub": "Importeer en exporteer je voorraad van en naar een CSV-bestand", "reports": "Rapportages", "reports_set": { "asset_labels": "Labels voor item-ID", "asset_labels_button": "Etiket Generator", "asset_labels_sub": "Genereert een afdrukbare PDF met labels voor een reeks Asset ID's. Deze zijn niet specifiek voor de voorraad dus kun je deze van te voren printen en gebruiken wanneer je voorraad ontvangt.", "bill_of_materials": "Materiaallijst", - "bill_of_materials_sub": "Genereert een CSV-bestand (door komma's gescheiden waarden) dat kan worden geïmporteerd in een spreadsheetprogramma" + "bill_of_materials_button": "BOM genereren", + "bill_of_materials_sub": "Genereert een CSV-bestand (door komma's gescheiden waarden) dat kan worden geïmporteerd in een spreadsheetprogramma. Dit is een samenvattting van je voorraad met basis item en prijs informatie." }, "reports_sub": "Genereer verschillende rapporten van je voorraad." } From 6866dc76c036a07c80814e447b009862fb09e2d3 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:45:56 +0000 Subject: [PATCH 015/106] Translated using Weblate (Dutch) Currently translated at 75.8% (107 of 141 strings) Translated using Weblate (Dutch) Currently translated at 75.8% (107 of 141 strings) Co-authored-by: 101br03k Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 4ab0e7cc5..ffcddf715 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -129,7 +129,14 @@ }, "tools": { "import_export": "Importeer/Exporteer", - "import_export_sub": "Importeer en exporteer je voorraad van en naar een CSV-bestand", + "import_export_set": { + "export": "Export voorraad", + "export_button": "Export voorraad", + "export_sub": "Exporteert het standaard CSV-formaat voor Homebox", + "import": "Inventaris Importeren", + "import_button": "Inventaris Importeren" + }, + "import_export_sub": "Importeer en exporteer je voorraad van en naar een CSV-bestand. Dit is handig voor het migreren van je voorraad naar een nieuwe HomeBox installatie.", "reports": "Rapportages", "reports_set": { "asset_labels": "Labels voor item-ID", From 5c09953e4c7dacb4283c921d5f7edad081746597 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 06:46:57 +0000 Subject: [PATCH 016/106] Translated using Weblate (Dutch) Currently translated at 77.3% (109 of 141 strings) Co-authored-by: MyMemory Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/nl.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index ffcddf715..2707f8f3a 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -128,6 +128,8 @@ "user_profile_sub": "Nodig gebruikers uit, en beheer je account." }, "tools": { + "actions": "Acties inventariseren", + "actions_sub": "Acties bulksgewijs toepassen op je voorraad", "import_export": "Importeer/Exporteer", "import_export_set": { "export": "Export voorraad", From 8e273730be82e3898b17d68e4d9c818e42c984b9 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 09:36:13 +0000 Subject: [PATCH 017/106] Translated using Weblate (Spanish) Currently translated at 85.1% (120 of 141 strings) Translated using Weblate (Dutch) Currently translated at 77.3% (109 of 141 strings) Co-authored-by: 101br03k Co-authored-by: Daniel Barea Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/es/ Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/nl/ Translation: Homebox/Frontend --- frontend/locales/es.json | 87 ++++++++++++++++++++-------------------- frontend/locales/nl.json | 2 +- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/frontend/locales/es.json b/frontend/locales/es.json index 70fccaa05..f2096a1c2 100644 --- a/frontend/locales/es.json +++ b/frontend/locales/es.json @@ -18,8 +18,8 @@ }, "item": { "create_modal": { - "title": "Crear Elemento", - "photo_button": "Foto 📷" + "photo_button": "Foto 📷", + "title": "Crear Elemento" }, "view": { "selectable": { @@ -45,8 +45,10 @@ "build": "Compilación: { build }", "confirm": "Confirmar", "create": "Crear", + "create_and_add": "Crear y Añadir Otro", "created": "Creado", "email": "Email", + "follow_dev": "Seguir al Desarrollador", "github": "Proyecto GitHub", "items": "Elementos", "join_discord": "Únete al Discord", @@ -58,22 +60,20 @@ "search": "Buscar", "sign_out": "Cerrar Sesión", "submit": "Enviar", - "welcome": "Bienvenido/a, { username }", - "create_and_add": "Crear y Añadir Otro", - "follow_dev": "Seguir al Desarrollador", - "version": "Versión: { version }" + "version": "Versión: { version }", + "welcome": "Bienvenido/a, { username }" }, "index": { "disabled_registration": "Registro Desactivado", "dont_join_group": "¿No quieres unirte a un grupo?", + "joining_group": "¡Te estás uniendo a un grupo existente!", "login": "Iniciar sesión", "register": "Registrarse", "remember_me": "Recuérdame", "set_email": "¿Cuál es tu email?", "set_name": "¿Cómo te llamas?", "set_password": "Establece tu contraseña", - "tagline": "Rastrea, Organiza y Gestiona tus Cosas.", - "joining_group": "¡Te estás uniendo a un grupo existente!" + "tagline": "Rastrea, Organiza y Gestiona tus Cosas." }, "items": { "add": "Añadir", @@ -94,74 +94,75 @@ "query_id": "Consultar Número ID del Activo: { id }", "reset_search": "Restablecer Búsqueda", "results": "{ total } Resultados", + "tip_1": "Los filtros de ubicación y etiquetas utilizan el operador \"OR\". Si se selecciona más de uno, sólo uno será\n necesario para obtener una coincidencia.", "tip_2": "Las búsquedas precedidas de \"#\" buscarán un ID de activo (por ejemplo, \"#000-001\")", "tip_3": "Los filtros de campo utilizan el operador \"OR\". Si se selecciona más de uno, sólo se requerirá uno para una\n coincidencia.", - "tip_1": "Los filtros de ubicación y etiquetas utilizan el operador \"OR\". Si se selecciona más de uno, sólo uno será\n necesario para obtener una coincidencia.", "tips": "Sugerencias", "tips_sub": "Sugerencias de Búsqueda", "updated_at": "Actualizado El" }, + "languages": { + "ca": "Catalán", + "de": "Alemán", + "en": "Inglés", + "es": "Español", + "fr": "Francés", + "hu": "Húngaro", + "it": "Italiano", + "nl": "Holandés", + "pl": "Polaco", + "pt-BR": "Portugués (Brasil)", + "ru": "Ruso", + "sl": "Esloveno", + "sv": "Sueco", + "tr": "Turco", + "zh-CN": "Chino (Simplificado)", + "zh-HK": "Chino (Hong Kong)", + "zh-MO": "Chino (Macao)", + "zh-TW": "Chino (Tradicional)" + }, "profile": { "active": "Activo", "change_password": "Cambiar Contraseña", "currency_format": "Formato Divisa", "current_password": "Contraseña Actual", "delete_account": "Eliminar Cuenta", + "delete_account_sub": "Elimina tu cuenta y todos sus datos asociados. Esto no se puede deshacer.", "enabled": "Habilitado", "gen_invite": "Generar Enlace de Invitación", "group_settings": "Ajustes de Grupo", "group_settings_sub": "Configuración de Grupo Compartido. Es posible que tengas que actualizar tu navegador para que se apliquen algunos ajustes.", "inactive": "Inactivo", + "language": "Idioma", "new_password": "Nueva Contraseña", + "notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Notificación", "notifiers": "Notificaciones", "notifiers_sub": "Recibe notificaciones de los próximos recordatorios de mantenimiento", "test": "Probar", "theme_settings": "Ajustes de Tema", + "theme_settings_sub": "La configuración del tema se guarda en el almacenamiento local de tu navegador. Puedes cambiar el tema en cualquier momento. Si tienes\n problemas para configurar el tema, prueba a actualizar el navegador.", "update_group": "Actualizar Grupo", + "update_language": "Cambiar idioma", "url": "URL", "user_profile": "Perfil de Usuario", - "user_profile_sub": "Invita a usuarios y gestiona tu cuenta.", - "delete_account_sub": "Elimina tu cuenta y todos sus datos asociados. Esto no se puede deshacer.", - "notifier_modal": "{ type, select, true {Edit} false {Create} other {Other}} Notificación", - "theme_settings_sub": "La configuración del tema se guarda en el almacenamiento local de tu navegador. Puedes cambiar el tema en cualquier momento. Si tienes\n problemas para configurar el tema, prueba a actualizar el navegador.", - "language": "Idioma" + "user_profile_sub": "Invita a usuarios y gestiona tu cuenta." }, "tools": { - "reports_sub": "Genera diferentes informes para tu inventario.", - "reports": "Informes", - "reports_set": { - "bill_of_materials_button": "Generar lista de materiales", - "bill_of_materials_sub": "Genera un archivo CSV (Valores Separados por Comas) que puede importarse a un programa de hojas de cálculo. Es un resumen de tu inventario con información básica sobre artículos y precios." - }, "actions_set": { "ensure_ids_sub": "Garantiza que todos los elementos de tu inventario tienen un campo asset_id válido. Esto se hace encontrando el campo asset_id actual más alto en la base de datos y aplicando el siguiente valor a cada artículo que tenga un campo asset_id sin establecer. Esto se hace en orden del campo created_at.", "ensure_import_refs_sub": "Garantiza que todos los artículos de tu inventario tienen un campo import_ref válido. Esto se hace generando aleatoriamente una cadena de 8 caracteres para cada artículo que tenga un campo import_ref sin establecer." }, - "import_export_sub": "Importa y exporta tu inventario a y desde un archivo CSV. Esto es útil para migrar tu inventario a una nueva instancia de Homebox.", + "actions_sub": "Aplica Acciones a tu inventario de forma masiva. Estas son acciones irreversibles. ''Ten Cuidado.''", + "import_export": "Importar/Exportar", "import_export_set": { "export_sub": "Exporta el formato CSV estándar para Homebox. Esto exportará todos los elementos de tu inventario." }, - "import_export": "Importar/Exportar", - "actions_sub": "Aplica Acciones a tu inventario de forma masiva. Estas son acciones irreversibles. ''Ten Cuidado.''" - }, - "languages": { - "ca": "Catalán", - "de": "Alemán", - "es": "Español", - "fr": "Francés", - "hu": "Húngaro", - "it": "Italiano", - "nl": "Holandés", - "pl": "Polaco", - "ru": "Ruso", - "sl": "Esloveno", - "sv": "Sueco", - "tr": "Turco", - "zh-CN": "Chino (Simplificado)", - "zh-HK": "Chino (Hong Kong)", - "zh-MO": "Chino (Macao)", - "zh-TW": "Chino (Tradicional)", - "en": "Inglés", - "pt-BR": "Portugués (Brasil)" + "import_export_sub": "Importa y exporta tu inventario a y desde un archivo CSV. Esto es útil para migrar tu inventario a una nueva instancia de Homebox.", + "reports": "Informes", + "reports_set": { + "bill_of_materials_button": "Generar lista de materiales", + "bill_of_materials_sub": "Genera un archivo CSV (Valores Separados por Comas) que puede importarse a un programa de hojas de cálculo. Es un resumen de tu inventario con información básica sobre artículos y precios." + }, + "reports_sub": "Genera diferentes informes para tu inventario." } } diff --git a/frontend/locales/nl.json b/frontend/locales/nl.json index 2707f8f3a..c3ec39154 100644 --- a/frontend/locales/nl.json +++ b/frontend/locales/nl.json @@ -129,7 +129,7 @@ }, "tools": { "actions": "Acties inventariseren", - "actions_sub": "Acties bulksgewijs toepassen op je voorraad", + "actions_sub": "Acties bulksgewijs toepassen op je voorraad. Deze zijn onomkeerbaar ''Wees voorzichtig.''", "import_export": "Importeer/Exporteer", "import_export_set": { "export": "Export voorraad", From 6a0ebb76ea69935fa8e5cdd4727b7120c0e15659 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 16 Sep 2024 09:44:53 +0000 Subject: [PATCH 018/106] Translated using Weblate (Spanish) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (141 of 141 strings) Co-authored-by: Daniel Barea Co-authored-by: MyMemory Co-authored-by: Slydite4 <39199098+Slydite4@users.noreply.github.com> Translate-URL: https://translate.sysadminsmedia.com/projects/homebox/frontend/es/ Translation: Homebox/Frontend --- frontend/locales/es.json | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/frontend/locales/es.json b/frontend/locales/es.json index f2096a1c2..19c5fd777 100644 --- a/frontend/locales/es.json +++ b/frontend/locales/es.json @@ -128,6 +128,7 @@ "current_password": "Contraseña Actual", "delete_account": "Eliminar Cuenta", "delete_account_sub": "Elimina tu cuenta y todos sus datos asociados. Esto no se puede deshacer.", + "display_header": "{ currentValue, select, true {Ocultar encabezado} false {Mostrar encabezado} other {Desconocido}}", "enabled": "Habilitado", "gen_invite": "Generar Enlace de Invitación", "group_settings": "Ajustes de Grupo", @@ -142,24 +143,44 @@ "theme_settings": "Ajustes de Tema", "theme_settings_sub": "La configuración del tema se guarda en el almacenamiento local de tu navegador. Puedes cambiar el tema en cualquier momento. Si tienes\n problemas para configurar el tema, prueba a actualizar el navegador.", "update_group": "Actualizar Grupo", - "update_language": "Cambiar idioma", + "update_language": "Cambiar Idioma", "url": "URL", "user_profile": "Perfil de Usuario", "user_profile_sub": "Invita a usuarios y gestiona tu cuenta." }, "tools": { + "actions": "Acciones de Inventario", "actions_set": { + "ensure_ids": "Garantizar IDs de Activos", + "ensure_ids_button": "Garantizar IDs de Activos", "ensure_ids_sub": "Garantiza que todos los elementos de tu inventario tienen un campo asset_id válido. Esto se hace encontrando el campo asset_id actual más alto en la base de datos y aplicando el siguiente valor a cada artículo que tenga un campo asset_id sin establecer. Esto se hace en orden del campo created_at.", - "ensure_import_refs_sub": "Garantiza que todos los artículos de tu inventario tienen un campo import_ref válido. Esto se hace generando aleatoriamente una cadena de 8 caracteres para cada artículo que tenga un campo import_ref sin establecer." + "ensure_import_refs": "Garantizar Referencias de Importación", + "ensure_import_refs_button": "Garantizar Referencias de Importación", + "ensure_import_refs_sub": "Garantiza que todos los artículos de tu inventario tienen un campo import_ref válido. Esto se hace generando aleatoriamente una cadena de 8 caracteres para cada artículo que tenga un campo import_ref sin establecer.", + "set_primary_photo": "Establecer Foto Principal", + "set_primary_photo_button": "Establecer Foto Principal", + "set_primary_photo_sub": "En la versión v0.10.0 de Homebox, se añadió el indicador de imagen principal a los ficheros adjuntos de tipo foto. Esta acción establecerá la primera imagen de cada artículo como su imagen principal, si no hay una imagen principal ya definida. ''Ver PR #576 en GitHub''", + "zero_datetimes": "Cero Horas Elementos", + "zero_datetimes_button": "Cero Horas Elementos", + "zero_datetimes_sub": "Restablece el valor de la hora para todos los campos de fecha/hora en tu inventario al principio de esa fecha. Esto se hace para corregir un error que se introdujo al principio del desarrollo de la aplicación, que causó que el valor de la hora se almacenase con la fecha, lo cual produjo problemas al mostrar valores precisos del campo. ''Ver el issue #236 de GitHub para más detalles.''" }, "actions_sub": "Aplica Acciones a tu inventario de forma masiva. Estas son acciones irreversibles. ''Ten Cuidado.''", "import_export": "Importar/Exportar", "import_export_set": { - "export_sub": "Exporta el formato CSV estándar para Homebox. Esto exportará todos los elementos de tu inventario." + "export": "Exportar Inventario", + "export_button": "Exportar Inventario", + "export_sub": "Exporta el formato CSV estándar para Homebox. Esto exportará todos los elementos de tu inventario.", + "import": "Importar Inventario", + "import_button": "Importar Inventario", + "import_sub": "Importa el formato CSV estándar para Homebox. Sin una columna ''HB.import_ref'', esto ''no'' sobrescribirá cualquier elemento existente en tu inventario, sólo añadirá nuevos artículos. Las filas con una columna ''HB.import_ref'' se fusionan con los artículos existentes con la misma import_ref, si existe." }, "import_export_sub": "Importa y exporta tu inventario a y desde un archivo CSV. Esto es útil para migrar tu inventario a una nueva instancia de Homebox.", "reports": "Informes", "reports_set": { + "asset_labels": "Etiquetas de ID de Activo", + "asset_labels_button": "Generador de Etiquetas", + "asset_labels_sub": "Genera un PDF para impresión de etiquetas para un rango de ID de Activos. Estas etiquetas no son específicas de tu inventario, por lo que puedes imprimirlas con antelación y aplicarlas a tu inventario cuando las recibas.", + "bill_of_materials": "Lista de Materiales", "bill_of_materials_button": "Generar lista de materiales", "bill_of_materials_sub": "Genera un archivo CSV (Valores Separados por Comas) que puede importarse a un programa de hojas de cálculo. Es un resumen de tu inventario con información básica sobre artículos y precios." }, From 4b24653b867dfa5c98c39e97dd8c4bda627045bb Mon Sep 17 00:00:00 2001 From: Matt Kilgore Date: Mon, 16 Sep 2024 08:36:41 -0400 Subject: [PATCH 019/106] Better issue templates --- .github/ISSUE_TEMPLATE/bug_report.yml | 16 +++++++++++++++- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 59b6b1e17..5a68cd6a5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ --- name: "Bug Report" description: "Submit a bug report for the current release" -labels: ["bug"] +labels: ["🕷️ bug"] projects: ["sysadminsmedia/2"] body: - type: checkboxes @@ -20,6 +20,8 @@ body: required: true - label: I already read the docs and didn't find an answer. required: true + - label: I can replicate the issue inside the Demo install. + required: true - type: input id: homebox-version attributes: @@ -55,6 +57,18 @@ body: - Other validations: required: true + - type: dropdown + id: arch + attributes: + label: OS Architechture + description: What type of processor are you running on. + multiple: true + options: + - x86_64 (AMD, Intel) + - ARM64 + - ARM/v7 + validations: + required: true - type: textarea id: os-details attributes: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index d7a3ed13a..3fa4d8024 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,7 @@ --- name: "Feature Request" description: "Submit a feature request for the current release" -labels: ["enhancement"] +labels: ["⬆️ enhancement"] projects: ["sysadminsmedia/2"] body: - type: textarea From 64ceffefe99598a0ea769e8fd238af3c44e92a18 Mon Sep 17 00:00:00 2001 From: Tonya Date: Mon, 16 Sep 2024 19:05:51 +0000 Subject: [PATCH 020/106] show add photo button on mobile (#229) * fix: show add photo button on mobile * feat: improve on short wide devices --- frontend/components/Base/Modal.vue | 2 +- frontend/components/Item/CreateModal.vue | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/frontend/components/Base/Modal.vue b/frontend/components/Base/Modal.vue index fa63a92f7..e2d0c3820 100644 --- a/frontend/components/Base/Modal.vue +++ b/frontend/components/Base/Modal.vue @@ -2,7 +2,7 @@