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

干货 | 国际化探索之路-Trip.com如何走进阿拉伯市场

而阿拉伯文书写和阅读顺序从右往左,文本右对齐,标点符号在文字的最左侧。 ? 图1 LTR与RTL语言对比 适配阿拉伯语言本质上是对RTL的适配,也就是对从右到左的阅读方式的支持。...在设计阿拉伯站的页面时,我们发现LTR与RTL的设计细节差异很大,我们将阿拉伯本地化的设计归为两个要点: 第一,如何做符合阿拉伯用户阅读习惯的设计; 第二,如何做契合当地习俗的情感化设计。...四、技术适配方案 4.1 Android 4.1.1 QuickStart 系统历史:Android从4.1版本开始提供文本双向展示的支持,但是当RTL和LTR语言混排时,还是无法达到我们的预期...测试调试:在Android 4.4(API 级别 19)或更高版本的设备上,在开发者选项中允许启用强制使用从右到左的布局方向。这样我们可以不用调整手机系统语言也可以看到RTL的效果。...为此,Native 端需要监听Locale 的变化,并新旧Locale isRTL不同时,Reload所有正在使用的React Context, iOS: [RCTBridge reloadWithReason

4.4K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android支持RTL(从右向左)语言

    而汉语,日语以及朝鲜语中存在Top-to-bottom, right-to-left从上到下,从右向左的情况. 但是这些语言大多数使用从左向右的情况. 常见的RTL语言有阿拉伯语,希伯来语等....LTR语言和RTL语言刚好相反,即我们常见的Left-to-right,Top-to-bottom,从左向右,从上到下,朝右继续.这种语言很常见, 代表语言为英语等....Android对RTL支持情况 Android 4.1 Jelly Bean,引入了有限的在TextView和EditText支持RTL和LTR混合的双向文本的支持....如何支持RTL 快速应用RTL镜像布局 在manifest中的Application元素加入android:supportsRtl=“true”这个属性....getLayoutDirectionFromLocale() 获取指定Locale的方向 创建单独的资源文件夹,以’ldrtl’(layout direction right-to-left)为后缀.

    3.2K20

    用MyLayout实现布局性能的提升以及对阿拉伯国家的支持

    在布局时则因为都是使用了AutoLayout所以是相等的,大概花费0.255ms左右。...也就是界面中的元素总是按从右往左的方向进行排列布局,大部分国家的书写以及排列习惯都是从左往右,是LTR方向布局,而对于一些阿拉伯国家,文字的书写以及展示的顺序都是从右往左方向的,下面的两张图片展示了阿拉伯国家的界面展示效果...为了实现对RTL的支持我们在水平方向提出了leading和trailing的概念,中文就是理解为头部和尾部。...当您是LTR方向布局时leading就是代表的左边而trailing则是代表的右边;而当您是RTL方向布局时leading就代表的是右边而trailing则代表的是左边。...通过这个新定义的概念您就不需要担心在进行国际化布局时指定方向了。下面是MyLayout中对RTL支持的一些效果。 ?

    69460

    聊聊 React 组件库的技术选型与设计

    icon 适配 在 RTL 下,部分 icon 需要镜像。前面我们已经介绍,icon 的最佳方式是使用 svgr 将 svg 转换为 React Component。...这样,我们可以在转换时为需要 RTL 翻转的 icon 增加一个 class,例如 flip-rtl,然后组件库提供以下 CSS 声明供业务使用: [dir="rtl"] .flip-rtl { transform...svg 源文件、 svgo 处理、 使用 svgr 转换成 React Component 的脚本,并且在转换过程中根据命名自动判断是否需要加上 flip-rtl 这个 class。...这样,在组件库和业务开发过程中,研发都不需要关心 icon 的镜像问题,减少沟通和验收成本。 手势适配 一些组件,如进度条组件,在传统 LTR 下是从左向右滑动,但是在 RTL 下则是从右向左滑动。...全局化配置 对于 direction(LTR/RTL)、 prefixCls(类名前缀)等一些全局配置,我们可以使用 React 的 Context 来注入,例如应用的根节点外面包裹一个 ConfigProvider

    2K10

    【Web前端】CSS文本处理方向

    处理不同方向的文本是一个重要且复杂的任务,尤其是在多语言支持和跨文化网站设计中尤为重要。CSS(层叠样式表)为我们提供了强大的工具来处理不同的书写模式和布局方向。...接下来我们来继续探讨关于 CSS 中的书写模式、块级布局和内联布局、方向、逻辑属性和逻辑值,以及如何使用这些工具来有效地管理文本的显示。...1、水平书写模式 在水平书写模式下,文本通常按照从左到右(LTR)或从右到左(RTL)的方向排列。以下是如何在 CSS 中设置水平书写模式的示例: 六、应该使用物理属性还是逻辑属性? 在现代 CSS 中,使用逻辑属性而不是物理属性通常是推荐的做法。...2、何时使用物理属性? 在某些情况下,可能仍需要使用物理属性,当你的设计需求明确指定某一方向时,或者当在处理遗留系统或旧版浏览器时。

    4300

    Android 面试题之TextView 的textDirection属性和右对齐问题

    这意味着 TextView 将根据文本内容的第一个强方向性字符(例如一个字母或一个数字)来决定文本方向。如果第一个强方向性字符属于一种从左到右(LTR)语言,那么文本的方向将是从左到右。...如果第一个强方向性字符属于一种从右到左(RTL)语言,那么文本的方向将是从右到左。 layoutDirection 的默认值: 布局方向通常依赖于应用的区域设置(locale)和设备的语言设置。...如果区域设置或设备语言是RTL语言(比如阿拉伯语或希伯来语),那么布局方向会自动调整为RTL,否则为LTR。...开启右语言 启用RTL支持: 确保应用全局支持RTL方向,可以在AndroidManifest.xml文件中的 标签中添加: <application ......(View.TEXT_DIRECTION_LTR); } 码字不易,求转发,求点在看,求关注,感谢!

    42310

    超长溢出头部省略打点,坑这么大,技巧这么多?

    rtl 表示从右到左 (类似希伯来语或阿拉伯语), ltr 表示从左到右。 另外两个与排版相关的属性还有: writing-mode:定义了文本水平或垂直排布以及在块级元素中文本的行进方向。...这里,bidi-override 和 direction 在 中的组合,实现了更细粒度的文本方向处理。...在前端排版中,特别是处理多语言文本时,由于不同语言书写时有不同的书写方向,因此可以使用 LRM 来指定文本的书写方向,以确保文本能够正确地显示。...在多语言文本中,由于不同语言之间的书写方向和文本组织方式可能有所不同,如果直接拼合在一起显示,容易导致排版混乱,甚至出现不合法的语言混排现象。...在使用该标签时,可以使用 dir 属性来指定文本的书写方向,可以是从左到右(dir="ltr")或者从右到左(dir="rtl")等。

    1.1K20

    CSS 世界中的方位与顺序

    在 CSS 中,我们经常会与各种方向方位打交道。...direction: ltr:默认属性。可设置文本和其他元素的默认方向是从左到右。 direction: rtl:可设置文本和其他元素的默认方向是从右到左。 有点绕,所以上 Demo 最为直观。...当然,现在这个功能完全可以用 transform 替代,但是在之前需要兼容 IE 系列的时候,不失为一个有意思的小技巧。 CSS 中的逻辑属性 下面一个章节,我们聊聊 CSS 中的逻辑位置。...比如说,在从左到右(LTR)中,start 是 left,但在从右到左(RTL),它是 right。 逻辑属性下的盒子模型 考虑到不同排版带来的逻辑问题,整个盒子模型也可以随之进行改变。...好在 CSS 也一直在紧跟时代,推陈出新,当你的排版布局需要考虑不同的 writing-mode 的时,你需要开始考虑使用逻辑属性替代物理属性! 最后 好了,本文到此结束,希望对你有帮助 ?

    1.3K40

    【Flutter 专题】32 Flutter 32: 图解 TextPainter 与 TextSpan 小尝试

    大家在学习 Flutter 时一定会用过 Text,而对于一些复杂文本的处理可能会选择 RichText,再进一步,使用 RichText 就一定要用 TextSpan ,和尚本以为可以做为一个小知识点进行简单学习...RichText 日常用法 和尚理解为 RichText 是进阶版的 Text,如下直接看实例: TextDirection 用来控制文字位置,居左或居右边;当与 TextAlign 属性共存时...使用 TextPainter 时需要继承 CustomPainter,并实现 paint 和 shouldRepaint 方法,主要是在 paint 中进行绘制 TextPainter。...minWidth 最小宽度时,以 minWidth 宽度为限制居左/居右/居中等;而当文字长度大于设置的 minWidth 最小宽度时,以 maxWidth 最大宽度为限制,包括换行等; TextPainter...style 的 height 属性,在 TextSpan 中此值设置行高,是以文字基准线为最小距离; TextPainter( text: TextSpan( text: 'TextPainter

    2K41

    React Native实践有感

    在app的迭代中把第三方库的升级维护考虑进去是很有必要的,以我所在的项目为例: 我们项目中使用的react-navigation版本非常老旧了,还停留在v2版本,而最新的react-navigation...如果app某些功能需要断网也能使用的场景,在offline调试时使用模拟器或者Android真机会比较方便一点。...可以使用如下命令,以Android为例: npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output...((TextInput as any).defaultProps || {}), allowFontScaling: false }; 强制使用LTR有些语言如阿拉伯语、希伯来语是从右往左排列的,当Android...在AndroidManifest文件中给application设置 android:supportsRtl="false" 对于一些组件仍然支持RTL样式的,需要在styles.xml中添加layoutDirection

    2.6K10

    表格边框你知多少

    与 groove冲突并且在表格 非 第一行发生冲突时,两个冲突单元格的左上角和右上角以及冲突边的上角都存在问题     c)从table2、table3、table4中可以看出,当outset 与 inset...,当outset 与 inset冲突且在表格第一行发生冲突时,两个冲突单元格的左上角和右上角以及冲突边的上角都存在问题     c)从table2、table4、table5中可以看出,当outset...)     b)table上使用direction: rtl;属性,会使单元格左右调换,并且发生冲突的单元格相对较右侧单元格的样式 备注     在tr上使用direction: rtl;属性,仅在google...若direction:ltr属则采用相对较左侧的元素样式,若direction:rtl属则采用相对较右侧的元素样式;垂直方向上:当两个单元格只存在颜色不一致的情况下,较靠近顶部的边框样式将被渲染;    ...为hidden,则边框会,溢出垂直方向上不会发生溢出情况,溢出的边框不会占用文本流的空间 兼容性问题 表格在各个浏览器下的兼容性问题     1、水平方向上:当两个单元格只存在颜色不一致的情况下,冲突边界渲染的样式与

    1.6K30

    关于flutter中的TextStyle详解

    如果字体是在包中定义的,那么它将以'packages / package_name /'为前缀(例如'packages / cool_fonts / Roboto') double fontSize 字体大小...省略时,文本将使用最接近的DefaultTextStyle的样式。如果给定样式的TextStyle.inherit属性为true(默认值),则给定样式将与最接近的DefaultTextStyle合并。...TextDirection textDirection 这个属性估计是给外国人习惯使用, 相对TextAlign中的start、end而言有用(当start使用了ltr相当于end使用了rtl,也相当于...TextAlign使用了left) 对于从左到右的文本(TextDirection.ltr),文本从左向右流动; 对于从右到左的文本(TextDirection.rtl),文本从右向左流动。...默认为true,如果为false,则文本中的字形将被定位为好像存在无限的水平空间。

    1.9K30

    关于flutter中的TextStyle详解

    如果字体是在包中定义的,那么它将以'packages / package_name /'为前缀(例如'packages / cool_fonts / Roboto') double fontSize 字体大小...省略时,文本将使用最接近的DefaultTextStyle的样式。如果给定样式的TextStyle.inherit属性为true(默认值),则给定样式将与最接近的DefaultTextStyle合并。...TextDirection textDirection 这个属性估计是给外国人习惯使用, 相对TextAlign中的start、end而言有用(当start使用了ltr相当于end使用了rtl,也相当于...TextAlign使用了left) 对于从左到右的文本(TextDirection.ltr),文本从左向右流动; 对于从右到左的文本(TextDirection.rtl),文本从右向左流动。...默认为true,如果为false,则文本中的字形将被定位为好像存在无限的水平空间。

    3.1K10

    Flex 布局相关用法

    flex-direction: row | row-reverse | column | column-reverse row(默认值):在“ltr”排版方式下从左向右排列;在“rtl”排版方式下从右向左排列...row-reverse:与row排列方向相反,在“ltr”排版方式下从右向左排列;在“rtl”排版方式下从左向右排列。...当一行上的所有伸缩项目都不能伸缩或可伸缩但是已经达到其最大长度时,这一属性才会对多余的空间进行分配。当项目溢出某一行时,这一属性也会在项目的对齐上施加一些控制。...暂去掉子项目的order属性,我们先来看看初始时 和 加了 flex-grow后(item1 设为1,item2设为2)的区别 当direction为row时,将剩余空间吃透 ? ?...当direction为column 时,将剩余空间吃透 ? ? 3.flex-shrink(适用于子项目) 根据需要用来定义伸缩项目收缩的能力。负值无效。

    1.5K10

    【Flutter 专题】115 图解自定义 View 之 Canvas (四) drawParagraph

    和尚在前两节通过 Canvas 绘制图形时涉及到部分文字绘制,之前只是简单的尝试,有很多未注意到的地方;和尚今天尝试全面的学习尝试一下;通过 Canvas 绘制文字时使用的属性效果与直接使用 TextView...5. maxLines & ellipsis maxLines 为段落最长绘制行数,一般与 ellipsis 通过使用,ellipsis 为最后绘制不完时展示的文本内容; maxLines: 4, ellipsis...6. textDirection & textAlign textDirection & textAlign 的使用是和尚觉得应当注意的地方;textDirection 为文字绘制方向,ltr 即 left-to-right...从左至右;rtl 即 right-to-left 从右至左,类似于 'ar/fa/he/ps/ur' 阿拉伯语和希伯来语等;textAlign 为文本的对齐方式; 使用 rtl 方式时,标点均会展示在左侧..., justify, start, end, } enum TextDirection { ltr, rtl } ?

    1.7K41
    领券