zoukankan      html  css  js  c++  java
  • cocos2d-x-3.1 国际化strings.xml解决乱码问题 (coco2d-x 学习笔记四)

    今天写程序的时候发现输出文字乱码,尽管在实际开发中把字符串写在代码里是不好的做法。可是有时候也是为了方便,遇到此问题第一时间在脑子里面联想到android下的strings.xml来做国际化。本文就仅仅针对解析xml来实现cocos2d-x的国际化解决乱码问题。

    寻找解决方法的时候在cocos2d-x的cpp-tests文件里发现strings.xml,因此在事例源代码中发现此方法。

    为了方便,我直接将C:cocos2d-x-3.1 estscpp-testsResourcesfonts的strings.xml文件复制到自己的fonts目录下。

    strings.xml内容例如以下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>chinese1</key>
    	<string>美好的一天</string>
    	<key>japanese</key>
    	<string>良い一日を</string>
    	<key>russian</key>
    	<string>Хорошего дня</string>
    	<key>spanish</key>
    	<string>Buen día</string>
    </dict>
    </plist>
    

    xml解析代码实现例如以下:

    auto strings = FileUtils::getInstance()->getValueMapFromFile("fonts/strings.xml");
    	std::string chinese = strings["chinese1"].asString();
    	std::string russian = strings["russian"].asString();
    	std::string spanish = strings["spanish"].asString();
    	std::string japanese = strings["japanese"].asString();

    查看源代码的时候也发现此方式用的是sax解析,所以读者能够不用操心效率及内存问题。



  • 相关阅读:
    动态图片 Movie android-gif-drawable GifView
    X5SDK 腾讯浏览器内核
    AS 自动生成选择器 SelectorChapek
    Genymotion 模拟器 VirtualBox
    360加固保 安全防护 多渠道打包
    Thread 如何安全结束一个线程 MD
    面试题 HashMap 数据结构 实现原理
    nGrinder3.4 性能测试框架安装
    java内存泄漏的定位与分析
    JVM总结-内存监视手段及各区域内存溢出解决
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6821495.html
Copyright © 2011-2022 走看看