Fix Scribe translations by using multiple_localization package

Even if all keys were translated, Scribe UI was always in default
language.

In short, it is not possible to load multiple localization delegates
with different .arb files. But we need these translations to be
located in a separate file because in the future we will move Scribe
in a separate module.

See
https://github.com/Innim/flutter_multiple_localization for more
explanation.
This commit is contained in:
Théo Poizat
2026-01-19 15:50:50 +01:00
committed by Dat H. Pham
parent 1b29b481c0
commit d739b61c83
4 changed files with 26 additions and 10 deletions
+8
View File
@@ -1534,6 +1534,14 @@ packages:
relative: true relative: true
source: path source: path
version: "1.0.0+1" version: "1.0.0+1"
multiple_localization:
dependency: transitive
description:
name: multiple_localization
sha256: "29c97a3fbf4d067ea5a63df1995465ea81ef28e2c817d9d0871983e50f4fd3f0"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
nm: nm:
dependency: transitive dependency: transitive
description: description:
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:multiple_localization/multiple_localization.dart';
import 'package:scribe/scribe/ai/l10n/messages_all.dart'; import 'package:scribe/scribe/ai/l10n/messages_all.dart';
class ScribeLocalizations { class ScribeLocalizations {
@@ -7,16 +8,13 @@ class ScribeLocalizations {
return Localizations.of<ScribeLocalizations>(context, ScribeLocalizations)!; return Localizations.of<ScribeLocalizations>(context, ScribeLocalizations)!;
} }
static Future<ScribeLocalizations> load(Locale locale) async { static Future<ScribeLocalizations> load(Locale locale) {
final name = return MultipleLocalizations.load(
locale.countryCode == null ? locale.languageCode : locale.toString(); initializeMessages,
locale,
final localeName = Intl.canonicalizedLocale(name); (locale) => ScribeLocalizations(),
setDefaultLocale: true,
return initializeMessages(localeName).then((_) { );
Intl.defaultLocale = localeName;
return ScribeLocalizations();
});
} }
static const LocalizationsDelegate<ScribeLocalizations> delegate = static const LocalizationsDelegate<ScribeLocalizations> delegate =
+8
View File
@@ -798,6 +798,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.6" version: "1.0.6"
multiple_localization:
dependency: "direct main"
description:
name: multiple_localization
sha256: "29c97a3fbf4d067ea5a63df1995465ea81ef28e2c817d9d0871983e50f4fd3f0"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
objective_c: objective_c:
dependency: transitive dependency: transitive
description: description:
+2
View File
@@ -38,6 +38,8 @@ dependencies:
flutter_svg: 2.1.0 flutter_svg: 2.1.0
multiple_localization: 0.6.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter