首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该为Flutter中的i18n使用什么:S.of(上下文)或S.current?

在Flutter中,i18n(国际化)是一种重要的技术,用于实现应用程序的多语言支持。在使用i18n时,可以选择使用"S.of(上下文)"或"S.current"来获取本地化的字符串。

"S.of(上下文)"是一种常见的i18n使用方式,它通过上下文来获取本地化的字符串。这种方式的优势在于可以直接在代码中使用类似于函数调用的方式获取字符串,使得代码更加简洁易读。对于需要在多个地方使用相同字符串的情况,可以通过定义一个全局的i18n类来统一管理字符串,提高代码的可维护性。

"S.current"是另一种常见的i18n使用方式,它通过当前的Locale来获取本地化的字符串。这种方式的优势在于可以根据用户的语言设置动态地获取对应的字符串,实现更加灵活的国际化支持。对于需要根据用户语言动态切换字符串的情况,可以使用这种方式来实现。

推荐的腾讯云相关产品是腾讯云国际化服务(Internationalization Service,简称i18n),它提供了一站式的国际化解决方案,包括多语言管理、翻译服务、语言检测等功能。通过使用腾讯云i18n服务,可以方便地管理应用程序的多语言资源,并实现多语言的快速切换和翻译。

腾讯云i18n产品介绍链接地址:https://cloud.tencent.com/product/i18n

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter-国际化适配终结者

