Flutter 从远程服务器初始化翻译源代码?

Flutter 从远程服务器初始化翻译源代码?,flutter,getx,Flutter,Getx,我试图使用getX作为颤振状态管理工具。GetX有自己处理语言翻译的方法。我不确定的一件事是,如何从远程服务器初始化翻译源代码,而不是硬编码翻译。通过这种方式,我可以在不需要发布新应用程序的情况下修改翻译 欢迎任何建议。谢谢。我有DotNet WebAPI后端,我正在发送以下格式的翻译: [ApiController] [Route("[controller]")] public class TranslationsController : ControllerBase {

我试图使用getX作为颤振状态管理工具。GetX有自己处理语言翻译的方法。我不确定的一件事是,如何从远程服务器初始化翻译源代码,而不是硬编码翻译。通过这种方式,我可以在不需要发布新应用程序的情况下修改翻译


欢迎任何建议。谢谢。

我有DotNet WebAPI后端,我正在发送以下格式的翻译:

[ApiController]
[Route("[controller]")]
public class TranslationsController : ControllerBase
{
    [HttpGet]
    public async Task<IActionResult> GetAll()
    {
        return Ok(new
        {
            en_US = new
            {
                hi = "Hi",
                bye = "Bye"
            },
            bn_BD = new
            {
                hi = "ওহে",
                bye = "বিদায়"
            }
        });
    }
}
这是我的MyApp

class TranslationProvider extends GetConnect {
  Future<AppTranslations?> getTranslations() async {
  final url = 'http://192.168.0.106:5000/translations';

  final response = await get(url, decoder: AppTranslations.fromJson);

   if (response.hasError) {
     return Future.error(response.statusText!);
    }

   return response.body;
  }
}
class MyApp extends StatelessWidget {
 final AppTranslations translations;

 const MyApp({Key? key, required this.translations}) : super(key: key);

 @override
 Widget build(BuildContext context) {
  return GetMaterialApp(
    translations: translations,
    locale: Locale("en_US"),
    home: MyHomePage(),
  );
 }
}
你完了!现在,您可以在API中更新您的翻译,更新将反映在应用程序上

void main() async {
 final translationProvider = TranslationProvider();

 final translations = await translationProvider.getTranslations();

 runApp(MyApp(translations: translations!));
}
class MyApp extends StatelessWidget {
 final AppTranslations translations;

 const MyApp({Key? key, required this.translations}) : super(key: key);

 @override
 Widget build(BuildContext context) {
  return GetMaterialApp(
    translations: translations,
    locale: Locale("en_US"),
    home: MyHomePage(),
  );
 }
}