Flutter 多语言自动化本地化生成器

Flutter 多语言自动化本地化生成器

这是一个为Flutter设计的插件,通过从Excel表格提取的CSV文件自动生成Dart本地化文件,以简化应用程序本地化的流程。这个工具通过自动化创建多语言资源文件,简化了开发人员和翻译人员的工作流程。

特点

  • 默认支持英文。
  • 可轻松切换到简体中文及其他语言。
  • 从CSV生成Dart本地化文件。
  • 支持多种语言,非常适合大型国际应用。
  • 减少了手动复制粘贴的需要和可能的人为错误。
  • 不干扰Excel中翻译人员的工作流程。

安装

要使用这个插件,请在您的pubspec.yaml文件中将auto_locale_generator添加为开发依赖项。

dev_dependencies:auto_locale_generator: ^0.0.1

使用方法

  1. 在Flutter项目的assets目录下创建一个locale文件夹。
  2. 下载提供的Excel翻译模板,并确保不更改格式。在language.xlsx中添加翻译。可以参考example中的例子
  3. 将Excel文件导出为CSV文件,修改文件名为language.csv,下载完后打开检查看看有无多余标点和行数,并将其放在locale目录中。可以参考example
  4. lib目录下创建一个res文件夹。
  5. 执行以下命令,在res目录中生成Dart本地化文件。输入输出目录可以自己更改,本例中的输入目录’./assets/locale/language.csv’ 输出目录’lib/res/’
  6. 本例子第一版本目前支持英文,简体中文,繁体中文,可自己克隆增加其他语言

执行如下命令

flutter pub run auto_locale_generator -i ./assets/locale/language.csv -o lib/res/ -r

执行命令后,您将在res目录下找到为每种语言生成的Dart文件。

使用教程截图

1 下载提供的Excel翻译模板,并补全翻译后下载Excel保存为.csv文件
在这里插入图片描述

2 assets下创建locale文件,把并language.csv放在这里
在这里插入图片描述
3 在lib下新增res文件夹
在这里插入图片描述
4 dev_dependencies 记住是在dev_dependencies下,不是dependencies下,

dev_dependencies:auto_locale_generator: ^0.0.1

执行

flutter pub get

执行,这里输入输出路径可以自行更改

flutter pub run auto_locale_generator -i ./assets/locale/language.csv -o lib/res/ -r

5 这时候看到res下生成了三种多语言
在这里插入图片描述

string.dart 表示多语言Key
在这里插入图片描述
string.zh.dart 表示中文
在这里插入图片描述
注:本例子第一版本目前支持英文,简体中文,繁体中文,没有自动化解析csv的列,可自己克隆增加其他语言
命令也可以放在shell中,项目根目录创建shell 文件夹,新建intl.sh
在这里插入图片描述
intl.sh里面放如下代码

#!/bin/bashecho "开始生成多语言文件"
cd ..
flutter pub run auto_locale_generator -i ./assets/locale/language.csv -o lib/res/ -r

运行

cd shell
执行 ./intl.sh

将来新增或者修改多语言在Excel里操作就行,粘贴过来自动脚本生成dart,无需无脑复制

##多语言使用
我这里用的是Getx举例,你也可以用原生多语言方法

///使用Get配置语言环境
///使用Get.updateLocale(locale);即可更新
class TranslationsMessage extends Translations {Map<String, Map<String, String>> get keys => {'zh_CN': localizedValueZH,'zh_HK': localizedValueZHHK,'zh_TW': localizedValueZHTW,'en_US': localizedValueEN,};
}

使用时ID.stringDiscover.tr即可

 Widget build(BuildContext context) {return Scaffold(appBar: baseAppBar(title: ID.stringDiscover.tr, hideLeading: true),body: const BodyWidget());}

贡献

欢迎贡献!提交任何pull请求之前,请先阅读贡献指南。

许可证

该项目根据MIT许可证授权 - 详情见LICENSE文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国外visa卡怎么办理,可充ChatGPTPLUS、Claude、Midjourney