大家好,很久不见,甚是想念,今天,我们来学习以下如何使用国际化神器Flutter i18n,该神器为一位叫Razvan Lung外国大佬开发!...Flutter i18n官网 安装插件 该神器为idea一款插件,名为Flutter i18n,大家可以到开发工具设置找得到。...image.png 如图,先打开到上面的Plugins这一栏,然后点击插件列表下面的Browe repositories,然后在弹出界面输入Flutter i18n。...第二栏为特定区域 为了方便理解我们在Language一栏拉到底部找到zh:Chinese,在右边可以很明确知道特定区域表示什么 image.png...使用是刚新建Flutter项目,添加下面的内容 class MyApp extends StatelessWidget { // This widget is the

1.8K20

关于多语言插件报错,动手解析生成代码这件事

起因 今天本想用 Flutter Intl 插件来玩玩 多语言 ,不知道是 AndroidStudio 版本问题,还是什么,没想到添加语言时一直报错。...也就是说,在代码通过下面语句进行访问属性: 默认调用类是 I18n ,你可以自由指定: S.of(context).XXX 复制代码 如果直接运行,可以在此进行指定: 3.资源说明 字符资源通过...flutter_localizations: sdk: flutter 复制代码 在使用时我们需要在 MaterialApp 配置三个参数: tag1 : 代理类列表。...使用方式 使用方式也非常简洁,通过 .of 方式从上下文中获取 I18N 对象,再获取对应属性即可。...比如之前是 I18n.of(context) ,如果用 Flutter Intl 的话,可能习惯于S.of(context) 。其实就是在写字符串时改个名字而已,暴露出去,使用者可以更灵活地操作。

77820

快速适配 Flutter 之语言国际化

Flutter本身是具备国际化,在适配方面也较为简单,今天将会介绍一个名为Flutter Intl插件快速实现Flutter语言国际化。...《Flutter 应用里国际化》[3] 使用 上文提到了,配置好该插件后,我们需要做便是在arb文件编辑相应字段即可,这里给出示例。 如果有其他语言,只需要再添加一份arb文件即可。...接下来么只需要将字符串部分替换掉即可。 然后保存文件,插件就会在message_xx.adart自动添加对应函数方便获取该字符串。...当然,arb还支持其他语法,这里说下最常见占位符语法: •arb文件 { "dialogTip":"Hello $name" } •使用 S.of(context).dialogTip("Rhyme..."); 更多使用方式见intl | Dart Package[4] 切换语言 上面说了这么多都只是告诉我们如何适配多种语言,上面这些操作均是跟随系统自动调整语言,那么有什么办法可以让用户自定义切换语言呢

2.2K20

Flutter技术与实战(5)

Dart接口实现 Android接口实现 iOS接口实现 应用工程配置 适配国际化,除了多语言我们还需要注意什么 Intl 监听系统语言切换 开发UI支持国际化 ~~ Flutter i18n...因此对于复杂网络请求行为,推荐使用目前在 Dart 社区人气较高第三方 dio 来发起网络请求。 首先需要把 dio 加到 pubspec 依赖里。...所以,要开始 Flutter 应用国际化道路,我们不如把官方解决方案扔到一边,直接从 Android Studio Flutter i18n 插件开始学习。...* 在完成了应用程序国际化配置之后,我们就可以在程序通过 S.of(context),直接获取 arb 文件翻译文案了。...可以看到,Flutter Inspector 所展示 Widget 树结构,与代码实现 Widget 层次是一一对

15.6K30

Flutter 使用 GetX 对话框

他们帮助传递警告和重要信息,以及做具体活动。当 Flutter 开发人员在 Flutter 制作一个对话框时,它利用上下文和生成器制作一个对话框。...然而,对于开发人员来说,利用上下文和构建器来培养 Dialogs 是不合适。 在本文中,我们将探索在 Flutter 使用 GetX 对话框。...演示模块: 这个演示视频展示了如何在 Flutter 创建一个对话框,并展示了如何使用 Flutter 应用程序 get 包来工作,以及使用不同属性。它会显示在你设备上。...这是使用 GetX 进行用户交互对话框一个小小介绍,它正在使用 Flutter 工作。 希望这个博客将提供您充分信息,尝试在您 Flutter 项目使用 GetX 对话框。...我们将向您展示介绍是什么?.使用 GetX 插件制作一个工作对话框演示程序。在本博客,我们已经研究了 flutter 应用程序使用 GetX 对话框。

11210

(new)Flutter-国际化适配终结者

1.介绍 首先在这里提前祝大家新春大吉,最近发现有粉丝私聊Flutter i18n插件在idea插件市场已经找不到了,然后就到Flutter i18n 官网 看到了作者留言,大致意思是:由于作者时间和可用性问题...,插件项目不再维护,并且,另一个更加轻便项目给予我们使用,而今天,我们就来学习以下新项目的使用(纯dart cli工具,无需安装任何插件,在这里,感谢作者!...: ^0.1.3 #new 注意,这里是放到dev_dependencies节点下,目的是在开发项目的时候才进行使用,而打包项目是不会把库里面的代码打包进来,然后我们在命令行下运行flutter pacakges...新建.arb文件.png 这里新建了一个en和zh,目的是支持英文和中文语言环境,内容也是跟之前使用一样 ?...这里需要注意,生成文件对应判断languageCode,如果你要指定对应countryCode,需要在新建.arb文件时指定,如:en_US.arb,下面时s.dart文件一段代码 class

1.2K20

不认为Flutter比React Native好

Flutter CLI 堪称行业顶尖——就特别喜欢其中 flutter doctor 命令,允许开发者直接通过 CLI 管理自己模拟器与仿真器。...使用 Expo 服务,大家不仅能够实现原版 React Native 一切功能,还将获得更好升级体验与集成工具运行效果。...国际化水平 国际化 / 本地化(i18n)当然重要。Flutter 就内置有 i18n 支持,所以不依赖于其他第三方。...所以在使用 Flutter 加 Dart 时,开发者可能很少需要再借助什么第三方库。...总之,希望尽可能在文章公平讨论这个问题。 也不关注那些什么美学、优雅层面的问题,例如 Dart 和 TypeScript 语法、或者 JSX 和 Dart 功能部件结构谁更好之类。

2.5K20

什么Flutter会选择 Dart ?

当我部署代码并花费很长时间时,分心了,做了其他事情,当我回到模拟器/设备时,就忘了想测试内容。有什么比花5分钟将控件移动2px更令人沮丧?有了Flutter,这不再存在。...这也会带来流畅滚动和动画效果,而不会出现卡顿。 统一布局 Dart另一个好处是,Flutter不会从程序拆分出额外模板布局语言,如JSXXML,也不需要单独可视布局工具。...以下是一名开发人员在一篇题为“为什么原生应用程序开发人员认真看待Flutter文章内容。...结果,在Flutter中进行布局要比在Android/XCode快得多。一旦你掌握了它(花了几个星期),由于很少发生上下文切换,因此会节省大量开销。...Flutter使用由Google创建Dart语言,老实说,不喜欢C#JAVA这样强类型语言,但我不知道Dart编写代码方式有什么与众不同。但我觉得写起来很舒服。

2K30

Flutter 1.22 正式发布

您可以将旧按钮与新按钮混合使用。 新国际化和本地化支持 自Flutter创立以来,Flutter已提供您应用程序国际化(i18n)和本地化(l10n)所需核心功能。...如果您想使用平台视图在iOSAndroid上托管自己本机UI组件,则可以了解如何在使用平台视图在Flutter应用托管本机Android和iOS视图上。...有关详细信息,强烈推荐有关Flutter声明式导航和路由文章。 另外,您对Navigator 1.0现有使用将像今天一样继续使用,并且不会在短期内被删除。如果您喜欢该模型,则可以继续使用它。...Studio Code输出链接 Flutter开发人员所面临常规活动是从终端堆栈跟踪错误输出中进行。...我们希望此版本可以帮助您为iOS和Android开发出色应用程序,我们迫不及待想看到您商店中有什么!感谢您支持-我们为您打造Flutter

7.4K20

Flutter什么使用Dart?

这是开发人员在题为“ 为什么本机应用程序开发人员认真看待Flutter文章。...在 Flutter 里,界面布局直接通过 Dart 编码来定义,不需要使用 XML 模板语言,也不需要使用可视化设计器之类工具。 预感是,听到这个消息后,你们一些人甚至会畏缩一点。...结果,在 Flutter 中进行布局要比在 Android/XCode 快得多。一旦你掌握了它(花了几个星期),由于很少发生上下文切换,因此会节省大量开销。...另一篇关于Flutter和Dart文章,标题为“ 为什么Flutter?而不是框架X?甚至更好,为什么要全力以赴。...” Flutter使用由Google创建Dart语言,说实话,不喜欢C#JAVA之类强类型语言,但我不知道Dart编写代码方式为什么看起来有所不同。写起来很舒服。

1.4K20

Flutter | 由Builder Widget而引发思考

作为一个Flutter新手,肯定会好奇,为啥null了呢,然后google一搜,就有人建议你使用 Builder,然后我们就会将代码改为以下方式: image.png 欧耶,好啦,就这么简单啊。...(引入该类型新小部件时,窗口小部件消失),将重新构建此构建上下文,以便它可以从该窗口小部件获取新值 final _FormScope?...但对自己而言,却带来了更多疑问: context 到底是干什么? build(context) 方法 BuildContext 是哪里来?...没懂,没错,其实也没明白 我们通过源码分析一下,Flutter源码相比Android原生,是非常简单好理解。 我们以常使用 StatelessWidget 为例来看看。...build方法来间接访问element对象(通过各种xx.of),而我们开发 widget组合使用,比如各种Widget搭配,由它们形成了我们配置树,而这个widget最终会一一对一个

50410

移动跨平台框架Flutter详细介绍和学习线路分享

Flutter开发语言Dart 为什么使用Dart语言 学习Flutter就不得不提到Dart,那Flutter和Dart有什么关系?...确实有关系,早期Flutter团队评估了十多种语言,并选择了Dart,因为它符合他们构建用户界面的方式,读者可以去八卦下为什么使用Dart语言推文。...因此,动态语言通常被解释JIT编译。 在开发过程AOT编译,开发周期(从更改程序到能够执行程序以查看更改结果时间)总是很慢。...布局 Dart另一个好处是,Flutter不会从程序拆分出额外模板布局语言,如JSXXML,也不需要单独可视布局工具。...原生开发人员可以在下面的文章中找到答案:“为什么原生应用程序开发人员认真看待Flutter” 学习路线 学习任何一门技术,最主要渠道就是官方资料,由于是Google产品,因此从一开始就受到很多开发者喜爱

2K20

vue国际化vue-i18n简单使用

之前一直想做个国际化、在线换肤和拖拉拽生成网页demo,或者说实现思路。拖拉拽生成网页一直没什么思路,今天先实现国际化。...$mount('#app') 内部会把i18n通过mixin合并到vue实例上,新加属性i18n、t等属性方法。 直接使用: {{$t('lang.login')}} 切换语言: this....当然,vue-i18n还提供了其他属性和方法,只是官网打不开,没办法多说一些。 element-ui也是通过切换语言文件实现。...只是更复杂,可以去稍微看一下内容,是真的可怕,那么多内容都要翻译和一一对: ? 另外就是如果要切换过程页面整体布局不会很明显,对每一个内容高度宽度要稍微注意一下,毕竟不同语言宽高比例不一样。...至于vue官网看见是直接地址都变了,也不知道是不是采用这种思路,直接替换文本内容。 (完)

87910

【Vuejs】1082- Vue 项目前端多语言方案

图片中文案内容 4、页面title 5、第三方组件文案(比如,项目中用到了Vux组件) 6、后端接口中需要展示到前端数据内容 7、后端接口返回错误提示 二、基本思路 1、首先,需要确定以什么方式来获取到当前应该展示何种语言...当然,你可以根据你需求来做一些简化。 2、其次,采用什么工具来解决语言转换和打包问题? (1)i18n相关工具选择——由谁来提供多语言转换函数(通常是$t)?...比如,在自定义组件可以这么写: confirm: zh-CN: 确认 en: confirm 打包时,vux-loader会将标签多语言配置信息导出至我们所配置一个...在axiosinterceptor给请求统一添加了header头:Accept-Language, 并把这个值内容设置成前端所获得使用语言(如,zh-CN en 等)。...也就是说,你在各个自定义组件中使用标签语言包信息都会被vux-loader集中抽取到这个文件

1.5K30

Vue 项目前端多语言方案

图片中文案内容 4、页面title 5、第三方组件文案(比如,项目中用到了Vux组件) 6、后端接口中需要展示到前端数据内容 7、后端接口返回错误提示 二、基本思路 1、首先,需要确定以什么方式来获取到当前应该展示何种语言...当然,你可以根据你需求来做一些简化。 2、其次,采用什么工具来解决语言转换和打包问题? (1)i18n相关工具选择——由谁来提供多语言转换函数(通常是$t)?...比如,在自定义组件可以这么写: confirm: zh-CN: 确认 en: confirm 打包时,vux-loader会将标签多语言配置信息导出至我们所配置一个...在axiosinterceptor给请求统一添加了header头:Accept-Language, 并把这个值内容设置成前端所获得使用语言(如,zh-CN en 等)。...也就是说,你在各个自定义组件中使用标签语言包信息都会被vux-loader集中抽取到这个文件

2K20

Vue.js 项目前端多语言方案

图片中文案内容 4、页面title 5、第三方组件文案(比如,项目中用到了Vux组件) 6、后端接口中需要展示到前端数据内容 7、后端接口返回错误提示 二、基本思路 1、首先,需要确定以什么方式来获取到当前应该展示何种语言...当然,你可以根据你需求来做一些简化。 2、其次,采用什么工具来解决语言转换和打包问题? (1)i18n相关工具选择——由谁来提供多语言转换函数(通常是$t)?...比如,在自定义组件可以这么写: confirm:   zh-CN: 确认   en: confirm 打包时,vux-loader会将标签多语言配置信息导出至我们所配置一个...在axiosinterceptor给请求统一添加了header头:Accept-Language, 并把这个值内容设置成前端所获得使用语言(如,zh-CN en 等)。...也就是说,你在各个自定义组件中使用标签语言包信息都会被vux-loader集中抽取到这个文件

1.9K00

Flutter 组件 | Builder 构造器与 BuildContext 认知

Flutter 使用,你所见到每个 BuildContext 对象,它本质都是 Element 对象。...所以,你认为 Flutter 树,和真实 Flutter 树是完全不同。...只想说,别拿你脑子跟电脑比,就算是几千个元素节点,在树状结构下,形成树找在树中出某个元素来也只是探囊取物。...也就说明使用 Builder 回调上下文,是可以使用 MediaQuery.of(ctx) 获取到媒体信息。 ? ? 到这里,你应该对上下文层级有了一定认识。...---- 在 IconTheme merge 方法里也使用了 Builder 组件,这是为了在没有上下文时候拿到上下文,这样就不需要在 merge 方法传入上下文了,这也是上下文无中生有的使用方式

1.9K20

【JS】1675- 4 个容易被忽略 JavaScript API

所以,blur和focus只告诉我们页面是否被激活,但不告诉我们页面的内容是否被隐藏显示。 什么时候使用 一般来说,我们想要使用Page Visibility API,是希望用来停止不必要程序。...有了这个API,你可以分享文本、链接和文件,而不需要创建你自己分享机制使用第三方分享机制。 什么时候使用 用途已经不言自明。...兼容性 基本不支持[8] Broadcast Channel API 这是什么 想谈论另一个API是Broadcast Channel API 。它允许浏览器上下文互相发送和接收基本数据。...浏览器上下文是指标签页、窗口、iframe等元素,任何可以显示页面的地方。出于安全考量,浏览器上下文之间通信是不被允许,除非它们是同源使用Broadcast Channel API。...在例子navigator.language值是"en",所以我日期被格式化为MM/DD/YY。

20920
领券