diff --git a/public/locales/ar.json b/public/locales/ar.json index be87365..87a037a 100644 --- a/public/locales/ar.json +++ b/public/locales/ar.json @@ -624,6 +624,17 @@ "displayNameLabel": "الاسم المعروض", "memberPasswordLabel": "كلمة المرور", "colorLabel": "اللون", + "familyRoleLabel": "دور العائلة", + "familyRoleDad": "الأب", + "familyRoleMom": "الأم", + "familyRoleParent": "ولي الأمر", + "familyRoleChild": "طفل", + "familyRoleGrandparent": "جد/جدة", + "familyRoleRelative": "قريب", + "familyRoleOther": "فرد من العائلة", + "systemAdminLabel": "مسؤول النظام", + "systemAdminHint": "يمكن لمسؤولي النظام إدارة الإعدادات والتكاملات ورموز API وحسابات العائلة.", + "systemAdminBadge": "مسؤول النظام", "roleLabel": "الدور", "roleMember": "عضو", "roleAdmin": "مسؤول", diff --git a/public/locales/de.json b/public/locales/de.json index 291975f..d2e9d0f 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -630,6 +630,17 @@ "displayNameLabel": "Anzeigename", "memberPasswordLabel": "Passwort", "colorLabel": "Farbe", + "familyRoleLabel": "Familienrolle", + "familyRoleDad": "Vater", + "familyRoleMom": "Mutter", + "familyRoleParent": "Elternteil", + "familyRoleChild": "Kind", + "familyRoleGrandparent": "Großelternteil", + "familyRoleRelative": "Verwandte/r", + "familyRoleOther": "Familienmitglied", + "systemAdminLabel": "Systemadministrator", + "systemAdminHint": "Systemadministratoren können App-Einstellungen, Integrationen, API-Tokens und Familienkonten verwalten.", + "systemAdminBadge": "Systemadministrator", "roleLabel": "Rolle", "roleMember": "Mitglied", "roleAdmin": "Admin", diff --git a/public/locales/el.json b/public/locales/el.json index b882d69..0c098e5 100644 --- a/public/locales/el.json +++ b/public/locales/el.json @@ -624,6 +624,17 @@ "displayNameLabel": "Εμφανιζόμενο όνομα", "memberPasswordLabel": "Κωδικός", "colorLabel": "Χρώμα", + "familyRoleLabel": "Ρόλος στην οικογένεια", + "familyRoleDad": "Μπαμπάς", + "familyRoleMom": "Μαμά", + "familyRoleParent": "Γονέας", + "familyRoleChild": "Παιδί", + "familyRoleGrandparent": "Παππούς/Γιαγιά", + "familyRoleRelative": "Συγγενής", + "familyRoleOther": "Μέλος οικογένειας", + "systemAdminLabel": "Διαχειριστής συστήματος", + "systemAdminHint": "Οι διαχειριστές συστήματος μπορούν να διαχειρίζονται ρυθμίσεις, ενσωματώσεις, API tokens και λογαριασμούς οικογένειας.", + "systemAdminBadge": "Διαχειριστής συστήματος", "roleLabel": "Ρόλος", "roleMember": "Μέλος", "roleAdmin": "Διαχειριστής", diff --git a/public/locales/en.json b/public/locales/en.json index 68aaba8..f805ef7 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -624,6 +624,17 @@ "displayNameLabel": "Display name", "memberPasswordLabel": "Password", "colorLabel": "Color", + "familyRoleLabel": "Family role", + "familyRoleDad": "Dad", + "familyRoleMom": "Mom", + "familyRoleParent": "Parent", + "familyRoleChild": "Child", + "familyRoleGrandparent": "Grandparent", + "familyRoleRelative": "Relative", + "familyRoleOther": "Family member", + "systemAdminLabel": "System admin", + "systemAdminHint": "System admins can manage application settings, integrations, API tokens and family accounts.", + "systemAdminBadge": "System admin", "roleLabel": "Role", "roleMember": "Member", "roleAdmin": "Admin", diff --git a/public/locales/es.json b/public/locales/es.json index fba9471..9180108 100644 --- a/public/locales/es.json +++ b/public/locales/es.json @@ -624,6 +624,17 @@ "displayNameLabel": "Nombre para mostrar", "memberPasswordLabel": "Contraseña", "colorLabel": "Color", + "familyRoleLabel": "Rol familiar", + "familyRoleDad": "Papá", + "familyRoleMom": "Mamá", + "familyRoleParent": "Progenitor", + "familyRoleChild": "Hijo/a", + "familyRoleGrandparent": "Abuelo/a", + "familyRoleRelative": "Familiar", + "familyRoleOther": "Miembro de la familia", + "systemAdminLabel": "Administrador del sistema", + "systemAdminHint": "Los administradores del sistema pueden gestionar ajustes, integraciones, tokens de API y cuentas familiares.", + "systemAdminBadge": "Admin del sistema", "roleLabel": "Rol", "roleMember": "Miembro", "roleAdmin": "Administrador", diff --git a/public/locales/fr.json b/public/locales/fr.json index c0e0b3f..1a9f6a9 100644 --- a/public/locales/fr.json +++ b/public/locales/fr.json @@ -624,6 +624,17 @@ "displayNameLabel": "Nom affiché", "memberPasswordLabel": "Mot de passe", "colorLabel": "Couleur", + "familyRoleLabel": "Rôle familial", + "familyRoleDad": "Papa", + "familyRoleMom": "Maman", + "familyRoleParent": "Parent", + "familyRoleChild": "Enfant", + "familyRoleGrandparent": "Grand-parent", + "familyRoleRelative": "Proche", + "familyRoleOther": "Membre de la famille", + "systemAdminLabel": "Administrateur système", + "systemAdminHint": "Les administrateurs système peuvent gérer les paramètres, intégrations, jetons API et comptes familiaux.", + "systemAdminBadge": "Admin système", "roleLabel": "Rôle", "roleMember": "Membre", "roleAdmin": "Admin", diff --git a/public/locales/hi.json b/public/locales/hi.json index 252117a..eabcb6d 100644 --- a/public/locales/hi.json +++ b/public/locales/hi.json @@ -624,6 +624,17 @@ "displayNameLabel": "प्रदर्शन नाम", "memberPasswordLabel": "पासवर्ड", "colorLabel": "रंग", + "familyRoleLabel": "परिवार भूमिका", + "familyRoleDad": "पिता", + "familyRoleMom": "माँ", + "familyRoleParent": "अभिभावक", + "familyRoleChild": "बच्चा", + "familyRoleGrandparent": "दादा-दादी/नाना-नानी", + "familyRoleRelative": "रिश्तेदार", + "familyRoleOther": "परिवार सदस्य", + "systemAdminLabel": "सिस्टम एडमिन", + "systemAdminHint": "सिस्टम एडमिन सेटिंग्स, इंटीग्रेशन, API टोकन और परिवार खातों को प्रबंधित कर सकते हैं।", + "systemAdminBadge": "सिस्टम एडमिन", "roleLabel": "भूमिका", "roleMember": "सदस्य", "roleAdmin": "एडमिन", diff --git a/public/locales/it.json b/public/locales/it.json index a790dfb..16d2916 100644 --- a/public/locales/it.json +++ b/public/locales/it.json @@ -624,6 +624,17 @@ "displayNameLabel": "Nome visualizzato", "memberPasswordLabel": "Password", "colorLabel": "Colore", + "familyRoleLabel": "Ruolo familiare", + "familyRoleDad": "Papà", + "familyRoleMom": "Mamma", + "familyRoleParent": "Genitore", + "familyRoleChild": "Figlio/a", + "familyRoleGrandparent": "Nonno/a", + "familyRoleRelative": "Parente", + "familyRoleOther": "Membro della famiglia", + "systemAdminLabel": "Amministratore di sistema", + "systemAdminHint": "Gli amministratori di sistema possono gestire impostazioni, integrazioni, token API e account familiari.", + "systemAdminBadge": "Admin sistema", "roleLabel": "Ruolo", "roleMember": "Membro", "roleAdmin": "Admin", diff --git a/public/locales/ja.json b/public/locales/ja.json index 68b4694..669c102 100644 --- a/public/locales/ja.json +++ b/public/locales/ja.json @@ -624,6 +624,17 @@ "displayNameLabel": "表示名", "memberPasswordLabel": "パスワード", "colorLabel": "色", + "familyRoleLabel": "家族内の役割", + "familyRoleDad": "父", + "familyRoleMom": "母", + "familyRoleParent": "保護者", + "familyRoleChild": "子ども", + "familyRoleGrandparent": "祖父母", + "familyRoleRelative": "親族", + "familyRoleOther": "家族メンバー", + "systemAdminLabel": "システム管理者", + "systemAdminHint": "システム管理者は設定、連携、APIトークン、家族アカウントを管理できます。", + "systemAdminBadge": "システム管理者", "roleLabel": "役割", "roleMember": "メンバー", "roleAdmin": "管理者", diff --git a/public/locales/pt.json b/public/locales/pt.json index 9ee9b9f..c4861c5 100644 --- a/public/locales/pt.json +++ b/public/locales/pt.json @@ -624,6 +624,17 @@ "displayNameLabel": "Nome de exibição", "memberPasswordLabel": "Senha", "colorLabel": "Cor", + "familyRoleLabel": "Papel na família", + "familyRoleDad": "Pai", + "familyRoleMom": "Mãe", + "familyRoleParent": "Responsável", + "familyRoleChild": "Filho(a)", + "familyRoleGrandparent": "Avô/Avó", + "familyRoleRelative": "Parente", + "familyRoleOther": "Membro da família", + "systemAdminLabel": "Administrador do sistema", + "systemAdminHint": "Administradores do sistema podem gerenciar configurações, integrações, tokens de API e contas da família.", + "systemAdminBadge": "Admin do sistema", "roleLabel": "Função", "roleMember": "Membro", "roleAdmin": "Admin", diff --git a/public/locales/ru.json b/public/locales/ru.json index 6e145f1..a419b12 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -624,6 +624,17 @@ "displayNameLabel": "Отображаемое имя", "memberPasswordLabel": "Пароль", "colorLabel": "Цвет", + "familyRoleLabel": "Роль в семье", + "familyRoleDad": "Папа", + "familyRoleMom": "Мама", + "familyRoleParent": "Родитель", + "familyRoleChild": "Ребёнок", + "familyRoleGrandparent": "Дедушка/бабушка", + "familyRoleRelative": "Родственник", + "familyRoleOther": "Член семьи", + "systemAdminLabel": "Системный администратор", + "systemAdminHint": "Системные администраторы могут управлять настройками, интеграциями, API-токенами и семейными аккаунтами.", + "systemAdminBadge": "Системный администратор", "roleLabel": "Роль", "roleMember": "Участник", "roleAdmin": "Администратор", diff --git a/public/locales/sv.json b/public/locales/sv.json index f546000..e88c2db 100644 --- a/public/locales/sv.json +++ b/public/locales/sv.json @@ -624,6 +624,17 @@ "displayNameLabel": "Visningsnamn", "memberPasswordLabel": "Lösenord", "colorLabel": "Färg", + "familyRoleLabel": "Familjeroll", + "familyRoleDad": "Pappa", + "familyRoleMom": "Mamma", + "familyRoleParent": "Förälder", + "familyRoleChild": "Barn", + "familyRoleGrandparent": "Far-/morförälder", + "familyRoleRelative": "Släkting", + "familyRoleOther": "Familjemedlem", + "systemAdminLabel": "Systemadministratör", + "systemAdminHint": "Systemadministratörer kan hantera inställningar, integrationer, API-token och familjekonton.", + "systemAdminBadge": "Systemadmin", "roleLabel": "Roll", "roleMember": "Medlem", "roleAdmin": "Admin", diff --git a/public/locales/tr.json b/public/locales/tr.json index faadd2d..27d4433 100644 --- a/public/locales/tr.json +++ b/public/locales/tr.json @@ -624,6 +624,17 @@ "displayNameLabel": "Görünen ad", "memberPasswordLabel": "Şifre", "colorLabel": "Renk", + "familyRoleLabel": "Aile rolü", + "familyRoleDad": "Baba", + "familyRoleMom": "Anne", + "familyRoleParent": "Ebeveyn", + "familyRoleChild": "Çocuk", + "familyRoleGrandparent": "Büyükanne/Büyükbaba", + "familyRoleRelative": "Akraba", + "familyRoleOther": "Aile üyesi", + "systemAdminLabel": "Sistem yöneticisi", + "systemAdminHint": "Sistem yöneticileri ayarları, entegrasyonları, API tokenlarını ve aile hesaplarını yönetebilir.", + "systemAdminBadge": "Sistem yöneticisi", "roleLabel": "Rol", "roleMember": "Üye", "roleAdmin": "Yönetici", diff --git a/public/locales/uk.json b/public/locales/uk.json index c035241..3d94b75 100644 --- a/public/locales/uk.json +++ b/public/locales/uk.json @@ -624,6 +624,17 @@ "displayNameLabel": "Відображуване ім'я", "memberPasswordLabel": "Пароль", "colorLabel": "Колір", + "familyRoleLabel": "Роль у родині", + "familyRoleDad": "Тато", + "familyRoleMom": "Мама", + "familyRoleParent": "Батько/мати", + "familyRoleChild": "Дитина", + "familyRoleGrandparent": "Дідусь/бабуся", + "familyRoleRelative": "Родич", + "familyRoleOther": "Член родини", + "systemAdminLabel": "Системний адміністратор", + "systemAdminHint": "Системні адміністратори можуть керувати налаштуваннями, інтеграціями, API-токенами та сімейними акаунтами.", + "systemAdminBadge": "Системний адміністратор", "roleLabel": "Роль", "roleMember": "Учасник", "roleAdmin": "Адміністратор", diff --git a/public/locales/zh.json b/public/locales/zh.json index b483620..88c1f44 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -624,6 +624,17 @@ "displayNameLabel": "显示名称", "memberPasswordLabel": "密码", "colorLabel": "颜色", + "familyRoleLabel": "家庭角色", + "familyRoleDad": "爸爸", + "familyRoleMom": "妈妈", + "familyRoleParent": "父母", + "familyRoleChild": "孩子", + "familyRoleGrandparent": "祖父母", + "familyRoleRelative": "亲属", + "familyRoleOther": "家庭成员", + "systemAdminLabel": "系统管理员", + "systemAdminHint": "系统管理员可以管理应用设置、集成、API 令牌和家庭账户。", + "systemAdminBadge": "系统管理员", "roleLabel": "角色", "roleMember": "成员", "roleAdmin": "管理员", diff --git a/public/pages/settings.js b/public/pages/settings.js index 7d1f6bd..7ffe88c 100644 --- a/public/pages/settings.js +++ b/public/pages/settings.js @@ -14,6 +14,7 @@ const SUPPORTED_CURRENCIES = ['AED', 'AUD', 'BRL', 'CAD', 'CHF', 'CNY', 'CZK', ' const SETTINGS_TAB_KEY = 'oikos:settings:tab'; const APP_NAME_STORAGE_KEY = 'oikos-app-name'; const DEFAULT_APP_NAME = 'Oikos'; +const FAMILY_ROLES = ['dad', 'mom', 'parent', 'child', 'grandparent', 'relative', 'other']; const CATEGORY_I18N = { 'Obst & Gemüse': 'shopping.catFruitVeg', @@ -44,6 +45,16 @@ function buildCurrencyOptions(selected) { .join(''); } +function familyRoleLabel(role) { + return t(`settings.familyRole${String(role || 'other').replace(/(^|_)([a-z])/g, (_, __, c) => c.toUpperCase())}`); +} + +function buildFamilyRoleOptions(selected = 'other') { + return FAMILY_ROLES.map((role) => ` + + `).join(''); +} + /** * @param {HTMLElement} container * @param {{ user: object }} context @@ -476,12 +487,16 @@ export async function render(container, { user }) {
- - + ${buildFamilyRoleOptions()}
+ +

${t('settings.systemAdminHint')}

@@ -773,7 +788,8 @@ function bindEvents(container, user, categories, icsSubscriptions, apiTokens) { display_name: container.querySelector('#new-display-name').value.trim(), password: container.querySelector('#new-member-password').value, avatar_color: container.querySelector('#new-avatar-color').value, - role: container.querySelector('#new-role').value, + family_role: container.querySelector('#new-family-role').value, + system_admin: container.querySelector('#new-system-admin')?.checked === true, }; const btn = addMemberForm.querySelector('[type=submit]'); @@ -1103,12 +1119,14 @@ function bindCategoryEvents(container) { } function memberHtml(u) { + const familyRole = familyRoleLabel(u.family_role); + const systemRole = u.role === 'admin' ? ` · ${esc(t('settings.systemAdminBadge'))}` : ''; return `
  • ${initials(u.display_name)}
    ${esc(u.display_name)} - @${esc(u.username)} · ${u.role === 'admin' ? t('settings.roleAdmin') : t('settings.roleMember')} + @${esc(u.username)} · ${esc(familyRole)}${systemRole}