TextTr
Einleitung
Das TextTr-Widget ist ein praktischer Wrapper um Flutters Text-Widget, der seinen Inhalt automatisch mithilfe des Lokalisierungssystems von Nylo Website uebersetzt.
Anstatt zu schreiben:
Text("hello_world".tr())
Koennen Sie schreiben:
TextTr("hello_world")
Dies macht Ihren Code sauberer und besser lesbar, besonders wenn Sie mit vielen uebersetzten Strings arbeiten.
Grundlegende Verwendung
@override
Widget build(BuildContext context) {
return Column(
children: [
TextTr("welcome_message"),
TextTr(
"app_title",
style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
textAlign: TextAlign.center,
),
],
);
}
Das Widget sucht den Uebersetzungsschluessel in Ihren Sprachdateien (z.B. /lang/en.json):
{
"welcome_message": "Welcome to our app!",
"app_title": "My Application"
}
String-Interpolation
Verwenden Sie den Parameter arguments, um dynamische Werte in Ihre Uebersetzungen einzufuegen:
TextTr(
"greeting",
arguments: {"name": "John"},
)
In Ihrer Sprachdatei:
{
"greeting": "Hello, {{name}}!"
}
Ausgabe: Hello, John!
Mehrere Argumente
TextTr(
"order_summary",
arguments: {
"item": "Coffee",
"quantity": "2",
"total": "\$8.50",
},
)
{
"order_summary": "You ordered {{quantity}}x {{item}} for {{total}}"
}
Ausgabe: You ordered 2x Coffee for $8.50
Stil-Konstruktoren
TextTr bietet benannte Konstruktoren, die automatisch Textstile aus Ihrem Theme anwenden:
displayLarge
TextTr.displayLarge("page_title")
Verwendet den Stil Theme.of(context).textTheme.displayLarge.
headlineLarge
TextTr.headlineLarge("section_heading")
Verwendet den Stil Theme.of(context).textTheme.headlineLarge.
bodyLarge
TextTr.bodyLarge("paragraph_text")
Verwendet den Stil Theme.of(context).textTheme.bodyLarge.
labelLarge
TextTr.labelLarge("button_label")
Verwendet den Stil Theme.of(context).textTheme.labelLarge.
Beispiel mit Stil-Konstruktoren
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextTr.headlineLarge("welcome_title"),
SizedBox(height: 16),
TextTr.bodyLarge(
"welcome_description",
arguments: {"app_name": "MyApp"},
),
SizedBox(height: 24),
TextTr.labelLarge("get_started"),
],
);
}
Parameter
TextTr unterstuetzt alle Standard-Parameter des Text-Widgets:
| Parameter | Typ | Beschreibung |
|---|---|---|
data |
String |
Der nachzuschlagende Uebersetzungsschluessel |
arguments |
Map<String, String>? |
Schluessel-Wert-Paare fuer die String-Interpolation |
style |
TextStyle? |
Textstil |
textAlign |
TextAlign? |
Wie der Text ausgerichtet werden soll |
maxLines |
int? |
Maximale Zeilenanzahl |
overflow |
TextOverflow? |
Wie Ueberlauf behandelt werden soll |
softWrap |
bool? |
Ob Text an weichen Umbruechen umbrechen soll |
textDirection |
TextDirection? |
Richtung des Textes |
locale |
Locale? |
Locale fuer die Textdarstellung |
semanticsLabel |
String? |
Barrierefreiheits-Label |
Vergleich
| Ansatz | Code |
|---|---|
| Traditionell | Text("hello".tr()) |
| TextTr | TextTr("hello") |
| Mit Argumenten | TextTr("hello", arguments: {"name": "John"}) |
| Gestylt | TextTr.headlineLarge("title") |