Feat: add Swedish language (#3062)

This commit is contained in:
maziggy
2026-09-24 14:53:39 +02:00
3 changed files with 7695 additions and 1 deletions
+20
View File
@@ -371,6 +371,25 @@ const ES_COGNATES = [
'Simple', // slicer settings visibility tier — identical word in Spanish
];
// Swedish cognates — technical UI labels that Swedish speakers use verbatim
// from English (loanwords + acronyms + format strings). Curated, not a shortcut.
const SV_COGNATES = [
'MakerWorld: {{designer}}',
'email',
'{{printer}}: {{error}}',
'Bambu Cloud',
'Orca Cloud',
'{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}',
'EC984C,#6CD4BC,A66EB9,D87694',
'({{count}}/8)',
'(25%, 50%, 75%)', 'System', 'Filament', 'Status', 'Total budget', 'Budget', 'Offline', 'Problem', 'Diameter', 'Standard',
'Live', 'Firmware', '{{filament}} @ {{temp}}°C', 'Standard (100%)', 'Sport (124%)', '{{weight}}g', 'Pipeline', 'Pipelines', 'Position', 'Batch', 'Timelapse', 'Online',
'Disk', 'STARTTLS (Port 587)', 'SSL/TLS (Port 465)', 'Start', 'Auto', 'Admin', 'Data', 'Material', 'Hex', 'Accent', 'Neutral', 'Orange', 'Rotation', 'Test',
'Port', '(System)', 'Autologin', 'Process', 'Filament {{n}}', 'Region', 'Global', 'Normal', 'Version', 'max {{n}}', 'Expert', 'Filament {{index}} ({{type}})', 'Material:',
'(Inv)', 'Original', 'Commit', 'Extruder', 'Gradient', 'Proxy', 'Metadata', '{{count}} filament', 'Temp', 'Min', 'ntfy, Pushover, Discord, etc.', 'Hex: #{{hex}}', 'Designer',
'Prefix', 'Trend', 'max(global {{global}}d, SKU {{sku}}d)', 'Slicer',
];
// Turkish cognates — technical UI labels that Turkish speakers use verbatim
// from English (loanwords + acronyms + format strings). Curated, not a shortcut.
const TR_COGNATES = [
@@ -465,6 +484,7 @@ const IDENTICAL_TO_EN_ALLOWED = {
'pt-BR': new Set(PT_BR_COGNATES),
'zh-CN': new Set(ZH_CN_COGNATES),
'zh-TW': new Set(ZH_TW_COGNATES),
sv: new Set(SV_COGNATES),
tr: new Set(TR_COGNATES),
ru: new Set(RU_COGNATES),
uk: new Set(UK_COGNATES),
+4 -1
View File
@@ -14,6 +14,7 @@ import ko from './locales/ko';
import ptBR from './locales/pt-BR';
import zhCN from './locales/zh-CN';
import zhTW from './locales/zh-TW';
import sv from './locales/sv';
import tr from './locales/tr';
import ru from './locales/ru';
import uk from './locales/uk';
@@ -30,12 +31,13 @@ const resources = {
'pt-BR': { translation: ptBR },
'zh-CN': { translation: zhCN },
'zh-TW': { translation: zhTW },
sv: { translation: sv },
tr: { translation: tr },
ru: { translation: ru },
uk: { translation: uk },
};
const SUPPORTED_LNGS = ['en', 'de', 'es', 'fr', 'ja', 'it', 'ko', 'nl', 'pt-BR', 'ru', 'tr', 'uk', 'zh-CN', 'zh-TW'];
const SUPPORTED_LNGS = ['en', 'de', 'es', 'fr', 'ja', 'it', 'ko', 'nl', 'pt-BR', 'ru', 'sv', 'tr', 'uk', 'zh-CN', 'zh-TW'];
const APPLIANCE_CONSUMED_KEY = 'bambuddy_appliance_locale_consumed';
i18n
@@ -113,6 +115,7 @@ export const availableLanguages = [
{ code: 'pt-BR', name: 'Portuguese (Brazil)', nativeName: 'Português (Brasil)' },
{ code: 'zh-CN', name: 'Chinese (Simplified)', nativeName: '简体中文' },
{ code: 'zh-TW', name: 'Chinese (Traditional)', nativeName: '繁體中文' },
{ code: 'sv', name: 'Swedish', nativeName: 'Svenska' },
{ code: 'tr', name: 'Turkish', nativeName: 'Türkçe' },
{ code: 'ru', name: 'Russian', nativeName: 'Русский' },
{ code: 'uk', name: 'Ukrainian', nativeName: 'Українська' },
File diff suppressed because it is too large Load Diff