很多小伙都在使用ChatGPT&#xff0c;但是想充值ChatGPTPLUS缺需要国外的visa卡&#xff0c;拿自己的银联卡&#xff0c;尝试了好多次还是不行&#xff0c;其实用一张国外的visa卡几分钟就可以升级好 办理国外visa卡&#xff0c;点击获取 国外的visa卡&#xff0c;具体要看你…

ArcGIS全系列实战视频教程——9个单一课程组合+系列直播回放

《ArcGIS全系列实战视频教程》是由9个单一课程组合合成。组成一条ArcGIS入门实战各项专题深入应用学习全链条&#xff0c;让你学有方向、学有目的&#xff0c;系统全面掌握ArcGIS。 ArcGIS全系列实战视频教程——9个单一课程组合https://edu.csdn.net/combo/detail/2569 《Ar…

SpringBoot之Bean扫描、Bean注册

目录 Bean扫描 Bean注册 Bean lmport 自定义注解 注册条件 Bean扫描 Bean扫描有两种方式 1、标签:<context:component-scan base-package"com.mybatis"/> 2、注解: ComponentScan(basePackages "com.mybatis") springboot启动类注解可以自…

Postman定义全局变量和环境

Postman定义全局变量和环境 一. 问题二. 配置环境解决 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 问题 问题前因&#xff1a;在使用postman调用elasticsearch接口的时候&…

目标检测——YOLOv3算法解读

论文&#xff1a;YOLOv3&#xff1a;An Incremental Improvement 作者&#xff1a;Joseph Redmon, Ali Farhadi 链接&#xff1a;https://arxiv.org/abs/1804.02767 代码&#xff1a;http://pjreddie.com/yolo/ YOLO系列其他文章&#xff1a; YOLOv1通俗易懂版解读SSD算法解读…

rust学习(简单链表)

编写一个简单链表&#xff0c;主要遇到的问题就是next指针&#xff08;按照C的写法&#xff09;的数据如何定义。按照网上的建议&#xff0c;一般定义如下&#xff1a; struct Node {pub value:u32,pub next:Option<Rc<RefCell<Node>>>, //1 }1.用Option主要…

pearlCTF——少部分WP

题型新颖&#xff0c;见识了不少 目录 b4by_jailExcel MayhemRick Roll3 spiesjail_timeWiFi brokenSoundScape b4by_jail 一道沙箱逃逸的题 源代码 #!/usr/local/bin/python import time flag"pearl{f4k3_fl4g}" blacklistlist("abcdefghijklmnopqrstuvwxyz…

【计算机图形学】End-to-End Affordance Learning for Robotic Manipulation

对RLAfford&#xff1a;End-to-End Affordance Learning for Robotic Manipulation的简单理解 1. 为什么要做这件事 在交互环境中学习如何操纵3D物体是RL中的挑战性问题。很难去训练出一个能够泛化到具有不同语义类别、不同几何形状和不同功能物体上的策略。 Visual Afforda…

Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

1.简介 在实际工作中&#xff0c;我们经常会听到数据库的性能和稳定性等等&#xff0c;这些有时候也需要测试工程师去评估和测试&#xff0c;上一篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家&#xff0c;希望对各位小伙伴…

在 Java 中,如何使用文件保存包含文字和数字的 Swing 表格?

要在Java中使用文件保存包含文字和数字的Swing表格&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 首先&#xff0c;您需要创建一个Swing表格&#xff0c;并向其中添加包含文字和数字的数据。 2. 接下来&#xff0c;您可以使用Java中的文件操作类&#xff08;如FileWrit…

<Senior High School Math>: inequality question

