Строковый XML файл в Flutter

Привет Я Android-разработчик, новый для флаттера. В тексте строки флаттера прямо устанавливается текстовый виджет поля.

(То есть)

new Text('Hello,  How are you?')

Правильно? или мы можем поддерживать всю строку в одном файле и использовать ее.

(То есть)

<string name="name_hint">Hello, How are you?</string>

Это возможно?. Любая помощь будет оценена, спасибо заранее.

Ответ 1

Flutter в настоящее время не имеет выделенной ресурсной системы для строк. На данный момент лучше всего хранить текст в классе как статические поля и получать к ним доступ оттуда. Например:

class Strings {
  static const String welcomeMessage = "Welcome To Flutter";
}

Затем в вашем коде вы можете получить доступ к своим строкам как таковым:

Text(Strings.welcomeMessage)

источник


Изменить май 19 года:

Там теперь этот пакет, который позволяет вам создавать файлы JSON с вашими строками. Это позволит вам создавать строки для множественного числа, полов и языков и т.д.

Вы можете создать отдельный файл JSON для каждого языка следующим образом:

string_en.json

{
"thanks": "Thanks."
}

string_nl.json

{    
"thanks": "Dankjewel."
}

А затем использовать это для доступа к нему

S.of(context).thanks;

Он будет знать, какой язык выбрать, основываясь на языке вашего телефона по умолчанию.

Ответ 2

Вы можете использовать методы, представленные в разделах интернационализации документации, для управления централизованным управлением и переводами строк (если вам нужны переводы)

https://flutter.io/tutorials/internationalization/

Это может быть излишним для простого приложения с несколькими строками.

Ответ 3

Это правильный путь. В flutter вам не нужны файлы .xml или .css для управления макетом/материалом.

Все управляется с использованием кода дротика. Что делает все намного проще.

Ответ 4

  create "Strings.dart" file and add the below line==>


 class Strings
 {
      static String welcomeScreen="WelCome Page";
      static String loadingMessage="Loading Please Wait...!";
 }

 And then call the file using the below line using the widget
 Text(Strings.loadingMessage)

 Make sure that the String.dart file has been imported