繁体   English   中英

为iPhone本地化图像的最佳方法是什么?

[英]What are the best approaches to localizing images with text for the iPhone?

我打算本地化我的iPhone应用程序,包括9种其他语言,除了英语。

我担心的是我有很多带有文本的.png文件,其各自的@2x图像用于视网膜显示。

现在我的应用程序有5.6Mb,而且我担心它会比其他9种语言中包含.png@2x文件后的重量要大得多。

根据你的经验,这是真的吗? 在将其本地化为其他9种语言后,我最终会得到更大的应用程序吗?

答案取决于您实施应用程序的方式。

如果您的图像包含文本,则必须为每种语言创建这些图像的新版本(正常和@ 2x分辨率)。 这不仅占用了额外的空间,而且还使本地化非常艰巨,因为您将花费数小时将Photoshop翻译成图像并管理大量文件。

可本地化的应用程序通常不在其图像中包含文本,而是以编程方式在背景图像上呈现文本(来自可本地化的资源)。 您可以使用XiBs和覆盖UILabels在图像或其他UI元素。 如果您这样做,那么您将不必担心添加语言对大小的影响,并且本地化将是轻而易举的。

我怀疑这将是一个问题。 假设当前应用程序的5MB专用于您的PNG文件,那么向其添加9x应该使其大小为50MB。 这不是一个大型应用程序。

您可以考虑的其他因素是并非所有图像都需要进行本地化,因此即使估计50MB也可能很高。

如果您正在编写应用程序并认为它会增加到更大的大小,那么您可能需要考虑一种不同的策略来显示您的文本。 只能本地化徽标文件和其他一些“奇特”的图像文件。 所有其他文本实现都应该通过文本布局和格式化引擎来实现。

如果您绝对必须使用文本图像格式,请考虑在应用程序执行时渲染图像。

另一种实现方法(我用于其他目的)是生成所有图形并在没有文本的情况下存储它们。 接下来,为您的文本生成单独的图像文件,使这些图像的背景透明。

当您需要加载特定语言图像时,首先加载图形图像,然后将其与文本图像重叠。

这将减少应用程序的总体大小,因为最大的PNG文件应该是那些颜色最多的文件,您只需要在应用程序中使用一个实例。 通过将文本抽象为另一个图像,您可以显着缩小文本图像的大小。

关于使用此方法的警告。 如果以高频率发生,则在iOS处理器上分层高度透明或不透明的图像,覆盖图像,覆盖图像可能会非常密集。 将一个图像放在另一个图像上应该不是问题,但是,在显示器的各个部分中将多个图像叠加在一起可能会使应用程序陷入困境。 但是,如果您只是在寻找本地化文本的解决方案,我认为这个问题相当可行。

我假设您的大部分图像都将用于按钮? 不要使用图像创建按钮,而是考虑为按钮使用可伸缩的背景图像,然后在其中添加文本。 UIKit提供了许多方法,可以方便地用于计算和定位按钮内的文本。

如果你这样做,它更容易维护,而不是为你拥有的每个按钮提供图像。 此外,它还为您提供了扩展应用程序的空间,而不会超过50MB的大小限制。 让我们说你以某种方式设法适应你的应用程序中的所有东西,只有不到50MB,如果将来你添加更多功能或许多用户请求某种语言怎么办?

如果我的假设错了,我很抱歉。 请告诉我,以便我可以修改我的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM