chromium 的资源管理 的grit
grd 文件 : 负责存放 chromium 字面用到的英文字符串,以及图片路径 和html 路径
里面包含xml 格式的 标签 IDS_AUTOFILL_CC_AMEX,IDR_ 等
里面的outputfile 标签定义了 经过python 处理这些内容之后的输出文件
<grit base_dir="." latest_public_release="0" current_release="1"
source_lang_id="en" enc_check="möl">
<outputs>
<output filename="grit/generated_resources.h" type="rc_header">
<emit emit_type='prepend'></emit>
</output>
<file path="resources/generated_resources_zh-CN.xtb" lang="zh-CN" />
先说说chromium 进行的字符串的国际化吧
E:\google\home\src_tarball\tarball\chromium\src\chrome\app\generated_resources.grd 这个grd 文件里面有三个标签 一个是
<outputs></outputs>
<translations> </translations>// xtb 文件的路径
<message></message>
其中message 里面是字符串,
<message name="IDS_BACKGROUND_APP_INSTALLED_BALLOON_TITLE" desc="The title of the balloon that is displayed when a background app is installed">
New background app added
</message>
E:\google\home\src_tarball\tarball\chromium\src\tools\grit\grit\extern\FP.PY
Usage:
from extern import FP
print 'Fingerprint is %ld' % FP.FingerPrint('Hello world!')
"""
使用这个方法 传入message 里面的字符串会生成一个md5 的id ,这个id 对应xtb 文件里面的translation 标签里面对应的id
grit/generated_resources.h 这个文件里面 对应IDS_BACKGROUND_APP_INSTALLED_BALLOON_TITLE 和一int值
代码里面使用IDS_BACKGROUND_APP_INSTALLED_BALLOON_TITLE 获得message ,通过message 获得翻译后的结果
里面的图片是放在 一个grd 文件里面
E:\google\home\src_tarball\tarball\chromium\src\chrome\app\theme\theme_resources.grd
<grit latest_public_release="0" current_release="1">
<outputs>
<output filename="grit/theme_resources.h" type="rc_header" context="default_100_percent">//context 图片要放到的文件夹
<emit emit_type='prepend'></emit>
</output>
<output filename="grit/theme_resources_map.cc" type="resource_map_source" context="default_100_percent" />
<output filename="grit/theme_resources_map.h" type="resource_map_header" context="default_100_percent" />
<output filename="theme_resources_100_percent.pak" type="data_package" context="default_100_percent" />// 文件都会被压缩到pak 包里面去
<output filename="theme_resources_200_percent.pak" type="data_package" context="default_200_percent" />
<output filename="theme_resources_touch_100_percent.pak" type="data_package" context="touch_100_percent" />
<output filename="theme_resources_touch_140_percent.pak" type="data_package" context="touch_140_percent" />
<output filename="theme_resources_touch_180_percent.pak" type="data_package" context="touch_180_percent" />
</outputs>
给图片定义一个idr//
《structure type="chrome_scaled_image" name="IDR_ACCESSED_COOKIES" file="accessed_cookies.png" />
<structure type="chrome_scaled_image" name="IDR_ACTION_BOX_BUTTON" file="action_box_button.png" />
"grit/theme_resources.h"
grit/theme_resources_map.cc 定义idr 对应的int 值来给代码使用