代码拉取完成,页面将自动刷新
#!/usr/bin/env python
# Copyright 2021 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Generates the list of locales with strings for the current platform.
This program generates a file which solely contains a list of locales that will
be built for this platform in this build of Chrome (equivalently the locales
that we build strings for) passed in as arguments to this script. This allows us
to determine what locales we have strings for at runtime without checking the
locale data paks on the filesystem with a blocking I/O call.
This program can be run with no arguments to run its own unit tests. The first
argument is the output filename, and all later arguments are interpreted as
locales.
This script is run by the //ui/base:locales_list_gen build rule, passing in the
gn variable `locales` defined in build/config/locales.gni as arguments.
The generated file is then included in ui/base/l10n/l10n_util.h.
"""
from __future__ import print_function
import sys
def gen_locale(locale): # type: (str) -> str
"""Returns the generated code for a given locale in the list."""
# We assume that all locale codes have only letters, numbers and hyphens.
assert locale.replace('-', '').isalnum(), locale
# clang-format enforces a four-space indent for initializer lists.
return ' PLATFORM_LOCALE({locale})'.format(locale=locale)
def gen_locales(locales): # type: (list) -> str
"""Returns the generated code for the locale list.
The list is guaranteed to be in sorted order without duplicates.
>>> locales = ['en-GB', 'en', 'de', 'en']
>>> generated = gen_locales(locales)
>>> locales.pop() # remove the duplicate
'en'
>>> locales.sort()
>>> index_in_generated = lambda locale: generated.index(gen_locale(locale))
>>> all(
... index_in_generated(prev_locale) < index_in_generated(next_locale)
... for prev_locale, next_locale in zip(locales, locales[1:]))
True
"""
return '\n'.join(gen_locale(locale) for locale in sorted(set(locales)))
def main(): # type: () -> None
import doctest
doctest.testmod()
if len(sys.argv) < 2:
print('{}: only ran tests'.format(sys.argv[0]))
return
output = gen_locales(sys.argv[2:])
with open(sys.argv[1], 'w') as f:
f.write(output)
if __name__ == '__main__':
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。