( 1 ) . o m i t (1). omit (1).omit ( 2 ) . ( a 2 − b 2 ) ( x 2 a 2 − y 2 b 2 ) ( x 2 y 2 ) − ( a 2 y 2 b 2 b 2 x 2 a 2 ) ≤ x 2 y 2 − 2 x y ( x − y ) 2 (2). (a^2-b^2)(\frac{x^2}{a^2} - \frac{y^2}{b^2})(x^2y^2)-(\frac{a^2y^2}{b^2}\frac{b^2x^2}{a^…

设置jmeter默认语言为中文

问题描述 通过面板上面的选项修改语言&#xff08;如下图&#xff09;&#xff0c;每次运行程序都需要重新再设置一遍&#xff0c;我需要每次打开都是中文界面 解决方案 进入jmeter的文件目录 bin——> jmeter.properties 打开这个文件 搜索Preferred GUI language在下方添…

微信小程序 uniapp奶茶点单系统r4112

系统功能有&#xff1a;信点单小程序分为小程序部分和后台管理两部分&#xff0c;小程序部分的主要功能包含&#xff1a;用户注册登录&#xff0c;查看商品信息&#xff0c;加入购物车&#xff0c;结算并生成订单&#xff0c;订单管理&#xff0c;资讯管理&#xff0c;个人中心…

hive-批量导出表结构,导入表结构

1、导出hive表结构 datastudio可以连接hive库&#xff0c;通过show databases 语句可以显示hive下建了多少数据库名。 使用use 数据库名&#xff0c;进入某个数据库下&#xff0c;通过show tables可显示该数据库下建了多少张表。 将所有库的表数据整理成库名.表名的形式放入…

2023版IDEA永久破解教程带patch.exe破解程序

2023版IDEA永久破解教程带patch.exe破解程序 第零步&#xff1a;百度云盘获取程序第一步&#xff1a;关闭电脑的病毒和危险防护&#xff08;目的是避免电脑自动清除破解程序&#xff09;1.找到电脑的 病毒和威胁防护2.蓝色按钮表示防护处于开启状态3.关闭成功会展示“实时保护已…

IIOT|QCA9882 vs MT7915: What‘s the difference?

IIOT|QCA9882 vs MT7915: Whats the difference? How to choose? Choosing QCA9882 or MT7915 depends on your specifc needs. lf you need a stable, widely compatible WiFi wireless cardthe QCA9882 is a good choice. lf you need wifi6 solution with DBDC 2.4Ghz 5G…

AI 大模型赋能手机影像,小米14 Ultra 让真实有层次

2月22日&#xff0c;小米龙年第一场重磅发布会&#xff0c;正式发布专业影像旗舰小米14 Ultra。 此前小米发布的两代 Ultra&#xff0c;在不同维度&#xff0c;引领了移动影像行业的走向。最新的小米14 Ultra 在定义的时候&#xff0c;我们反复在思考&#xff1a;怎么才能把移动…

一站式解决方案:uni-app条件编译及多环境配置,appid动态修改攻略!

前言 这篇文章主要介绍uniapp在Hbuilderx 中&#xff0c;通过工程化&#xff0c;区分不同环境、动态修改小程序appid以及自定义条件编译&#xff0c;解决代码发布和运行时手动切换到问题。 背景 在企业级的应用中&#xff0c;通常会分为&#xff0c;开发、联调、生产等多个环…

基于单片机的电子琴设计

基于单片机的电子琴设计 摘 要 读书、看电影、听音乐&#xff0c;都是最常见的丰富内心世界的良剂。听音乐&#xff0c;作为陶冶情操、提升境界最便捷的方式&#xff0c;正受到越来越多人们的欢迎。音乐可以很轻松的融入各种场合&#xff0c;给人们带来很轻松的氛围&#xff…

ChatGPT-Next-Web SSRF漏洞+XSS漏洞复现(CVE-2023-49785)

0x01 产品简介 ChatGPT-Next-Web 是一种基于 OpenAI 的 GPT-3.5 、GPT-4.0语言模型的产品。它是设计用于 Web 环境中的聊天机器人,旨在为用户提供自然语言交互和智能对话的能力。 0x02 漏洞概述 2024年3月,互联网上披露CVE-2023-49785 ChatGPT-Next-Web SSRF/XSS 漏洞,未经…