Showing preview only (4,743K chars total). Download the full file or copy to clipboard to get everything.
Repository: maboloshi/github-chinese
Branch: gh-pages
Commit: 1d4441e0bed9
Files: 25
Total size: 4.5 MB
Directory structure:
gitextract_bzhmgz81/
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-提交-简体中文-.md
│ │ ├── bug-提交-繁體中文-.md
│ │ └── config.yml
│ ├── copilot-instructions.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── locals(greasyfork).js_update.yaml
│ ├── main.user.js_version_update_and_sync_zh-TW.yaml
│ ├── remove_dup.yml
│ └── update_contributors_images.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_zh-TW.md
├── apt-packages.txt
├── locals(greasyfork).js
├── locals.js
├── locals_zh-TW.js
├── main(greasyfork).user.js
├── main.user.js
├── main_zh-TW.user.js
├── script/
│ ├── ci_commit_with_signature.sh
│ ├── rd.py
│ └── t2s-convert.pl
└── t2s_rules.conf
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
# change these settings to your own preference
indent_style = space
indent_size = 4
# we recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{md,markdown}]
trim_trailing_whitespace = false
[.github/workflows/*.{yaml,yml}]
indent_size = 2
================================================
FILE: .github/ISSUE_TEMPLATE/bug-提交-简体中文-.md
================================================
---
name: Bug 提交(简体中文)
about: 提交 BUG
title: ''
labels: bug
assignees: ''
---
感谢您提交议题!请补充以下内容,以便我们能更好地协助您:
提交议题前确保您已阅读[常见问题(FAQ)](https://github.com/maboloshi/github-chinese/issues/493)
### 问题/建议的具体描述
### 操作步骤或重现方式(如有带上测试链接)
### 预期行为与实际表现
### 相关截图或附件(如有)
### 您使用的浏览器类型、脚本管理器及插件版本(不再接受 1.9.2 版本反馈)
- 浏览器类型及版本:
- 脚本管理器及版本:
- GitHub 中文化插件版本:
================================================
FILE: .github/ISSUE_TEMPLATE/bug-提交-繁體中文-.md
================================================
---
name: Bug 提交(繁體中文)
about: 提交 BUG
title: ''
labels: bug
assignees: ''
---
感謝您提交議題!請補充以下內容,以便我們能更好地協助您:
提交議題前確保您已閲讀[常見問題(FAQ)](https://github.com/maboloshi/github-chinese/issues/493)
### 問題/建議的具體描述
### 操作步驟或重現方式(如有帶上測試連結)
### 預期行為與實際表現
### 相關截圖或附件(如有)
### 您使用的瀏覽器類型、腳本管理器及插件版本(不再接受 1.9.2 版本反饋)
- 瀏覽器類型及版本:
- 腳本管理器及版本:
- GitHub 中文化插件版本:
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
================================================
FILE: .github/copilot-instructions.md
================================================
When performing a code review, respond in Chinese.
================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
================================================
FILE: .github/workflows/locals(greasyfork).js_update.yaml
================================================
name: main(greasyfork).user.js and locals(greasyfork).js update
on:
schedule:
# 每周四的UTC时间16点(北京时间周五凌晨0点)
- cron: "0 16 * * 4"
workflow_dispatch:
permissions:
contents: write
jobs:
update_version:
runs-on: ubuntu-latest
environment: github-pages
steps:
- name: Generate a token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sync update locals(greasyfork).js
run: |
# 获得最近以`main.user.js Update to version`开头的提交的引用
ref=$(git log --grep="^main.user.js Update to" -n 1 --pretty=format:"%H")
# 获取该提交中`locals.js`的文件时间, 并设置环境变量
locals_js_time=$(git log -1 --format=%at $ref -- locals.js)
echo "locals_js_time=$locals_js_time" >> $GITHUB_ENV
# 从该提交中提取文件`locals.js`并覆写到本地文件`locals(greasyfork).js`
git show $ref:locals.js > "locals(greasyfork).js"
git diff --quiet --exit-code "locals(greasyfork).js" || \
echo "LOCALS_JS_CHANGED=true" >> $GITHUB_ENV
- name: Update version in main(greasyfork).user.js
if: |
${{ env.LOCALS_JS_CHANGED == 'true' }}
run: |
# 使用`locals.js`的文件日期为词库版本号
locals_js_date=$(TZ='Asia/Shanghai' date -d "@${{ env.locals_js_time }}" +'%Y-%m-%d')
sed -i -E "
s/(@version\s*([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
s/(@require.+435207-github-.+.js\?v([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
" "main(greasyfork).user.js"
git diff --quiet --exit-code "main(greasyfork).user.js" || \
echo "MAIN_USER_JS_CHANGED=true" >> $GITHUB_ENV
- name: Commit and push locals(greasyfork).js and main(greasyfork).user.js
if: ${{ env.LOCALS_JS_CHANGED == 'true' &&
env.MAIN_USER_JS_CHANGED == 'true' }}
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
APP_SLUG: ${{ steps.generate_token.outputs.app-slug }}
run: |
version=$(sed -n -E 's/^\/\/ @version\s+(.+)/\1/p' "main(greasyfork).user.js")
bash script/ci_commit_with_signature.sh \
-R "${{ github.repository }}" \
-B "${{ github.ref_name }}" \
-P "${{ github.sha }}" \
-F "locals(greasyfork).js, main(greasyfork).user.js" \
-h "main(greasyfork).user.js Sync Thesaurus to $version"
================================================
FILE: .github/workflows/main.user.js_version_update_and_sync_zh-TW.yaml
================================================
name: main.user.js version update & sync zh-TW
on:
schedule:
# 每周日的UTC时间16点(北京时间周一凌晨0点)
- cron: "0 16 * * 0"
workflow_dispatch:
permissions:
contents: write
jobs:
update_main:
runs-on: ubuntu-latest
environment: github-pages
outputs:
locals_js_date: ${{ steps.version_update.outputs.locals_js_date }}
oid: ${{ steps.api_commit.outputs.oid }}
steps:
- name: Generate a token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Test if locals.js has changed since the last release
id: detect_locals_js_changes
run: |
# 最近提交是否存在tag
if [ ! "$(git tag --contains ${{ github.sha }})" ]; then
# 获得最近以`main.user.js Update to`开头的提交的sha和时间戳
release_commit_sha=$(git log --grep="^main.user.js Update to" -n 1 --pretty=format:"%H")
release_commit_timestamp=$(git show -s --format=%ct $release_commit_sha)
# 最近的tag对应提交的sha和时间戳
latest_tag_commit_sha=$(git rev-list --tags --max-count=1)
latest_tag_commit_timestamp=$(git show -s --format=%ct $latest_tag_commit_sha)
if [ $release_commit_timestamp -gt $latest_tag_commit_timestamp ]; then
ref=$release_commit_sha
else
ref=$latest_tag_commit_sha
fi
# 如果 locals.js 变化,设置环境变量
git diff --quiet --exit-code $ref locals.js || \
echo "LOCALS_JS_CHANGED=true" >> $GITHUB_ENV
fi
# 如果 locals.js 没有变化,直接跳过后续步骤
- name: Exit if no changes in locals.js
if: env.LOCALS_JS_CHANGED != 'true'
run: echo "No changes in locals.js, exiting..."
- name: Update version in main.user.js
id: version_update
if: env.LOCALS_JS_CHANGED == 'true'
run: |
# 获取最后一次提交中`locals.js`的文件时间
locals_js_time=$(git log -1 --format=%at -- locals.js)
# 使用`locals.js`的文件日期为词库版本号
locals_js_date=$(TZ='Asia/Shanghai' date -d "@$locals_js_time" +'%Y-%m-%d')
echo "locals_js_date=$locals_js_date" >> $GITHUB_OUTPUT
# 更新 main.user.js
sed -i -E "
s/(@version\s*([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
s/(@require.+locals\.js\?v([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
" main.user.js
# 如果 main.user.js 变化,设置环境变量
git diff --quiet --exit-code main.user.js || \
echo "MAIN_USER_JS_CHANGED=true" >> $GITHUB_ENV
- name: Commit and push main.user.js
id: api_commit
if: env.LOCALS_JS_CHANGED == 'true' && env.MAIN_USER_JS_CHANGED == 'true'
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
APP_SLUG: ${{ steps.generate_token.outputs.app-slug }}
run: |
version=$(sed -n -E 's/^\/\/ @version\s+(.+)/\1/p' main.user.js)
oid=$(bash script/ci_commit_with_signature.sh \
-R "${{ github.repository }}" \
-B "${{ github.ref_name }}" \
-P "${{ github.sha }}" \
-F "main.user.js" \
-h "main.user.js Update to $version" | tee >(cat >&2) | grep -oP '✅ 请求成功,SHA: \K[a-f0-9]{40}')
# 验证SHA格式
if [[ "$oid" =~ ^[a-f0-9]{40}$ ]]; then
echo "oid=$oid" >> $GITHUB_OUTPUT
fi
sync_zh_tw:
runs-on: ubuntu-latest
if: success() && needs.update_main.outputs.oid
needs: update_main
environment: github-pages
steps:
- name: Checkout files
uses: actions/checkout@v4
with:
ref: ${{ needs.update_main.outputs.oid }}
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Cache apt packages
uses: actions/cache@v4
with:
path: |
/var/cache/apt/archives/*.deb
!/var/cache/apt/archives/partial
!/var/cache/apt/archives/lock
key: apt-${{ runner.os }}-${{ hashFiles('**/apt-packages.txt') }}
restore-keys: |
apt-${{ runner.os }}-
- name: Install OpenCC
run: |
sudo apt-get update
sudo apt-get install -y opencc
- name: Sync locals.js -> locals_zh-TW.js
run: |
opencc -i locals.js -o locals_zh-TW.js -c s2tw.json
perl ./script/t2s-convert.pl -v locals_zh-TW.js
- name: Update version in main_zh-TW.user.js
run: |
# 同步版本号
locals_js_date="${{ needs.update_main.outputs.locals_js_date }}"
sed -i -E "
s/(@version\s*([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
s/(@require.+locals_zh-TW.js\?v([0-9]+\.){2}[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\1-$locals_js_date/
" main_zh-TW.user.js
- name: Commit and push main_zh-TW.user.js, locals_zh-TW.js
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
APP_SLUG: ${{ steps.generate_token.outputs.app-slug }}
run: |
version=$(sed -n -E 's/^\/\/ @version\s+(.+)/\1/p' main_zh-TW.user.js)
bash script/ci_commit_with_signature.sh \
-R "${{ github.repository }}" \
-B "${{ github.ref_name }}" \
-P "${{ needs.update_main.outputs.oid }}" \
-F "main_zh-TW.user.js, locals_zh-TW.js" \
-h "main_zh-TW.user.js Sync Thesaurus to $version"
================================================
FILE: .github/workflows/remove_dup.yml
================================================
name: 词条去重
on:
workflow_dispatch:
jobs:
clean:
name: 词条去重
runs-on: ubuntu-latest
steps:
- name: 拉取仓库
uses: actions/checkout@v4
- name: 去重
run: |
python script/rd.py
- name: 提交
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "词条去重"
git push
================================================
FILE: .github/workflows/update_contributors_images.yml
================================================
name: Update contributors images in README.md
on:
workflow_dispatch:
permissions:
contents: write
jobs:
build-deploy:
runs-on: ubuntu-latest
environment: github-pages
steps:
- name: Generate a token
id: generate_token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout repository
uses: actions/checkout@v4
- name: Generate Contributors Images
uses: jaywcjlove/github-action-contributors@v1.3.5
id: contributors
with:
filter-author: (action-assistant\[bot\]|renovate\[bot\]|renovate-bot|@github-actions-bot|dependabot\[bot\]|ImgBotApp|imgbot\[bot\])
avatarSize: 42
- name: Modify README.md
run: |
escapedHtmlList=$(echo -e '${{steps.contributors.outputs.htmlList}}' | sed ':a;N;$!ba;s/\n/\\n/g;s/\\n$//')
openDelimiter='<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-->'
closeDelimiter='<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-END-->'
sed -i "/$openDelimiter/,/$closeDelimiter/c\\$openDelimiter$escapedHtmlList$closeDelimiter" README.md
git diff --quiet --exit-code README.md || echo "CHANGES_DETECTED=true" >> $GITHUB_ENV
- name: Commit and push README.md
if: ${{ env.CHANGES_DETECTED == 'true' }}
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
APP_SLUG: ${{ steps.generate_token.outputs.app-slug }}
run: |
bash script/ci_commit_with_signature.sh \
-R "${{ github.repository }}" \
-B "${{ github.ref_name }}" \
-P "${{ github.sha }}" \
-F "README.md" \
-h "修改文档: 更新\`贡献者列表\`"
================================================
FILE: .gitignore
================================================
!.gitignore
# windows thumbnail cache
Thumbs.db
Desktop.ini
# Mac DS_Store Files
.DS_Store
# webstorm
.idea
main(local).js
================================================
FILE: LICENSE
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
================================================
FILE: README.md
================================================
<div align="center"><a name="readme-top"></a>
# [GitHub 中文化插件][github-project-link]
> 让 GitHub 界面全面中文化 | 源自 [52cik/github-hans](https://github.com/52cik/github-hans)
**简体中文** · [繁體中文](./README_zh-TW.md) · [反馈问题][github-issues-link]
<!-- SHIELD GROUP -->
[![GitHub stars][github-stars-shield]][github-stars-link]
[![GitHub forks][github-forks-shield]][github-forks-link]
[![GitHub issues][github-issues-shield]][github-issues-link]
[![license GPL-3.0][github-license-shield]][github-license-link]
[![GreasyFork installs][greasyFork-shield]][greasyFork-link]
<a href="https://hellogithub.com/repository/738d0abae49543f18d887a7e29ec9e90" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=neutral" />
<img alt="Featured|HelloGitHub" src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=neutral" style="width: 250px; height: 54px;" />
</picture>
</a>
</div>
> [!warning]
> 本项目从未发布至 GitCode,如您发现请截图并保留证据
<details>
<summary><kbd>目录树</kbd></summary>
#### TOC
- [🌟 功能特性](#-功能特性)
- [🌐 兼容环境](#-兼容环境)
- [💻 安装指南](#-安装指南)
- [🔧 本地调试](#-本地调试)
- [🔄 更新日志](#-更新日志)
- [📌 待办事项](#-待办事项)
- [🤝 参与贡献](#-参与贡献)
- [🖼️ 效果预览](#-效果预览)
- [🙏 特别鸣谢](#-特别鸣谢)
- [📈 项目统计](#-项目统计)
- [🎁 欢迎打赏](#-欢迎打赏)
</details>
## 🌟 功能特性
- [x] 全面中文化 GitHub 界面元素(菜单栏、标题、按钮等)
- [x] 智能正则匹配功能
- [x] 支持项目描述的人机翻译
- [x] 自动本地化时间元素
- [x] 持续更新词库
## 🌐 兼容环境
浏览器类型 | 支持的脚本管理器
:------------------: | :---------------:
Chrome / Chromium 内核 | [Tampermonkey][Tampermonkey], [Violentmonkey][Violentmonkey]
Safari(全平台) | [Tampermonkey][Tampermonkey], [Macaque][Macaque], [Stay][Stay]
Firefox / Gecko 内核 | [Tampermonkey][Tampermonkey], [Violentmonkey][Violentmonkey]
Via(Android) | 内置管理器
## 💻 安装指南
1. 安装用户脚本管理器:
- 推荐:[Tampermonkey][Tampermonkey]
1. **基于 Chrome / Chromium 内核浏览器:**
1. 务必开启 “扩展程序” 管理中的 **“开发者模式”**[^1]
1. 务必开启 “扩展程序” 管理中脚本管理器扩展的 **“允许运行用户脚本”**
1. 具体可参考 [Tampermonkey 官方指引](https://www.tampermonkey.net/faq.php#Q209)
1. 选择安装源:
- [GitHub 源【开发版】][main.user.js]
- [GreasyFork 源【稳定版】][main(greasyfork).user.js]
1. 刷新页面后,插件即可生效
1. 必要时,重启浏览器
[^1]: [Chrome 切换到 Manifest V3后,使用问题](https://github.com/maboloshi/github-chinese/issues/234)
> [!NOTE]
> **版本说明**:
> - 🚀 开发版:实时更新,每周五自动更新词库
> - 🛡️ 稳定版:每周一同步开发版词库,更稳定
## 🔧 本地调试
1. 安装 [Tampermonkey][Tampermonkey],并启用 “允许访问文件网址”。
1. 下载词库文件到本地(如:`D:\github-chinese\locals.js`)
1. 在脚本管理器中修改引用路径:
```js
// 原始路径
// @require https://raw.githubusercontent.com/...
// 修改为
// @require file:///D:/github-chinese/locals.js
```
1. 刷新页面生效
> [!IMPORTANT]
> **若无效:**
> 1. 进入 [Tampermonkey][Tampermonkey] 插件`设置页`
> 1. 将 `通用 - 配置模式` 设置为`高级`,进入高级设置模式
> 1. 找到 `安全 - 允许脚本访问本地文件` 并设置为 `外部(@require 和 @resource)`
> [!TIP]
> 💡 **温馨提示:** 您可以将词库文件拖拽至浏览器地址栏,复制路径直接使用。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 🔄 更新日志
### 最新版本
#### v1.9.3 (2024-08-18)
1. 新增功能:通过设置中文环境,自动本地化时间元素,仅保留`on`开头的时间正则,并停用时间元素监视
1. 优化突变翻译处理:
- 引入`characterDataPage`规则,对特定页面启用`筛选字符数据`的变更
- 引入`ignoreMutationSelectorPage`规则,忽略特定突变元素
1. 合并`reIgnoreClass,reIgnoreItemprop,ignoreId,ignoreTag`为`ignoreSelectorPage`规则,处理全局及特定页面,忽略特定元素
1. 引入全局缓存模式,减少重复构建包括不限于基于`page`变化的忽略规则、正则规则数组等
1. 调整:更新讯飞听见翻译引擎v2.0
1. 优化:梳理、优化脚本
1. 调整:调整词库语言代码为`zh-CN`, 与环境语言设置一致
<details><summary><kbd>查看更多历史版本</kbd></summary>
#### v1.9.2 (2024-06-14)
1. 适配`www.githubstatus.com`
1. 适配`skills.github.com`
#### v1.9.1 (2024-05-23)
1. 更新`切换正则功能按钮`
#### v1.9.0 (2023-12-09)
1. 重新定义版本号规则, 如`1.9.0-2023-12-09`。
- `1.9.0`: 主版本号(由项目所有者更新)
- `2023-12-09`:`词库`发布版本号(由 GitHub Action 自动更新)
1. 加强: [GitHub 源【开发版】][main.user.js]每周一凌晨自动更新`词库`发布版本号
1. 加强: [GreasyFork 源【稳定版】][main(greasyfork).user.js]每周五凌晨自动更新`词库`发布版本号, 词库内容同上一次[GitHub 源【开发版】][main.user.js]
1. 加强:在 `README.md` 中自动更新贡献者头像
1. 更新: 忽略规则, 词条等
#### v1.8.5 (2023-08-31)
1. 优化: `transDesc 函数`代码
1. 修复: 重复添加`translate-me`翻译按钮
1. 加强:`watchUpdate 函数`新增节点文本更新的情况
1. 调整: `transBySelector和transDesc函数`延迟执行时间
1. 更新: 忽略规则, 词条等
#### v1.8.4 (2023-08-08)
1. 修复: `Itemprop`过滤规则, 依然使用正则方式
1. 修复: `tooltipped`样式提示, 依然使用正则方式
#### v1.8.3 (2023-08-07)
1. 梳理、优化脚本
1. 更新: 忽略规则, 大量词条等
#### v1.8.2 (2023-05-15)
1. `greasyfork 托管`源切换到`按页面精细化词条模式`
1. 调整词库格式
1. 功能加强: 优化`元素筛选器`翻译逻辑
1. 更新: 忽略规则, 大量词条等
#### v1.8.1 (2023-01-22)
1. 修复: #8 与 dark reader 扩展发生冲突,导致时间显示出现问题
1. `GitHub`源开始切换到`按页面精细化词条模式(开发版)`, 词库未完全迁移适配
1. 停止`greasyfork`源词库文件的同步更新
#### v1.8.0 (2023-01-18)
1. 删除: `TURBO-FRAME`框架处理代码. Github 已调整新动态加载模式, 直接检测`url`的变化就能获取对应的`page`信息
1. 新增: 支持时间元素的`Shadow DOM`翻译, 并监听变化
1. 新增: 启用并更新`时间元素翻译`专项正则词条
1. 新增: 仅当`page`有效才翻译页面
1. 修复: 原`简介翻译`引擎`GitHub中文社区`失效, 改为`讯飞`引擎(测试)
1. 修复: 追加公共正则重复迭代的问题
1. 修复: 正则标记变量`RegExp`与构造函数`new RegExp`冲突
1. 更新: 忽略规则, 词条等
预告, 下次将细化`page`匹配规则, 导致词库文件结构大调整, 词库文件会适当变大, 页面正则更精细效率会提升
#### v1.7.9 (2022-07-17)
GitHub 的 ajax 载入方式逐步从 [defunkt/jquery-pjax](https://github.com/defunkt/jquery-pjax) 切换到 [hotwired/turbo](turbo.hotwired.dev), 导致已有的动态监测方式逐步失效
目前, 通过以下修复:
1. 新增 `BODY` 元素新增监视
1. 解析 `TURBO-FRAME` 框架, 获取对应的 `page`
1. 修复 github 新动态加载模式, 导致`翻译描述`返回值无法插入
1. 修复 github 新动态加载模式, 导致`chrome`浏览器自带翻译功能卡死页面
其他更新:
1. 修复`rePagePath`,`rePagePathRepo`,`rePagePathOrg`匹配规则,限制路径匹配层次,排除干扰
1. 直接使用网页URL`document.URL`变化触发`标题翻译`和`JS 筛选器`翻译
1. 修复`关闭正则`无法生效, 需要刷新页面才生效
1. 日常更新词库和忽略规则
1. 更新`JS 筛选器`规则
#### v1.7.8 (2022-06-29)
1. 紧急修复: GitHub 变更了`document.body`和`title`更新机制, 导致原有的`监测更新`规则部分失效, 目前使用`document.documentElement`监视整个页面 DOM 的变更
1. 跳过`<HEAD>`标签
1. `标题翻译`和`JS 筛选器`翻译, 依据 URL变化更新
#### v1.7.7 (2022-06-26)
1. 新增`时间元素翻译`功能
1. 重写`页面标题翻译`函数
1. 梳理`遍历节点`函数逻辑
1. 优化`transPage`函数,默认翻译公共部分
1. 调整`getPage`函数, 使`ClassName匹配规则`优先
1. 优化`translate`函数, 跳过`不存在英文字母和符号,.`, 保留首尾空白部分等
1. 部分函数重命名,使用`es6`新语法
1. 日常更新词库和忽略规则,修复一个`JS 选择器规则`
#### v1.7.6 (2022-05-12)
1. 日常更新词库和忽略规则
1. 添加手动开启/禁用正则翻译,添加切换菜单
1. 优化翻译文本函数:避免已翻译词汇二次匹配,提高效率;局部翻译优先于全局
</details>
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 📌 待办事项
1. 添加 GitHub 专用名词解释
1. 整理 [Git](https://git-scm.com/) & [GitHub](https://github.com/) 学习资料
1. 完善文档翻译,需大家 PR 共同翻译
## 🤝 参与贡献
欢迎通过以下方式参与贡献:
1. 完善词库翻译(编辑 `locals.js`)
1. 提交议题报告,参与话题讨论
1. 改进代码逻辑
[![][pr-welcome-shield]][pr-welcome-link]
### 翻译参考资源:
1. [Pro Git 第二版 简体中文](https://git-scm.com/book/zh/v2)
1. [Pro Git: 翻译约定](https://github.com/progit/progit2-zh/blob/master/TRANSLATION_NOTES.asc)
1. [Git 官方软件包的简体中文翻译](https://github.com/git/git/blob/master/po/zh_CN.po)
1. [GitHub 词汇表官方译本](https://docs.github.com/cn/get-started/quickstart/github-glossary)
1. **[CSS 选择器](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference/Selectors) 用于编写忽略规则**
> [查看详细贡献指南](https://github.com/maboloshi/github-chinese/discussions/57)
## 🖼️ 效果预览
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img1.png"/>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img3.png"/>
<img src="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img1.png" width="75%" />
</picture>
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img2.png"/>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img4.png"/>
<img src="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img2.png" width="75%" />
</picture>
## 🙏 特别鸣谢
### 核心团队
- [maboloshi](https://github.com/maboloshi) - 项目作者
- [wyc-26](https://github.com/wyc-26),[陈生杂物房](https://github.com/TC999) - 项目协作者
- [52cik](https://github.com/52cik) - 项目原作者
### 贡献者墙
一如既往,感谢我们出色的贡献者❤️!
<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-->
<a href="https://github.com/maboloshi" title="沙漠之子">
<img src="https://avatars.githubusercontent.com/u/7850715?v=4" width="42;" alt="沙漠之子"/>
</a>
<a href="https://github.com/52cik" title="楼教主">
<img src="https://avatars.githubusercontent.com/u/5033310?v=4" width="42;" alt="楼教主"/>
</a>
<a href="https://github.com/TC999" title="陈生杂物房">
<img src="https://avatars.githubusercontent.com/u/88823709?v=4" width="42;" alt="陈生杂物房"/>
</a>
<a href="https://github.com/qznfbnj" title="其智乃反不能及">
<img src="https://avatars.githubusercontent.com/u/100760086?v=4" width="42;" alt="其智乃反不能及"/>
</a>
<a href="https://github.com/wyc-26" title="wyc-26">
<img src="https://avatars.githubusercontent.com/u/154735436?v=4" width="42;" alt="wyc-26"/>
</a>
<a href="https://github.com/LuYifei2011" title="Lu Yifei">
<img src="https://avatars.githubusercontent.com/u/118034848?v=4" width="42;" alt="Lu Yifei"/>
</a>
<a href="https://github.com/tangyuan0821" title="Paper Moon">
<img src="https://avatars.githubusercontent.com/u/195516213?v=4" width="42;" alt="Paper Moon"/>
</a>
<a href="https://github.com/pylover7" title="大叶子">
<img src="https://avatars.githubusercontent.com/u/56282729?v=4" width="42;" alt="大叶子"/>
</a>
<a href="https://github.com/cat-kun" title="cat-kun">
<img src="https://avatars.githubusercontent.com/u/8529528?v=4" width="42;" alt="cat-kun"/>
</a>
<a href="https://github.com/ChinaGodMan" title="人民的勤务员">
<img src="https://avatars.githubusercontent.com/u/96548841?v=4" width="42;" alt="人民的勤务员"/>
</a>
<a href="https://github.com/buiawpkgew1" title="菾凴">
<img src="https://avatars.githubusercontent.com/u/71136405?v=4" width="42;" alt="菾凴"/>
</a>
<a href="https://github.com/pecasha" title="Pecasha">
<img src="https://avatars.githubusercontent.com/u/9607128?v=4" width="42;" alt="Pecasha"/>
</a>
<a href="https://github.com/Kisechan" title="Kise Platinyl">
<img src="https://avatars.githubusercontent.com/u/162338950?v=4" width="42;" alt="Kise Platinyl"/>
</a>
<a href="https://github.com/yrljroli" title="苓𥤚">
<img src="https://avatars.githubusercontent.com/u/169890386?v=4" width="42;" alt="苓𥤚"/>
</a>
<a href="https://github.com/YiShengJunn" title="益生君">
<img src="https://avatars.githubusercontent.com/u/134821571?v=4" width="42;" alt="益生君"/>
</a>
<a href="https://github.com/3DMXM" title="小莫">
<img src="https://avatars.githubusercontent.com/u/28587093?v=4" width="42;" alt="小莫"/>
</a>
<a href="https://github.com/xuexb" title="前端小武">
<img src="https://avatars.githubusercontent.com/u/3872051?v=4" width="42;" alt="前端小武"/>
</a>
<a href="https://github.com/wang4yu6peng13" title="wang4yu6peng13">
<img src="https://avatars.githubusercontent.com/u/10207042?v=4" width="42;" alt="wang4yu6peng13"/>
</a>
<a href="https://github.com/pangshitong" title="pangshitong">
<img src="https://avatars.githubusercontent.com/u/41714457?v=4" width="42;" alt="pangshitong"/>
</a>
<a href="https://github.com/daydaygo" title="dayday">
<img src="https://avatars.githubusercontent.com/u/3986303?v=4" width="42;" alt="dayday"/>
</a>
<a href="https://github.com/heicks" title="create new ██████╗ ██╔══██╗ ██████╔╝ ██╔══██╗ ██████╔╝ ╚═════╝ ██╗ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚█████╔╝ ╚═════╝ ███████╗ ██╔════╝ ██║████═╗ ██║ ██ ║ ╚██████╔╝ ╚══════╝">
<img src="https://avatars.githubusercontent.com/u/12287943?v=4" width="42;" alt="create new ██████╗ ██╔══██╗ ██████╔╝ ██╔══██╗ ██████╔╝ ╚═════╝ ██╗ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚█████╔╝ ╚═════╝ ███████╗ ██╔════╝ ██║████═╗ ██║ ██ ║ ╚██████╔╝ ╚══════╝"/>
</a>
<a href="https://github.com/NyA1K0" title="NyA!K0">
<img src="https://avatars.githubusercontent.com/u/177237971?v=4" width="42;" alt="NyA!K0"/>
</a>
<a href="https://github.com/KS-OTO" title="KS-OTO">
<img src="https://avatars.githubusercontent.com/u/6616413?v=4" width="42;" alt="KS-OTO"/>
</a>
<a href="https://github.com/swsoyee" title="InfinityLoop">
<img src="https://avatars.githubusercontent.com/u/20528423?v=4" width="42;" alt="InfinityLoop"/>
</a>
<a href="https://github.com/ImgBotApp" title="Imgbot">
<img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="42;" alt="Imgbot"/>
</a>
<a href="https://github.com/neveler" title="neveler">
<img src="https://avatars.githubusercontent.com/u/55753029?v=4" width="42;" alt="neveler"/>
</a>
<a href="https://github.com/wang93wei" title="AlanWang">
<img src="https://avatars.githubusercontent.com/u/6371053?v=4" width="42;" alt="AlanWang"/>
</a>
<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-END-->
> 贡献者列表,由 [GitHub Action][update-contributors-images] 自动生成
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 📈 项目统计
<a href="https://star-history.com/#maboloshi/github-chinese&Timeline">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline" width="75%" />
</picture>
</a>

<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 🎁 欢迎打赏
[赞赏列表](https://github.com/maboloshi/maboloshi/issues/1)
| 微信赞赏 | 支付宝赞赏 |
| :--------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: |
| <img src="https://cdn.jsdelivr.net/gh/maboloshi/maboloshi/img/wechat.png?raw=true" alt="WeChat QRcode" width=200> <br><small>☕喝点咖啡继续干☕</small> | <img src="https://cdn.jsdelivr.net/gh/maboloshi/maboloshi/img/alipay-1.jpg?raw=true" alt="AliPay QRcode" width=200> <br><small>🌶️来包辣条吧~🍪</small> |
<!-- LINK GROUP -->
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
[github-project-link]: https://github.com/maboloshi/github-chinese "GitHub 中文化插件"
[github-issues-link]: https://github.com/maboloshi/github-chinese/issues "议题"
[github-issues-shield]: https://img.shields.io/github/issues/maboloshi/github-chinese?style=flat-square&logo=github&label=Issue
[github-stars-link]: https://github.com/maboloshi/github-chinese/stargazers "星标"
[github-stars-shield]: https://img.shields.io/github/stars/maboloshi/github-chinese?style=flat-square&logo=github&label=Star
[github-forks-link]: https://github.com/maboloshi/github-chinese/network "复刻"
[github-forks-shield]: https://img.shields.io/github/forks/maboloshi/github-chinese?style=flat-square&logo=github&label=Fork
[github-license-link]: https://opensource.org/licenses/GPL-3.0 "许可证"
[github-license-shield]: https://img.shields.io/github/license/maboloshi/github-chinese?style=flat-square&logo=github&label=License
[greasyFork-link]: https://greasyfork.org/scripts/435208 "GreasyFork 源 - GitHub 中文化插件"
[greasyFork-shield]: https://img.shields.io/greasyfork/dt/435208?style=flat-square&logo=GreasyFork&label=GreasyFork%20Installs
[pr-welcome-link]: https://github.com/maboloshi/github-chinese/pulls
[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge "欢迎提交 PR"
[Tampermonkey]: http://tampermonkey.net/ "篡改猴"
[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴"
[Macaque]: https://macaque.app/ "猕猴"
[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay"
[main.user.js]: https://github.com/maboloshi/github-chinese/raw/gh-pages/main.user.js "GitHub 中文化插件 - GitHub 源"
[main(greasyfork).user.js]: https://greasyfork.org/scripts/435208-github-%E4%B8%AD%E6%96%87%E5%8C%96%E6%8F%92%E4%BB%B6/code/GitHub%20%E4%B8%AD%E6%96%87%E5%8C%96%E6%8F%92%E4%BB%B6.user.js "GitHub 中文化插件 - GreasyFork 源"
[update-contributors-images]: https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml
================================================
FILE: README_zh-TW.md
================================================
<div align="center"><a name="readme-top"></a>
# [GitHub 中文化插件][github-project-link]
> 讓 GitHub 界面全面中文化 | 源自 [52cik/github-hans](https://github.com/52cik/github-hans)
[简体中文](./README.md) · **繁體中文** · [反饋問題][github-issues-link]
<!-- SHIELD GROUP -->
[![GitHub issues][github-issues-shield]][github-issues-link]
[![GitHub stars][github-stars-shield]][github-stars-link]
[![GitHub forks][github-forks-shield]][github-forks-link]
[![license GPL-3.0][github-license-shield]][github-license-link]
[![GreasyFork installs][greasyFork-shield]][greasyFork-link]
<a href="https://hellogithub.com/repository/738d0abae49543f18d887a7e29ec9e90" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=neutral" />
<img alt="Featured|HelloGitHub" src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=738d0abae49543f18d887a7e29ec9e90&claim_uid=zepvSg6Vwl4EqMr&theme=neutral" style="width: 250px; height: 54px;" />
</picture>
</a>
</div>
> [!warning]
> 本項目從未發佈至 GitCode,如您發現請截圖並保留證據
> [!IMPORTANT]
> 💡 **重要:** 本繁體語言版本,使用基於[OpenCC](https://github.com/BYVoid/OpenCC)及[自定義規則](./t2s_rules.conf)轉換
<details>
<summary><kbd>目錄樹</kbd></summary>
#### TOC
- [🌟 功能特性](#-功能特性)
- [🌐 兼容環境](#-兼容環境)
- [💻 安裝指南](#-安裝指南)
- [🔧 本地調試](#-本地調試)
- [🔄 更新日誌](#-更新日誌)
- [📌 待辦事項](#-待辦事項)
- [🤝 參與貢獻](#-參與貢獻)
- [🖼️ 效果預覽](#-效果預覽)
- [🙏 特別鳴謝](#-特別鳴謝)
- [📈 項目統計](#-項目統計)
- [🎁 歡迎打賞](#-歡迎打賞)
</details>
## 🌟 功能特性
- [x] 全面中文化 GitHub 界面元素(菜單欄、標題、按鈕等)
- [x] 智能正則匹配功能
- [x] 支持項目描述的人機翻譯
- [x] 自動本地化時間元素
- [x] 持續更新詞庫
## 🌐 兼容環境
瀏覽器類型 | 支持的腳本管理器
:------------------: | :---------------:
Chrome / Chromium 內核 | [Tampermonkey][Tampermonkey], [Violentmonkey][Violentmonkey]
Safari(全平臺) | [Macaque][Macaque], [Stay][Stay]
Firefox / Gecko 內核 | [Tampermonkey][Tampermonkey], [Violentmonkey][Violentmonkey]
Via(Android) | 內置管理器
## 💻 安裝指南
1. 安裝用戶腳本管理器:
- 推薦:[Tampermonkey][Tampermonkey]
1. **基於 Chrome / Chromium 內核瀏覽器:**
1. 務必開啟 「擴展程序」 管理中的 **「開發者模式」**[^1]
1. 務必開啟 「擴展程序」 管理中腳本管理器擴展的 **「允許運行用戶腳本」**
1. 具體可參考 [Tampermonkey 官方指引](https://www.tampermonkey.net/faq.php#Q209)
1. 選擇安裝源:
- [GitHub 源【開發版】][main_zh-TW.user.js]
1. 刷新頁面後,插件即可生效
1. 必要時,重啟瀏覽器
[^1]: [Chrome 切換到 Manifest V3後,使用問題](https://github.com/maboloshi/github-chinese/issues/234)
> [!NOTE]
> **版本說明**:
> - 🚀 開發版:實時更新,每週五自動更新詞庫
> - 🛡️ 穩定版:每週一同步開發版詞庫,更穩定
## 🔧 本地調試
1. 安裝 [Tampermonkey][Tampermonkey],並啟用 “允許訪問文件網址”。
1. 下載詞庫文件到本地(如:`D:\github-chinese\locals.js`)
1. 在腳本管理器中修改引用路徑:
```js
// 原始路徑
// @require https://raw.githubusercontent.com/...
// 修改為
// @require file:///D:/github-chinese/locals.js
```
1. 刷新頁面生效
> [!TIP]
> 💡 **溫馨提示:** 您可以將詞庫文件拖拽至瀏覽器地址欄,複製路徑直接使用。
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 🔄 更新日誌
### 最新版本
#### v1.9.3 (2024-08-18)
1. 新增功能:通過設置中文環境,自動本地化時間元素,僅保留`on`開頭的時間正則,並停用時間元素監視
1. 優化突變翻譯處理:
- 引入`characterDataPage`規則,對特定頁面啟用`篩選字符數據`的變更
- 引入`ignoreMutationSelectorPage`規則,忽略特定突變元素
1. 合併`reIgnoreClass,reIgnoreItemprop,ignoreId,ignoreTag`為`ignoreSelectorPage`規則,處理全局及特定頁面,忽略特定元素
1. 引入全局緩存模式,減少重複構建包括不限於基於`page`變化的忽略規則、正則規則數組等
1. 調整:更新訊飛聽見翻譯引擎v2.0
1. 優化:梳理、優化腳本
1. 調整:調整詞庫語言代碼為`zh-CN`, 與環境語言設置一致
<details><summary><kbd>查看更多歷史版本</kbd></summary>
#### v1.9.2 (2024-06-14)
1. 適配`www.githubstatus.com`
1. 適配`skills.github.com`
#### v1.9.1 (2024-05-23)
1. 更新`切換正則功能按鈕`
#### v1.9.0 (2023-12-09)
1. 重新定義版本號規則, 如`1.9.0-2023-12-09`。
- `1.9.0`: 主版本號(由項目所有者更新)
- `2023-12-09`:`詞庫`發佈版本號(由 GitHub Action 自動更新)
1. 加強: [GitHub 源【開發版】][main.user.js]每週一凌晨自動更新`詞庫`發佈版本號
1. 加強: [GreasyFork 源【穩定版】][main(greasyfork).user.js]每週五凌晨自動更新`詞庫`發佈版本號, 詞庫內容同上一次[GitHub 源【開發版】][main.user.js]
1. 加強:在 `README.md` 中自動更新貢獻者頭像
1. 更新: 忽略規則, 詞條等
#### v1.8.5 (2023-08-31)
1. 優化: `transDesc 函數`代碼
1. 修復: 重複添加`translate-me`翻譯按鈕
1. 加強:`watchUpdate 函數`新增節點文本更新的情況
1. 調整: `transBySelector和transDesc函數`延遲執行時間
1. 更新: 忽略規則, 詞條等
#### v1.8.4 (2023-08-08)
1. 修復: `Itemprop`過濾規則, 依然使用正則方式
1. 修復: `tooltipped`樣式提示, 依然使用正則方式
#### v1.8.3 (2023-08-07)
1. 梳理、優化腳本
1. 更新: 忽略規則, 大量詞條等
#### v1.8.2 (2023-05-15)
1. `greasyfork 託管`源切換到`按頁面精細化詞條模式`
1. 調整詞庫格式
1. 功能加強: 優化`元素篩選器`翻譯邏輯
1. 更新: 忽略規則, 大量詞條等
#### v1.8.1 (2023-01-22)
1. 修復: #8 與 dark reader 擴展發生衝突,導致時間顯示出現問題
1. `GitHub`源開始切換到`按頁面精細化詞條模式(開發版)`, 詞庫未完全遷移適配
1. 停止`greasyfork`源詞庫文件的同步更新
#### v1.8.0 (2023-01-18)
1. 刪除: `TURBO-FRAME`框架處理代碼. Github 已調整新動態加載模式, 直接檢測`url`的變化就能獲取對應的`page`信息
1. 新增: 支持時間元素的`Shadow DOM`翻譯, 並監聽變化
1. 新增: 啟用並更新`時間元素翻譯`專項正則詞條
1. 新增: 僅當`page`有效才翻譯頁面
1. 修復: 原`簡介翻譯`引擎`GitHub中文社區`失效, 改為`訊飛`引擎(測試)
1. 修復: 追加公共正則重複迭代的問題
1. 修復: 正則標記變量`RegExp`與構造函數`new RegExp`衝突
1. 更新: 忽略規則, 詞條等
預告, 下次將細化`page`匹配規則, 導致詞庫文件結構大調整, 詞庫文件會適當變大, 頁面正則更精細效率會提升
#### v1.7.9 (2022-07-17)
GitHub 的 ajax 載入方式逐步從 [defunkt/jquery-pjax](https://github.com/defunkt/jquery-pjax) 切換到 [hotwired/turbo](turbo.hotwired.dev), 導致已有的動態監測方式逐步失效
目前, 通過以下修復:
1. 新增 `BODY` 元素新增監視
1. 解析 `TURBO-FRAME` 框架, 獲取對應的 `page`
1. 修復 github 新動態加載模式, 導致`翻譯描述`返回值無法插入
1. 修復 github 新動態加載模式, 導致`chrome`瀏覽器自帶翻譯功能卡死頁面
其他更新:
1. 修復`rePagePath`,`rePagePathRepo`,`rePagePathOrg`匹配規則,限制路徑匹配層次,排除干擾
1. 直接使用網頁URL`document.URL`變化觸發`標題翻譯`和`JS 篩選器`翻譯
1. 修復`關閉正則`無法生效, 需要刷新頁面才生效
1. 日常更新詞庫和忽略規則
1. 更新`JS 篩選器`規則
#### v1.7.8 (2022-06-29)
1. 緊急修復: GitHub 變更了`document.body`和`title`更新機制, 導致原有的`監測更新`規則部分失效, 目前使用`document.documentElement`監視整個頁面 DOM 的變更
1. 跳過`<HEAD>`標籤
1. `標題翻譯`和`JS 篩選器`翻譯, 依據 URL變化更新
#### v1.7.7 (2022-06-26)
1. 新增`時間元素翻譯`功能
1. 重寫`頁面標題翻譯`函數
1. 梳理`遍歷節點`函數邏輯
1. 優化`transPage`函數,默認翻譯公共部分
1. 調整`getPage`函數, 使`ClassName匹配規則`優先
1. 優化`translate`函數, 跳過`不存在英文字母和符號,.`, 保留首尾空白部分等
1. 部分函數重命名,使用`es6`新語法
1. 日常更新詞庫和忽略規則,修復一個`JS 選擇器規則`
#### v1.7.6 (2022-05-12)
1. 日常更新詞庫和忽略規則
1. 添加手動開啟/禁用正則翻譯,添加切換菜單
1. 優化翻譯文本函數:避免已翻譯詞彙二次匹配,提高效率;局部翻譯優先於全局
</details>
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 📌 待辦事項
1. 添加 GitHub 專用名詞解釋
1. 整理 [Git](https://git-scm.com/) & [GitHub](https://github.com/) 學習資料
1. 完善文檔翻譯,需大家 PR 共同翻譯
## 🤝 參與貢獻
歡迎通過以下方式參與貢獻:
1. 完善詞庫翻譯(編輯 `locals.js`)
1. 提交議題報告,參與話題討論
1. 改進代碼邏輯
[![][pr-welcome-shield]][pr-welcome-link]
### 翻譯參考資源:
1. [Pro Git 第二版 簡體中文](https://git-scm.com/book/zh/v2)
1. [Pro Git: 翻譯約定](https://github.com/progit/progit2-zh/blob/master/TRANSLATION_NOTES.asc)
1. [Git 官方軟件包的簡體中文翻譯](https://github.com/git/git/blob/master/po/zh_CN.po)
1. [GitHub 詞彙表官方譯本](https://docs.github.com/cn/get-started/quickstart/github-glossary)
1. **[CSS 選擇器](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference/Selectors) 用於編寫忽略規則**
> [查看詳細貢獻指南](https://github.com/maboloshi/github-chinese/discussions/57)
## 🖼️ 效果預覽
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img1.png"/>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img3.png"/>
<img src="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img1.png" width="75%" />
</picture>
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img2.png"/>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img4.png"/>
<img src="https://raw.githubusercontent.com/maboloshi/github-chinese/gh-pages/preview/img2.png" width="75%" />
</picture>
## 🙏 特別鳴謝
### 核心團隊
- [maboloshi](https://github.com/maboloshi) - 項目作者
- [wyc-26](https://github.com/wyc-26),[陳生雜物房](https://github.com/TC999) - 項目協作者
- [52cik](https://github.com/52cik) - 項目原作者
### 貢獻者牆
一如既往,感謝我們出色的貢獻者❤️!
<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-->
<a href="https://github.com/maboloshi" title="沙漠之子">
<img src="https://avatars.githubusercontent.com/u/7850715?v=4" width="42;" alt="沙漠之子"/>
</a>
<a href="https://github.com/52cik" title="樓教主">
<img src="https://avatars.githubusercontent.com/u/5033310?v=4" width="42;" alt="樓教主"/>
</a>
<a href="https://github.com/TC999" title="陳生雜物房">
<img src="https://avatars.githubusercontent.com/u/88823709?v=4" width="42;" alt="陳生雜物房"/>
</a>
<a href="https://github.com/qznfbnj" title="其智乃反不能及">
<img src="https://avatars.githubusercontent.com/u/100760086?v=4" width="42;" alt="其智乃反不能及"/>
</a>
<a href="https://github.com/wyc-26" title="wyc-26">
<img src="https://avatars.githubusercontent.com/u/154735436?v=4" width="42;" alt="wyc-26"/>
</a>
<a href="https://github.com/pylover7" title="大葉子">
<img src="https://avatars.githubusercontent.com/u/56282729?v=4" width="42;" alt="大葉子"/>
</a>
<a href="https://github.com/cat-kun" title="cat-kun">
<img src="https://avatars.githubusercontent.com/u/8529528?v=4" width="42;" alt="cat-kun"/>
</a>
<a href="https://github.com/ChinaGodMan" title="人民的勤務員">
<img src="https://avatars.githubusercontent.com/u/96548841?v=4" width="42;" alt="人民的勤務員"/>
</a>
<a href="https://github.com/buiawpkgew1" title="菾凴">
<img src="https://avatars.githubusercontent.com/u/71136405?v=4" width="42;" alt="菾凴"/>
</a>
<a href="https://github.com/yrljroli" title="𠭞">
<img src="https://avatars.githubusercontent.com/u/169890386?v=4" width="42;" alt="𠭞"/>
</a>
<a href="https://github.com/YiShengJunn" title="益生君">
<img src="https://avatars.githubusercontent.com/u/134821571?v=4" width="42;" alt="益生君"/>
</a>
<a href="https://github.com/3DMXM" title="小莫">
<img src="https://avatars.githubusercontent.com/u/28587093?v=4" width="42;" alt="小莫"/>
</a>
<a href="https://github.com/xuexb" title="前端小武">
<img src="https://avatars.githubusercontent.com/u/3872051?v=4" width="42;" alt="前端小武"/>
</a>
<a href="https://github.com/wang4yu6peng13" title="wang4yu6peng13">
<img src="https://avatars.githubusercontent.com/u/10207042?v=4" width="42;" alt="wang4yu6peng13"/>
</a>
<a href="https://github.com/pangshitong" title="pangshitong">
<img src="https://avatars.githubusercontent.com/u/41714457?v=4" width="42;" alt="pangshitong"/>
</a>
<a href="https://github.com/daydaygo" title="dayday">
<img src="https://avatars.githubusercontent.com/u/3986303?v=4" width="42;" alt="dayday"/>
</a>
<a href="https://github.com/heicks" title="create new ██████╗ ██╔══██╗ ██████╔╝ ██╔══██╗ ██████╔╝ ╚═════╝ ██╗ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚█████╔╝ ╚═════╝ ███████╗ ██╔════╝ ██║████═╗ ██║ ██ ║ ╚██████╔╝ ╚══════╝">
<img src="https://avatars.githubusercontent.com/u/12287943?v=4" width="42;" alt="create new ██████╗ ██╔══██╗ ██████╔╝ ██╔══██╗ ██████╔╝ ╚═════╝ ██╗ ██╗ ██║ ██║ ██║ ██║ ██║ ██║ ╚█████╔╝ ╚═════╝ ███████╗ ██╔════╝ ██║████═╗ ██║ ██ ║ ╚██████╔╝ ╚══════╝"/>
</a>
<a href="https://github.com/KS-OTO" title="KS-OTO">
<img src="https://avatars.githubusercontent.com/u/6616413?v=4" width="42;" alt="KS-OTO"/>
</a>
<a href="https://github.com/swsoyee" title="InfinityLoop">
<img src="https://avatars.githubusercontent.com/u/20528423?v=4" width="42;" alt="InfinityLoop"/>
</a>
<a href="https://github.com/ImgBotApp" title="Imgbot">
<img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="42;" alt="Imgbot"/>
</a>
<a href="https://github.com/neveler" title="neveler">
<img src="https://avatars.githubusercontent.com/u/55753029?v=4" width="42;" alt="neveler"/>
</a>
<!--AUTO_GENERATED_PLEASE_DONT_DELETE_IT-END-->
> 貢獻者列表,由 [GitHub Action][update-contributors-images] 自動生成
<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 📈 項目統計
<a href="https://star-history.com/#maboloshi/github-chinese&Timeline">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=maboloshi/github-chinese&type=Timeline" width="75%" />
</picture>
</a>

<div align="right">
[![][back-to-top]](#readme-top)
</div>
## 🎁 歡迎打賞
[讚賞列表](https://github.com/maboloshi/maboloshi/issues/1)
| 微信讚賞 | 支付寶讚賞 |
| :--------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: |
| <img src="https://cdn.jsdelivr.net/gh/maboloshi/maboloshi/img/wechat.png?raw=true" alt="WeChat QRcode" width=200> <br><small>☕喝點咖啡繼續幹☕</small> | <img src="https://cdn.jsdelivr.net/gh/maboloshi/maboloshi/img/alipay-1.jpg?raw=true" alt="AliPay QRcode" width=200> <br><small>🌶️來包辣條吧~🍪</small> |
<!-- LINK GROUP -->
[back-to-top]: https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square
[github-project-link]: https://github.com/maboloshi/github-chinese "GitHub 中文化插件"
[github-issues-link]: https://github.com/maboloshi/github-chinese/issues "議題"
[github-issues-shield]: https://img.shields.io/github/issues/maboloshi/github-chinese?style=flat-square&logo=github&label=Issue
[github-stars-link]: https://github.com/maboloshi/github-chinese/stargazers "星標"
[github-stars-shield]: https://img.shields.io/github/stars/maboloshi/github-chinese?style=flat-square&logo=github&label=Star
[github-forks-link]: https://github.com/maboloshi/github-chinese/network "復刻"
[github-forks-shield]: https://img.shields.io/github/forks/maboloshi/github-chinese?style=flat-square&logo=github&label=Fork
[github-license-link]: https://opensource.org/licenses/GPL-3.0 "許可證"
[github-license-shield]: https://img.shields.io/github/license/maboloshi/github-chinese?style=flat-square&logo=github&label=License
[greasyFork-link]: https://greasyfork.org/scripts/435208 "GreasyFork 源 - GitHub 中文化插件"
[greasyFork-shield]: https://img.shields.io/badge/dynamic/json?style=flat-square&logo=GreasyFork&label=GreasyFork&query=total_installs&suffix=%20installs&url=https://greasyfork.org/scripts/435208.json
[pr-welcome-link]: https://github.com/maboloshi/github-chinese/pulls
[pr-welcome-shield]: https://img.shields.io/badge/🤯_pr_welcome-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge "歡迎提交 PR"
[Tampermonkey]: http://tampermonkey.net/ "篡改猴"
[Violentmonkey]: https://violentmonkey.github.io/ "暴力猴"
[Macaque]: https://macaque.app/ "獼猴"
[Stay]: https://apps.apple.com/cn/app/stay-for-safari-%E6%B5%8F%E8%A7%88%E5%99%A8%E4%BC%B4%E4%BE%A3/id1591620171 "Stay"
[main_zh-TW.user.js]: https://github.com/maboloshi/github-chinese/raw/gh-pages/main_zh-TW.user.js "GitHub 中文化插件(繁體版) - GitHub 託管"
[update-contributors-images]: https://github.com/maboloshi/github-chinese/blob/gh-pages/.github/workflows/update_contributors_images.yml
================================================
FILE: apt-packages.txt
================================================
opencc
================================================
FILE: locals(greasyfork).js
================================================
/*******************************************************************************
locals.js - 搭配用户脚本插件`GitHub 中文化插件`的页面匹配规则, 翻译忽略规则,
词条库文件
Copyright (C) 2016-2021 楼教主 (https://github.com/52cik)
Copyright (C) 2021-当前 沙漠之子 (https://github.com/maboloshi)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Home: https://github.com/maboloshi/github-chinese
*/
var I18N = {};
I18N.conf = {
/**
* 匹配 pathname 页面的正则
*
* 注册页面 /signup
* 登录二步验证 /login/oauth
* 登录页面 /login
* 密码重置 /password_reset
* 组织页面 /orgs
* 探索页面 /explore
* 订阅页面 /notifications/subscriptions
* 通知页面 /notifications
* 关注页面 /watching
* 星标页面 /stars
* 议题页面 /issues
* 拉取请求 /pulls
* 搜索页面 /search
* 趋势页面 /trending
* 展示页面 /showcases
* 导入仓库 /new/import
* ...
*/
rePagePath: /^\/($|home|dashboard|feed|copilot|spark|signup|account_verifications|login\/oauth|login|logout|sessions?|password_reset|orgs|explore|topics|notifications\/subscriptions|notifications|watching|stars|issues|pulls|repos|search|trending|showcases|new\/(import|project)|new|import|settings\/(profile|admin|appearance|accessibility|notifications|billing|emails|security_analysis|security-log|security|auth|sessions|keys|ssh|gpg|organizations|enterprises|blocked_users|interaction_limits|code_review_limits|repositories|codespaces|models|codespaces\/allow_permissions|deleted_repositories|packages|copilot|pages|replies|installations|apps\/authorizations|reminders|sponsors-log|apps|(?:personal-access-|)tokens|developers|applications\/new|applications|connections\/applications|education\/benefits)|settings|installations\/new|marketplace|apps|account\/(organizations\/new|choose|upgrade|billing\/history)|projects|redeem|discussions|collections|sponsors|sponsoring|github-copilot\/(signup|free_signup|code-review-waitlist|pro)|codespaces|developer\/register|features|security|sitemap|education|mcp)|^\/users\/[^\/]+\/(projects|packages|succession\/invitation)/,
// 仓库路径
rePagePathRepo: /^\/[^\/]+\/[^\/]+\/(issues|pulls|pull|tree|watchers|stargazers|new|edit|delete|upload|find|models|wiki|branches|discussions|activity|rules|releases|packages|tags|labels|milestones?|compare|commit|blob|blame|actions(\/metrics\/(usage|performance))?|runs|deployments|security|pulse|community|forks|fork|import|graphs\/(contributors|community|traffic|commit-activity|code-frequency)|network$|network\/(dependencies|dependents|updates|members)|settings\/(access|code_review_limits|interaction_limits|branches|branch_protection_rules|tag_protection|rules|actions|models\/access-policy|hooks|copilot\/(code_review|coding_agent)|environments|codespaces|pages|security_analysis|dependabot_rules|keys|secrets|variables|installations|notifications|key_links)|settings|transfer|projects\/new|projects|pkgs|contribute|subscription|invitations|codespaces|attestations|custom-properties|reported_content|agents|tasks)/,
// 组织路径
rePagePathOrg: /^\/[^\/]+\/[^\/]+\/(repositories\/new|repositories|sponsoring|discussions|projects|packages|teams|new-team|people|outside-collaborators|pending_collaborators|dashboard|billing_managers\/new|invitations?|settings\/(profile|billing|roles|member_privileges|teams|import-export|blocked_users|interaction_limits|code_review_limits|moderators|repository-defaults|rules|codespaces|copilot|actions|hooks|discussions|packages|pages|projects|security_analysis|security|dependabot_rules|domains|secrets|variables|oauth_application_policy|installations|personal-access-token|reminders|sponsors-log|audit-log|deleted_repositories|applications\/new|applications|apps\/new|apps|publisher|policies\/repositories)|topics|domain\/new|audit-log\/event_settings|billing\/(history|plans)|policies\/applications)|^\/[^\/]+\/(enterprise_plan|sponsoring)/,
// 特定页面,启用`字符数据`监测
characterDataPage: ['repository/new', 'repository/edit', 'new', 'new/import', 'orgs/repositories/new', 'repository/blob', 'repository/pull', 'marketplace', 'homepage', 'repository/issues', 'repository/commit', 'copilot', 'spark', 'repository/settings/rules'],
// 特定页面,忽略突变元素规则
ignoreMutationSelectorPage: {
'repository/new': [".cm-scroller"], // 代码编辑器
'repository/edit': [".cm-scroller", "table"], // 代码编辑器
'repository/pull': [
"td.blob-code", // 代码差异 分屏/同屏
'.js-full-logs-container', // 工作流运行日志
],
'repository/compare': [
"tbody", // 代码差异
".js-preview-body", // 新建拉取请求 - 正文编辑器预览
],
'repository/commit': ["td.blob-code", "div.diff-text-inner"], // 代码差异 分屏/同屏
'repository/blob': [
"#highlighted-line-menu-positioner", // 代码视图 存在
"#repos-sticky-header", // 代码视图 置顶标题
'nav[data-testid="breadcrumbs"]', // 面包屑导航
'div[data-testid="breadcrumbs-filename"]', // 面包屑导航 文件名部分
],
'repository/blame': ["#highlighted-line-menu-positioner"], // 代码视图
'repository': [
".AppHeader-context",
"table",
"article.markdown-body",
],
'repository/tree': [
'nav[data-testid="breadcrumbs"]', // 面包屑导航
'div[data-testid="breadcrumbs-filename"]', // 面包屑导航 文件名部分
'tr.react-directory-row', // 文件列表中文件夹和文件条目
],
'repository/releases': [".Box-footer"], // 附件清单
'repository/issues': [
'div[aria-live="polite"]>div.markdown-body', // 新建议题 - 正文编辑器预览
'.markdown-body[data-team-hovercards-enabled="true"]', // 某个议题 - 正文以及正文编辑器、添加评论编辑器预览
],
'repository/actions': [
'table.highlight', // 工作流程文件 源码视图
'.js-full-logs-container', // 工作流运行日志
],
'repository/security': [
'td.blob-code',
],
'copilot':[
'.cm-line',
],
'spark':[
'.cm-line',
],
'*': [
'div.QueryBuilder-StyledInputContainer', // 顶部搜索栏 关键词
'#qb-input-query span', // 搜索页面 搜索栏 关键词
'div.styled-input-content', // 筛选条
],
},
// 特定页面,忽略元素规则
ignoreSelectorPage: {
'page-profile': [
'span.p-nickname', // 用户昵称
'span.p-name', // 同上
],
'page-profile/followers': [
'span.f4.Link--primary',
"span.Link--secondary.pl-1",
],
'page-profile/repositories': [
'a[itemprop="name codeRepository"]', // 仓库名称
],
'page-profile/stars': [
'.mb-1.d-inline-block > h3', // 仓库名称
],
'repository': [
'.AppHeader-context-full', // 顶部 <username>/<repo_name>
'strong[itemprop="name"]', // 仓库名称
// 'ul.list-style-none', // 右侧 部署列表 无效
'div[data-testid="latest-commit"]', // 最新的提交
'tr.react-directory-row', // 文件列表中文件夹和文件条目
'p.f4.my-3', // 仓库简介正文
'#translate-me',
'.my-3.d-flex.flex-items-center', // 仓库简介中的链接
'article.markdown-body', // 自述文件正文
'li.mt-2',
],
'repository/tree': [
'.AppHeader-context-full', // 顶部 <username>/<repo_name>
'div.react-tree-show-tree-items', // 左侧文件树项目
'span.PRIVATE_TreeView-item-content-text', // 左侧文件树项目 - 子文件夹
'article.markdown-body', // Markdown 正文
'nav[data-testid="breadcrumbs"]', // 面包屑导航
'div[data-testid="breadcrumbs-filename"]', // 面包屑导航 文件名部分
'tr.react-directory-row', // 文件列表中文件夹和文件条目
],
'repository/blob': [
'.AppHeader-context-full', // 顶部 <username>/<repo_name>
'article.markdown-body', // Markdown 正文
'div.react-tree-show-tree-items', // 左侧文件树项目
'[id^="offset"]', // 符号-->引用
'#highlighted-line-menu-positioner', // 代码视图
'#filter-results', // 右侧 符号筛选
'.Text__StyledText-sc-17v1xeu-0', // 右侧 符号筛选
'nav[data-testid="breadcrumbs"]', // 面包屑导航
'div[data-testid="breadcrumbs-filename"]', // 面包屑导航 文件名部分
],
'repository/issues': [
'div[aria-live="polite"]>div.markdown-body', // 新建议题 - 正文编辑器预览
'.markdown-body[data-team-hovercards-enabled="true"]', // 某个议题 - 正文以及正文编辑器、添加评论编辑器预览
],
'repository/commit': [
'td.blob-code', // 代码差异 分屏/同屏
'span.ws-pre-wrap', // 提交说明
"h4[class^='Title-module__heading']", // 提交标题
],
'repository/pull': [
'td.blob-code', // 代码差异 分屏/同屏
'.js-full-logs-container', // 工作流运行日志
],
'repository/compare': [
'td.blob-code', // 代码差异 分屏/同屏
],
'repository/edit': [
'.cm-scroller', // 代码编辑器
'table', // 代码差异预览
],
'repository/new': [
'.cm-scroller', // 代码编辑器
'table', // 代码差异预览
],
'repository/actions': [
'table.highlight', // 工作流程文件 源码视图
'.js-full-logs-container', // 工作流运行日志
],
'repository/releases': [
'div.Box-body>div.markdown-body', // 发布版正文
],
'repository/wiki': [
'#wiki-body', // wiki 正文
'ul.list-style-none.mx-4.px-1', // 右侧目录
],
'repository/security': [
'td.blob-code',
],
'orgs': [
'a[itemprop="name codeRepository"]', // 仓库名称
],
'search': [
'span.search-match', // 搜索匹配信息
'div.code-list', // 代码片段预览
'optgroup > option', // 下拉菜单列表
],
'dashboard': [
'.js-notice-dismiss', // 右侧栏 广告
'.TimelineItem', // 右侧栏 最新变化
'section.comment-body', // 发布版正文
],
'gist': [
'.gist-content[itemprop="about"]', // Gist 简介
'div.js-blob-code-container', // 代码框
'table.js-diff-table', // 代码差异
],
'topics': [
'h3.f3.color-fg-muted.text-normal.lh-condensed', // 仓库名称
],
'marketplace': [
'.markdown-body',
],
'copilot':[
'.cm-line',
],
'spark': [
'.Table',
'.monaco-editor',
],
'*': [
'.comment-body', '.js-preview-body',
'.markdown-title',
'span.ActionListItem-descriptionWrap', // 顶部搜索栏 关键词
'CODE', 'SCRIPT', 'STYLE', 'LINK', 'IMG', 'MARKED-TEXT', 'PRE', 'KBD', 'SVG', 'MARK', // 特定元素标签
'div.styled-input-content', // 筛选条
],
},
// 以下兼容 1.9.2 版本,且冻结 等待 1.9.3 明显 Bug 修复
/**
* 要翻译的页面正则(不含仓库页)
*
* 2021-10-07 11:53:34
* GitHub 网站更新 调整 Class 过滤规则
* 且过滤 Class 并不是总是生效,增加 PathName 规则补充
*/
rePageClass: /\b(page-(profile|new-repo|create-org)|session-authentication)\b/,
/**
* 忽略区域的 class 正则
*
* 代码编辑器 内容 代码高亮 CodeMirror
* 代码编辑器 最小单元 cm-line ͼ.*
* 代码高亮 blob-code
* 仓库名和用户名 repo-and-owner (已知出现在:应用安装授权页和设置页 选定仓库)
* 文件,目录位置栏 |js-path-segment|final-path
* 文件列表 files js-navigation-container js-active-navigation-container
* 评论内容等 js-comment-body
* 评论预览 js-preview-body
* 评论编辑区域 comment-form-textarea
* 文件搜索模式 js-tree-finder-virtual-filter
* 仓库文件列表 js-navigation-open Link--primary
* 快捷键 按键 js-modifier-key
* 洞察-->流量-->热门内容列表 capped-list-label
* realease 页面 描述主体 markdown-body my-3
* 仓库页 仓库描述 f4 my-3
* 提交的用户名 commit-author$
* 搜索页 搜索结果 search-match
* 追溯 视图 代码 react-code-text
* tree 视图 文件名 react-directory-filename-column 提交信息 react-directory-commit-message
* 代码差异页面 代码 pl-s1|pl-smi|pl-token|pl-c1|pl-kos|pl-k|pl-c|pl-en
*/
reIgnoreClass: /(cm-line|ͼ.*|pl-s1|pl-smi|pl-token|pl-c1|pl-kos|pl-k|pl-c|pl-en|CodeMirror|blob-code|highlight-.*|repo-and-owner|js-path-segment|final-path|files js-navigation-container|js-comment-body|js-preview-body|comment-form-textarea|markdown-title|js-tree-finder-virtual-filter|js-navigation-open Link--primary|js-modifier-key|capped-list-label|blob-code blob-code-inner js-file-line|markdown-body my-3|f4 my-3|commit-author$|search-match|react-directory-filename-column|react-directory-commit-message|react-code-text|zausi)/,
/**
* 忽略区域的 itemprop 属性正则
* name 列表页 仓库名
* author 仓库页 作者名称
* additionalName 个人主页 附加名称
*/
reIgnoreItemprop: /(name|author|additionalName)/,
/**
* 忽略区域的 特定元素id 正则
* /blob页面 offset 符号-->引用
* /blob页面 右侧 符号筛选 filter-results
* fix repo详情页文件路径breadcrumb
*/
reIgnoreId: /(readme|^offset|breadcrumb|file-name-id|filter-results)/,
/**
* 忽略区域的 标签 正则
* /i 规则不区分大小写
*/
reIgnoreTag: ['CODE', 'SCRIPT', 'STYLE', 'LINK', 'IMG', 'MARKED-TEXT', 'PRE', 'KBD'],
// marked-text --> 文件搜索模式/<user-name>/<repo-name>/find/<branch> 文件列表条目
// ^script$ --> 避免勿过滤 notifications-list-subscription-form
// ^pre$ --> 避免勿过滤
};
I18N["zh-CN"] = {};
I18N["zh-CN"]["title"] = { // 标题翻译
"static": { // 静态翻译
"Sign up to GitHub · GitHub": "注册 · GitHub",
"Sign in to GitHub · GitHub": "登录 GitHub · GitHub",
"Join GitHub · GitHub": "加入 GitHub · GitHub",
"Forgot your password? · GitHub": "忘记您的密码了吗?· GitHub",
"Forgot your password?": "忘记您的密码了吗?",
"GitHub · Where software is built": "GitHub · 软件构建的地方",
"Create a New Repository": "新建仓库",
"Import a Repository": "导入仓库",
"New Project": "创建项目",
"Your Repositories": "我的仓库",
"Your Projects": "我的项目",
"Your Packages": "我的软件包",
"Your Stars": "我的星标页面",
"Your profile": "个人资料",
"Your Achievements": "我的成就",
"Your Followers": "我的关注者",
"Who You’re Following": "我关注的人",
"Account settings": "账户设置",
"Appearance": "外观",
"Accessibility": "无障碍",
"Notification settings": "通知设置",
"Billing": "账单",
"Email settings": "邮箱设置",
"Account security": "账户安全",
"SSH and GPG keys": "SSH 与 GPG 公钥",
"Organizations": "组织",
//"Blocked users": "拉黑用户",
"Temporary interaction limits": "临时互动限制",
"Code review limits": "代码审查限制",
"Repositorys": "仓库",
"Deleted Packages": "删除的软件包",
"Pages": "GitHub 页面",
"Saved replies": "快捷回复",
"Security & analysis": "安全与分析",
"Installed GitHub Apps": "已安装的 GitHub 应用",
"Issue search results": "议题搜索结果",
"Scheduled reminders": "定时提醒",
"Security log": "安全日志",
"Sponsorship Log": "赞助日志",
"GitHub Apps": "GitHub 应用",
"Developer applications": "开发者应用",
"Personal Access Tokens": "个人访问令牌",
"Register new GitHub App": "注册新 GitHub 应用",
"New OAuth Application": "新 OAuth 应用",
"Create a new Gist": "创建新代码片段",
"Discover gists": "探索代码片段",
"Enable two-factor authentication": "启用双因素身份验证",
"Manage two-factor authentication": "管理双因素身份验证",
"Options": "仓库 · 选项",
"Confirm access": "授权访问",
"General": "通常",
"Manage access": "访问管理",
"Branches": "分支",
"Tags": "标签",
"Webhooks": "Web 钩子",
"Environments": "环境",
"Security & analysis": "安全性与分析",
"Deploy keys": "部署密钥",
"Add deploy key": "添加部署密钥",
"Actions secrets": "操作机密",
"Dependabot secrets": "Dependabot 机密",
"Configure email notifications": "配置邮件通知",
"Community Standards": "社区准则",
"General Organization Settings": "常规组织设置",
"Member privileges": "成员权限",
"Teams": "团队",
"Trending repositories on GitHub today": "今日热门仓库",
"Trending repositories on GitHub this week": "本周热门仓库",
"Trending repositories on GitHub this month": "本月热门仓库",
"Repository defaults": "仓库默认值",
"Repository search results": "仓库搜索结果",
"Runners": "运行器",
"Runner Groups": "运行器组",
"Packages": "软件包",
"Package": "软件包",
"Payment Information": "支付信息",
"Security": "安全",
"Verified & approved domains": "经验证和批准的域名",
"Add a Pages verified domain": "添加一个经验证的 GitHub Pages 域名",
"Third-party application access policy": "第三方应用访问策略",
"Audit log": "审计日志",
"Deleted Repositories": "已删除的仓库",
"GitHub Publisher Verification": "GitHub 发布者验证",
"Notifications": "通知",
"Confirm your account recovery settings": "确认您的账户恢复设置",
"Your stars": "我的星标",
"Your starred repositories": "我的星标仓库",
"Your starred topics": "我的星标主题",
"Register for the GitHub Developer Program": "注册 GitHub 开发者计划",
"Codespaces": "代码空间",
"Codespace Templates": "代码空间模版",
"Create new codespace": "创建代码空间",
"Error": "错误",
"Discover gists · GitHub": "探索代码片段 · GitHub",
"Explore GitHub Sponsors": "探索 GitHub 赞助者",
"Actions Usage Metrics": "操作使用情况",
"Actions usage metrics": "操作使用情况",
"Fine-grained Personal Access Tokens": "精细化的个人访问令牌",
"Import repository": "导入仓库",
"Explore GitHub": "探索 GitHub",
//"Rate limit · GitHub": "速率限制 · GitHub",
//"GitHub: Let’s build from here · GitHub": "GitHub: 让我们从这里开始",
"GitHub · Build and ship software on a single, collaborative platform · GitHub": "GitHub · 在单一协作平台上构建和发布软件",
"GitHub · Build and ship software on a single, collaborative platform": "GitHub · 在单一协作平台上构建和发布软件",
"Topics on GitHub · GitHub": "GitHub 上的主题",
"Code security": "代码安全",
"Deploy keys": "部署密钥",
"Actions Performance Metrics": "操作数据看板",
"Actions performance metrics": "操作数据看板",
"GitHub Sitemap · GitHub": "GitHub 网站地图",
"Code search results": "代码搜索结果",
"Enterprises": "企业版",
"Blocked users": "黑名单",
"New conversation · GitHub Copilot": "新聊天 · GitHub Copilot",
"Models · GitHub Marketplace": "模型 · GitHub 市场",
"GitHub Education": "GitHub 教育",
"GitHub Student Developer Pack - GitHub Education": "学生开发包 - GitHub 教育",
"Get your GitHub benefits - GitHub Education": "获取福利 - GitHub 教育",
"Signup to GitHub Copilot": "注册 GitHub Copilot",
"Device Activation": "设备激活",
"Spending Limit": "支付限额",
"Autolink references": "自动链接引用",
"Add autolink reference": "添加自动链接引用",
"Billing Overview": "账单概览",
"Billing Usage": "计费用量",
"Budgets": "预算",
"Code Security": "代码安全性",
"New Fine-grained Personal Access Token": "新建精细化个人访问令牌",
"Coding agent": "编程智能体",
"Get Started With GitHub Discussions": "开始使用 GitHub 讨论",
"SSH and GPG keys": "SSH 和 GPG 密钥",
"MCP Registry": "MCP 互联",
"User repositories": "用户仓库",
},
"regexp": [ // 正则翻译
[/Authorized OAuth Apps/, "授权的 OAuth 应用"],
[/Authorized GitHub Apps/, "授权的 GitHub 应用"],
[/Installed GitHub Apps/, "已安装的 GitHub 应用"],
[/Accessibility/, "无障碍"],
[/Environments/, "环境"],
[/New repository/, "新仓库"],
[/([^ ]+) \((.+)\) \/ Repositories/, "$1 / 仓库"], // github 账户名/ 成就
[/([^ ]+) \((.+)\) \/ Starred/, "$1($2) / 星标"], // github 账户名(昵称)/ 星标
[/Repositories/, "仓库"],
[/Starred/, "星标页面"],
[/starred repositories/, "星标仓库"],
[/starred topics/, "星标主题"],
[/starred/, "星标"],
[/Commits · ([^ ]+)/, "提交 · $1"],
[/New Issue/, "新建议题"],
[/Issues?/, "议题"],
[/Pull (R|r)equests?/, "拉取请求"],
[/Actions secrets · ([^ ]+)/, "操作机密 · $1"],
[/Actions settings · ([^ ]+)/, "操作设置 · $1"],
[/Actions/, "操作"],
[/Projects/, "项目"],
[/Packages?/, "软件包"],
[/Settings · Rulesets/, "设置 · 规则集"],
[/Security Overview/, "安全概述"],
[/Security Policy/, "安全政策"],
[/Security Advisories/, "安全公告"],
[/Dependabot alerts/, "Dependabot 警报"],
[/Pulse/, "统计"],
//[/Contributors to/, "贡献者 ·"],
[/Dashboard/, "仪表板"],
[/Deployments/, "部署"],
[/Community/, "社区"],
[/Traffic/, "流量"],
[/Commit Activity/, "提交活动"],
[/Code frequency/, "代码频率"],
[/Created/, "已创建"],
[/Dependencies/, "依赖项"],
[/Network Dependents/, "网络依赖者"],
[/Network Graph/, "网络图"],
[/Revisions/,"修订"],
[/GitHub Skills Quickstart Guide/, "GitHub 技能快速入门指南"],
[/Skills/, "技能"],
[/Sponsoring/, "捐助"],
[/Stargazers/, "追星者"],
[/Forks?/, "复刻"],
[/Settings · Tags · ([^ ]+)/, "设置 · 标签 · $1"],
[/Tags?/, "标签"],
[/Edit release/, "编辑发行版"],
[/Releases?/, "发行版"],
[/Draft Advisory/, "安全公告草案"],
[/Code scanning alerts/, "代码扫描警报"],
[/Repository topics/, "仓库主题"],
[/Scheduled reminders/, "定时提醒"],
[/Sponsorship Log/, "赞助日志"],
[/Sponsor @([^ ]+) on GitHub Sponsors/, "在 GitHub 上赞助 $1"],
[/OAuth applications/, "OAuth 应用"],
[/People · Pending Collaborators/, "成员 · 待定协作者"],
[/Members · People · ([^ ]+)/, "成员 · $1"],
[/People/, "成员"],
[/Outside collaborators/, "外部协作者"],
[/New Discussion/, "新讨论"],
[/Discussions/, "讨论"],
[/Workflow runs/, "工作流运行"],
[/Webhooks · Settings/, "Web 钩子 · 设置"],
[/Add a code of conduct to/, "添加代码行为准则到"],
[/Caches?/, "缓存"],
[/Runners?/, "运行器"],
[/Attestations?/, "证书"],
[/Activit(y|ies)/, "活动"],
[/Rate limit/, "速率限制"],
[/Comparing/, "比较"],
[/History for ([^ ]+)/, "$1 的历史"],
[/Compare plans for ([^ ]+)/, "为 $1 比较计划"],
[/([^ ]+)’s gists/, "$1 的代码片段"],
[/Secret scanning · ([^ ]+)/, "机密扫描 · $1"],
[/Dependabot secrets · ([^ ]+)/, "Dependabot 机密 · $1"],
[/Contributors to ([^ ]+)/, "贡献者 · $1"],
[/([^ ]+) repositories^/, "$1 的仓库"],
[/Create new page · ([^ ]+) Wiki/, "新建页面 · $1 的 Wiki"],
[/Settings · Branches · ([^ ]+)/, "设置 · 分支 · $1"],
[/Webhooks · Settings · ([^ ]+)/, "Web 钩子 · 设置 · $1"],
[/Environments · ([^ ]+)/, "环境 · $1"],
[/Branches · ([^ ]+)/, "分支 · $1"],
[/([^ ]+) · GitHub Topics/, "$1 · GitHub 主题"],
[/New release · ([^ ]+)/, "新发行版 · $1"],
[/Codespaces secrets · ([^ ]+)/, "代码空间机密 · $1"],
[/Dependabot secrets · ([^ ]+)/, "Dependabot 机密 · $1"],
[/Invitation to join ([^ ]+)/, "加入 $1 邀请"],
[/Security Managers for · ([^ ]+)/, "安全管理员 · $1"],
[/New File at \/ · ([^ ]+)/, "新建文件 · $1"],
[/Blaming ([^ ]+) at ([^ ]+) · ([^ ]+)/, "追溯 $1($2) · $3"],
[/Deleting ([^ ]+)\/([^ ]+) at ([^ ]+) · ([^ ]+)/, "删除 $3/$2 · $4"], // 简化部分内容
[/([^ ]+)'s list \/ (.+)/, "$1 的列表 / $2"],
[/([^ ]+) \((.+)\) \/ Achievements/, "$1($2) / 成就"], // github 账户名(昵称)/ 成就
[/Teams · ([^ ]+)/, "团队 · $1"],
[/Create new team · ([^ ]+)/, "新建团队 · $1"],
["_regexp_end", "end"]
],
};
I18N["zh-CN"]["public"] = { // 公共区域翻译
"static": { // 静态翻译
// 错误页面
"Find code, projects, and people on GitHub:": "在 GitHub 上查找代码、项目和人员:",
"Access has been restricted": "访问被限制",
"You have triggered a rate limit.": "您已触发速率限制。",
"Please wait a few minutes before you try again;": "请稍等几分钟再重试;",
"in some cases this may take up to an hour.": "在某些情况下,这可能最多需要一个小时。",
"No server is currently available to service your request.": "当前服务器无法为您的请求提供服务。",
"This page is taking too long to load.": "此页面加载时间过长。",
"We had issues producing the response to your request.": "我们在响应您的请求时遇到了问题。",
"Sorry about that. Please try refreshing and contact us if the problem persists.": "对此我们很抱歉。请尝试刷新,如果问题仍然存在,请联系我们。",
"Error": "错误",
"Looks like network is down!": "看起来网络未连接!",
"Contact Support": "联系 GitHub 支持",
"GitHub Status": "GitHub 状态",
// 底部红条
"You can’t perform that action at this time.": "此时无法执行该操作。",
// 速率限制 - 短时间频繁访问网页,至少包括 https://github.com/issues
"Whoa there!": "请停一下!",
"You have exceeded a secondary rate limit.": "您已经超出次要速率限制。",
"Please wait a few minutes before you try again;": "请稍等几分钟再重试;",
"in some cases this may take up to an hour.": "在某些情况下,这可能最多需要一个小时。",
// 议题、拉取请求、讨论浮动信息卡(在任一引用这些链接的页面都会出现
"You opened this issue": "您打开了这个议题",
"You opened this pull request": "您打开了这个拉取请求",
"You commented on this issue": "您对此议题发表了评论",
"You commented on and opened this issue": "您打开了这个议题并发表评论",
"You commented on this pull request": "您对此拉取请求发表了评论",
"You commented on and opened this pull request": "您打开了这个拉取请求并发表评论",
"You were mentioned on and commented on this issue": "您在此议题上被提及并发表评论",
"You were mentioned on and commented on this pull request": "您在此拉取请求上被提及并发表评论",
"You were mentioned on and opened this pull request": "您被提及并打开了此拉取请求",
"You are assigned to this pull request": "您被指派处理此拉取请求",
"You are assigned to and opened this pull request": "您打开并被指派处理此拉取请求",
"You left a review": "您已评论",
"Changes requested": "请求更改", // 拉取请求
"Review required": "请求审查", // 拉取请求
"Approved": "已批准", // 拉取请求
"replied": "已回复", // 讨论
// 顶部栏 (未登录)
"Platform": "平台",
"AI CODE CREATION": "AI 代码生成",
// Copilot
"Write better code with AI": "借助 AI 写出更好的代码",
// Spark
"Build and deploy intelligent apps": "构建和部署智能应用",
"GitHub Models": "GitHub 模型",
"Manage and compare prompts": "管理和比较提示词",
"MCP Registry": "MCP 互联",
"Integrate external tools": "集成外部工具",
"DEVELOPER WORKFLOWS": "开发者工作流",
// 操作
"Automate any workflow": "自动化任何工作流程",
// 代码空间
"Instant dev environments": "即时开发环境",
// 议题
"Plan and track work": "计划和追踪工作",
"Code Review": "代码审查",
"Manage code changes": "管理代码更改",
"APPLICATION SECURITY": "应用安全",
"GitHub Advanced Security": "GitHub 高级安全",
"Find and fix vulnerabilities": "查找并修复漏洞",
"Code security": "代码安全",
"Secure your code as you build": "边开发边保障代码安全",
"Secret protection": "密钥保护",
"Stop leaks before they start": "在泄露发生前就阻止它们",
"EXPLORE": "探索",
"Why GitHub": "为什么选择 GitHub",
"Changelog": "更新日志",
"GitHub Marketplace": "GitHub 市场",
"View all features": "查看所有功能",
"Solutions": "解决方案",
"BY COMPANY SIZE": "企业规模",
"Enterprises": "企业",
"Small and medium teams": "中小团队",
"Startups": "初创公司",
"Nonprofits": "非盈利组织",
"BY USE CASE": "使用案例",
"App Modernization": "应用现代化",
"DevSecOps": "开发安全运维",
"DevOps": "开发运维",
"CI/CD": "持续集成/持续部署",
"View all use cases": "查看所有使用案例",
"BY INDUSTRY": "工业",
"Healthcare": "健康护理",
"Financial services": "金融服务",
"Manufacturing": "制造业",
"Government": "政府",
"View all industries": "查看所有工业",
"View all solutions": "查看所有解决方案",
"Resources": "资源",
"EXPLORE BY TOPIC": "按主题探索",
"Software Development": "软件开发",
"View all topics": "查看所有主题",
"EXPLORE BY TYPE": "按类型探索",
"Customer Stories": "客户案例",
"Customer stories": "客户案例",
"Events & webinars": "活动与网络研讨会",
"Ebooks & reports": "电子书与报告",
"Business insights": "商业洞察",
"GitHub Skills": "GitHub 技能课程",
"SUPPORT & SERVICES": "支持与服务",
"Partners": "合作洽谈",
"Customer support": "客户支持",
"Community forum": "社区论坛",
"Trust center": "信任中心",
"Open Source": "开源",
"COMMUNITY": "社区",
"GitHub Sponsors": "GitHub 赞助者",
"Fund open source developers": "资助开源开发人员",
"PROGRAMS": "项目",
"Security Lab": "安全实验室",
"Maintainer Community": "维护者社区",
"Accelerator": "加速器计划",
"Archive Program": "存档计划",
"REPOSITORIES": "仓库",
"Topics": "主题",
"Trending": "趋势",
"Collections": "集合",
"Enterprise": "企业",
"ENTERPRISE SOLUTIONS": "企业级解决方案",
"Enterprise platform": "企业平台",
"AI-powered developer platform": "AI 驱动的开发者平台",
"AVAILABLE ADD-ONS": "可选附加组件",
// GitHub 高级安全
"Enterprise-grade security features": "企业级安全功能",
"Copilot for Business": "Copilot 企业版",
"Enterprise-grade AI features": "企业级 AI 功能",
"Premium Support": "高级支持",
"Enterprise-grade 24/7 support": "企业级 24 小时全天候支持",
"Pricing": "价格",
"Search": "搜索",
"Sign in": "登录",
"Sign up": "注册",
// 搜索栏
"Search or jump to...": "搜索或跳转到…",
"Type": "请键入",
"to search": "去搜索",
"Command palette": "命令面板",
"Saved queries": "已保存的搜索",
"All of GitHub": "整个 GitHub",
"Autocomplete": "自动完成",
"Search all of GitHub": "搜索整个 GitHub",
"Search in this directory": "在文件夹中搜索",
"Search in this repository": "在该仓库中搜索",
"Search in this owner": "在该所有者中搜索",
"Search in this organization": "在该组织中搜索",
"Owners": "所有者",
"Languages": "语言",
"Search syntax tips": "搜索语法提示",
"Jump to": "跳转到",
"Ask Copilot": "询问 Copilot",
"Start a new Copilot thread": "启动新的 Copilot 对话",
// 未登录时
"Enterprise": "企业",
"Security": "安全",
"Pricing": "价格",
// 左上角下拉栏 (已登录)
"Open menu": "打开菜单",
"Close menu": "关闭菜单",
"Homepage": "主页",
"Home": "主页",
"Feed": "动态",
"Issues": "议题",
"Pull requests": "拉取请求",
"Projects": "项目",
"Discussions": "讨论",
"Codespaces": "代码空间",
"Explore": "探索",
"Marketplace": "市场",
"MCP registry": "MCP 互联",
"Top repositories": "热门仓库",
"Search for repositories": "搜索仓库",
"Close search": "关闭搜索",
// 团队
"Search for teams": "搜索团队",
"Teams have moved to": "团队已迁移至",
// 顶部提示横幅
"Don't get locked out of your account.": "不要被锁定在您的账户之外。",
"Download your recovery codes": "下载您的恢复码",
"add a passkey": "添加通行密钥",
"so you don't lose access when you get a new device.": "这样您在登录新设备时就不会失去访问权限。",
"GitHub users are": "GitHub 用户", //下半句正则
"now required": "现在被要求", //下半句正则
"Enable 2FA": "启用 2FA",
"You only have a single verified email address. We recommend verifying at least one more email address to ensure you can recover your account if you lose access to your primary email.": "您只有一个经过验证的电子邮件地址。我们建议您至少再验证一个电子邮件地址,以确保在失去主邮箱访问权限时可以恢复账户。",
"Email settings": "电子邮件设置",
"Your recovery codes have not been saved in the past year. Make sure you still have them stored somewhere safe by viewing and downloading them again.": "如果您在过去一年中没有保存恢复密码。请确保将其保存在安全的地方,并再次查看和下载。",
"View recovery codes": "查看恢复码",
"You can also": "您也可以",
"view this object as it appeared at the time of the comment": "查看此对象在评论时的状态",
"Your issues": "您的议题",
"Your pull requests": "您的拉取请求",
// 右上角通知按钮提示
"You have no unread notifications": "您没有未读通知",
"You have unread notifications": "您有未读通知",
// 右上角新建按钮下拉菜单
"Create new...": "新建…",
"Create new…": "新建…",
"New repository": "新建仓库",
"Import repository": "导入仓库",
"New spark": "新建 spark",
"New agent task": "新建智能体任务",
"New codespace": "新建代码空间",
"New gist": "新建代码片段",
"New organization": "新建组织",
"New project": "新建项目",
"This organization": "本组织", // 组织
"New team": "新建团队", // 组织
// 新建议题 对话框
"Create new issue": "新建议题",
"Copy link": "复制链接",
"Templates and forms": "模板和表单",
"Blank issue": "空白议题",
"Create a new issue from scratch": "从头开始创建新议题",
// 右上角 Copilot 下拉菜单
"Agents":"智能体",
"Chat with Copilot": "与 Copilot 聊天",
"Learn more about Copilot coding agent": "了解有关 Copilot 编程智能体的更多信息",
"Start a new task with Copilot": "使用 Copilot 启动新任务",
"Describe a coding task to work on": "描述要完成的编程任务",
"Open Copilot…": "打开 Copilot…",
"Start a pull request": "创建拉取请求",
"New conversation in": "新聊天",
"New conversation": "新聊天",
"Assistive": "小窗",
"Spaces": "空间",
"Immersive": "全屏",
"Download for": "下载插件",
"Select a branch": "选择分支",
"Find a branch...": "查找分支…",
"Create a custom agent": "创建自定义智能体",
"Navigate to Copilot": "导航到 Copilot",
"Open agents panel": "打开智能体面板",
"Start a task with Copilot coding agent": "使用 Copilot 编程智能体开始任务",
"Describe your task in natural language. Copilot will work in the background and open a pull request for your review.": "请用自然语言描述您的任务。Copilot 会在后台工作,并创建一个拉取请求供您审核。",
"Agent tasks": "智能体任务",
"Switch branches": "切换分支",
"Filter branches": "查找分支",
"default": "默认",
"Recent tasks": "近期任务",
// 右上角个人图标下拉菜单
"Open user navigation menu": "打开用户导航菜单",
"Account switcher": "账户切换",
"Add account": "添加账户",
"Switch account": "切换账户",
"Sign out...": "登出…",
"Set status": "状态设置",
"Profile": "个人资料",
"Gists": "代码片段",
"Settings": "设置",
"Copilot settings": "Copilot 设置",
"Feature preview": "功能预览",
"Feature Preview": "功能预览",
"Get early access to new features and give feedback": "测试新功能并提交反馈",
"Help us improve this and make your experience even better.": "帮我们改进此功能,提升您的体验。",
"On": "开",
"Off": "关",
// 对话框
"Feature preview dialog": "功能预览对话框",
"Enable": "启用",
"Enabled": "启用",
"Disable": "禁用",
"Disabled": "禁用",
"Documentation": "文档",
"Colorblind themes": "色盲主题",
"Varying by gender and geography, color blindness can affect on average 8% of men and up to 0.5% of women. Our previous colorblind theme has been split into two new themes:": "色盲会因性别和地域的不同而有所不同,平均而言,色盲会影响约 8% 的男性和约 0.5% 的女性。我们之前的色盲主题被分为两个新主题:",
"Light/dark Protanopia & Deuteranopia for red/green color blindness.": "明/暗 - 红绿色盲主题适用于红绿色盲。",
"Light/dark Tritanopia for blue/yellow color blindness.": "明/暗 - 蓝色盲主题适用于蓝黄色盲。",
"Command Palette": "命令面板",
"Quickly navigate and jump between your organizations or repositories and search recent issues, pull requests, projects and more with the new command palette. You can also execute time saving commands all without lifting your fingers off the keyboard!": "使用新的命令面板,可以快速导航并跳转到您所在的组织或仓库,并搜索最近的议题、拉取请求、项目等等。您还可以执行节省时间的命令,而无需将手指从键盘上移开!",
"To open the command palette:": "打开命令面板:",
"other:": "其他:",
"Organization Custom Instructions": "组织自定义指令",
"Organization administrators can apply custom instructions across all Copilot chats in github.com.": "组织管理员可以在 GitHub.com 的所有 Copilot 聊天中应用自定义指令。",
"New Dashboard Experience": "新仪表板体验",
"The updated home dashboard introduces enhanced agent workflows, making it easier to create and manage agent sessions, issues, and pull requests directly from your personalized dashboard. Once enabled, please refresh to see the changes.": "更新后的主页仪表板引入了增强的智能体工作流,使您可以更轻松地直接从个性化仪表板创建和管理智能体会话、议题和拉取请求。启用后,请刷新以查看更改。",
"Rich Jupyter Notebook Diffs": "Jupyter Notebook 的丰富差异视图",
"Enables rich diffs of Jupyter Notebooks in pull requests": "在拉取请求中启用 Jupyter Notebook 的丰富差异视图",
"Note: commenting on rich diff views of notebooks is not yet supported": "注意:尚不支持对 Jupyter Notebook 的丰富差异视图进行评论",
"Semantic issue search": "语义议题搜索",
"Find issues using the new semantic search. Enter natural language queries on a repo’s Issues page to discover relevant, semantically-indexed results. You can also combine filters and keywords for traditional searches.": "使用新的语义搜索查找问题。在存储库的问题页面上输入自然语言查询,以发现相关的语义索引结果。您还可以结合过滤器和关键字进行传统搜索。",
"New Files Changed Experience": "新版文件更改体验",
"Feature enabling the new Files Changed Page": "启用新版更改的文件页",
"New Files Changed Perf Experiment": "新版更改的文件性能优化",
"Performance improvement for reviewing large pull requests in the New Files Changed experience. When enabled, the new experience uses virtualization to reduces the number of DOM elements and event listeners the browser has to manage. This can significantly improve memory utilization and the responsiveness of the page.": "这项性能优化针对“新版文件更改体验”中审查大型拉取请求的场景。启用后,新体验将采用虚拟化技术,减少浏览器需要管理的 DOM 元素数量和事件监听器数量,从而显著改善内存占用并提升页面响应速度。",
"Note: this features only works when the New Files Changed Experience feature preview is enabled.": "注意:此功能仅在启用“新版文件更改体验”功能预览时才生效。",
"Slash Commands": "斜杠命令",
"Slash commands make it easier to type more complex Markdown, such as tables, tasklists, and code blocks.": "斜线命令可以让您更轻松地输入更复杂的 Markdown,如表格、任务列表和代码块。",
"Simply type": "只需在议题、拉取请求和讨论中键入",
"on Issues, PRs and Discussions to check out a list of available commands!": ",即可查看可用命令的列表!",
"Feature disabled.": "功能已禁用。",
"Please": "请",
"give feedback": "提交反馈",
"so we can improve it!": "以便我们加以改进!",
"Semantic issue search": "语义议题搜索",
"Find issues using the new semantic search. Enter natural language queries on a repo’s Issues page to discover relevant, semantically-indexed results. You can also combine filters and keywords for traditional searches.": "使用新的语义议题搜索功能查找议题。在仓库的议题页面输入自然语言查询,即可发现语义索引的相关结果。您还可以结合过滤器和关键词进行传统搜索。",
// 出错提示
"Sorry, something went wrong and we were not able to fetch the feature previews": "对不起,出了点问题,我们无法获取功能预览",
"Changes saved! Please": "更改已保存!请",
"reload": "刷新",
"the page to view the changes.": "页面以查看更改。",
"Appearance": "外观",
"Accessibility": "无障碍",
"Upgrade": "升级",
"Try Enterprise": "试用企业版",
"Free": "免费",
"Sign out": "退出",
// 状态设置对话框
// 出现位置: 个人资料页, Gist 个人主页, 仓库页右上角个人图标下拉菜单
"Edit status": "编辑状态",
"What's happening?": "发生了什么?",
"Suggestions": "建议",
"On vacation": "在度假",
"Out sick": "生病",
"Working from home": "在家工作",
"Focusing": "专注中",
"Busy": "繁忙中",
"When others mention you, assign you, or request your review, GitHub will let them know that you have limited availability.": "当其他人提及您、指派您或请求您进行评论时,GitHub 会告知他们您很忙。",
"I may be slow to respond.": "我的回复可能比较慢。",
"Clear status": "清除状态",
"Never": "永不",
"in 30 minutes": "30 分钟",
"in 1 hour": "1 小时",
"in 4 hours": "4 小时",
"after today": "今日之后",
"after this week": "本周之后",
"after a month": "本月之后",
"How long until this status will automatically clear.": "多久后状态自动清除。",
"Visible to": "可见",
"Everyone": "任何人",
"Scope status visibility to a single organization.": "将状态可视范围扩大到单个组织。",
"Filter emoji": "筛选表情符号",
"Search results": "筛选结果",
// 底部条
"Terms": "服务条款",
"Privacy": "隐私",
"Security": "安全",
"Status": "状态",
"Community": "社区",
"Docs": "文档",
"Contact": "联系我们",
"Manage cookies": "管理 Cookies",
"Do not share my personal information": "请勿分享我的个人信息",
// 左侧栏底部条
"About": "关于",
"Blog": "博客",
"Manage Cookies": "管理 Cookies",
// 其他
"Contact GitHub": "联系 GitHub",
"Training": "培训",
// 描述、评论编辑器翻译
"Add a comment": "添加评论",
"Add a body": "添加内容",
"Write": "撰写",
"Use Markdown to format your comment": "使用 Markdown 格式编写评论",
"Add your comment here...": "在此添加您的评论…",
"Add your answer here...": "在此添加您的答复…", // 具体讨论页
"Text field is empty": "文本框为空",
"Preview": "预览",
"Nothing to preview": "没有可预览的内容。",
"This file is empty.": "这是一个空文件。",
"Try again with a file that’s not empty.": "使用非空文件重试。",
"Leave a comment": "发表评论",
"Write a reply": "发表回复", // 具体讨论页
"Write a comment": "发表评论", // 具体讨论页
"Suggest an answer": "提出答复", // 具体讨论页
"Ask a question, start a conversation, or make an announcement": "提出问题、开始讨论或发布公告", // 新建讨论
"Nothing to preview": "没有什么可预览",
"This repository has been archived.": "此仓库已存档。", // 已存档仓库 某个提交的评论框
"Add review comment": "添加审查意见", // 具体拉取请求 文件审查意见
"Failed to save comment: Body can't be blank": "保存评论失败:正文内容不能为空", // 具体拉取请求 文件审查意见
"Start a review": "开始审查", // 具体拉取请求 文件审查意见
// 取消按钮 提醒信息
"Are you sure you want to discard your unsaved changes?": "您确定要放弃未保存的更改吗?",
"Apply Suggestion": "添加建议",
"Add a title": "添加标题",
"Title": "标题",
"Add a description": "添加描述",
"Add your description here...": "在此添加您的描述…",
"Add an optional description...": "添加可选描述…",
"There was an error trying to commit changes: Failed to submit suggested changes": "提交更改时出错:提交建议更改失败",
// 网络错误
"There was a problem saving your comment. Please try again.": "保存您的评论时出现问题。请再试一次。",
// 拉取请求 代码审查 回复对话框
"Add a suggestion, <Ctrl+g>": "添加建议, <Ctrl+g>",
"Heading": "标题",
"Bold": "粗体",
"Italic": "斜体",
"Quote": "摘引",
"Link": "链接",
"Menu": "菜单", // Android UA 下出现
"Numbered list": "有序列表",
"Unordered list": "无序列表",
"Task list": "任务列表",
"Attach files": "附件",
"Mention": "提及",
"Reference": "引用",
"Saved replies": "快速回复",
"Select a reply": "选择回复",
"Create a new saved reply": "创建新的快速回复",
"Slash commands": "斜杠命令",
"Alerts": "警示",
"Add a markdown alert to emphasize important information": "添加 MarkDown 警示标记,强调重要信息",
"Code block": "代码块",
"Insert a code block formatted for a chosen syntax": "插入针对所选语法格式化的代码块",
"Details": "详细信息",
"Add a details tag to hide content behind a visible heading": "添加详情标签,将内容隐藏在可见标题后面",
// "快速回复": "",
"Insert one of your saved replies": "插入您快速回复",
"Table": "表格",
"Add markdown table": "添加 Markdown 表格",
"Templates": "模板",
"Insert one of your issue templates": "插入您的议题模板",
"Slash": "斜杠",
// 代码块
"No Syntax": "无语法",
// 快速回复
"No saved replies": "尚无快速回复",
"You can create one in your": "您可以创建一个在您的",
"settings": "设置",
// 表格
"Columns": "列",
"1 column": "1 列",
"2 columns": "2 列",
"3 columns": "3 列",
"4 columns": "4 列",
"5 columns": "5 列",
"Rows": "行",
"1 row": "1 行",
"2 rows": "2 行",
"3 rows": "3 行",
"4 rows": "4 行",
"5 rows": "5 行",
// 模板
"No issue templates": "尚无议题模板",
"Learn more about": "了解更多关于",
"issue templates": "议题模板",
// 小屏 插入链接 对话框
"Insert Link": "插入链接",
"Link Text": "链接文本",
"Add": "添加",
"Attach files by": "通过",
"dragging & dropping,": "拖放,",
"selecting or pasting them.": "选择或粘贴来附加文件。",
"Markdown is supported": "支持 Markdown 语法",
"Styling with Markdown is supported.": "支持 Markdown 语法。",
"Paste, drop, or click to add files": "粘贴、拖放或点击添加文件",
"Write with Copilot": "使用 Copilot 撰写",
"Type your description here…": "在此输入描述…",
"Assignee": "受理人",
"Label": "标签",
"Create more": "添加更多",
"Start typing to create an item, or type # to select a repository": "开始输入以创建项目,或输入 # 选择仓库",
"Uploading your files…": "正在上传您的文件…",
// 文件过大
"This video is too big.": "该影片过大。",
"Try again": "请上传",
"with a file size less than 10MB.": "体积小于10MB的文件",
"Close issue": "关闭议题", // issue页 评论框
"Close as completed": "完成后关闭",
"Done, closed, fixed, resolved": "已完成、已关闭、已修复、已解决",
"Close as not planned": "非计划中关闭",
"Won't fix, can't repro, duplicate, stale": "不会修复,无法重现,重复,陈旧",
"Won't fix, can't repro, stale": "不会修复,无法重现,陈旧", // 新版议题页
// 因重复而关闭(新版议题页)
"Duplicate of another issue": "重复议题",
"Close with comment": "评论并关闭", // 议题/拉取请求 评论框
"Close pull request": "关闭拉取请求", // 拉取请求页 评论框
"Reopen discussion": "重新打开讨论", // discussion页 评论框
"Close discussion": "关闭讨论", // discussion页 评论框
"Close as resolved": "因解决而关闭",
"The discussion has been resolved": "讨论已解决",
"Close as outdated": "因过时而关闭",
"The discussion is no longer relevant": "讨论不再相关",
"Close as duplicate": "因重复而关闭",
"The discussion is a duplicate of another": "讨论与另一个讨论重复",
"Comment": "评论",
"comment": "评论",
"Submit new issue": "提交新议题",
"Comment on this commit": "评论",
"Close and comment": "提交并关闭",
"Reopen and comment": "提交并重新打开",
"Reopen issue": "重新打开议题", // 具体议题
"Reopen with comment": "重新打开评论", // 具体议题
"Reopen pull request": "重新打开拉取请求", //具体拉取请求
"Add single comment": "评论", // 具体提交页 进行某条代码评论
"Reply": "回复", // 具体讨论页
"Answer": "答复", // 具体讨论页
"Start discussion": "开始讨论", // 新建讨论
"discussion": "讨论", // 新建讨论
"discussions": "讨论", // 新建讨论
"Spammy": "仅自己可见",
"This user is marked as spammy. Their comments will onlyshow in staff mode.": "该用户已被封号,评论仅自己可见。",
// 添加到清单
"Add to list": "添加到清单",
"You don't have any lists yet.": "您尚无任何清单。",
"Lists": "清单",
"Search lists": "搜索清单",
"🔮 Future ideas": "🔮 超前想法",
"🚀 My stack": "🚀 技术栈",
"✨ Inspiration": "✨ 灵感",
"No results found.": "未找到结果。",
"Create list": "创建清单",
"Create a list to organize your starred repositories.": "创建一个清单来组织您的星标仓库。",
"⭐️ Name this list": "⭐️ 清单名称",
"Write a description": "简单描述",
// 小贴士
"type": "输入",
"to add emoji to the name or description.": "在名称或描述中添加表情符号",
"Lists are currently in beta.": "清单目前处于测试阶段。",
"Share feedback and report bugs.": "分享反馈意见和报告错误。",
"Creating...": "创建中…",
// 私有
"Enabling this makes the list visible only to you.": "启用此选项将使该列表仅对您可见。",
// 全局快捷键对话框 - 快捷键 ? 打开
"Keyboard shortcuts": "键盘快捷键",
"Site-wide shortcuts": "全站快捷键",
"Open command palette": "打开命令面板",
"Open command palette in command mode": "在命令模式下打开命令面板",
"Focus search bar": "聚焦搜索栏", // gist
"Open search bar": "打开搜索栏",
"Go to notifications": "跳转到通知",
"Go to dashboard": "跳转到仪表板",
"Go to your issues": "跳转到议题",
"Go to your pull requests": "跳转到拉取请求",
"Bring up this help dialog": "弹出这个帮助对话框",
"Move selection down": "向下移动选择",
"Move selection up": "向上移动选择",
"Toggle selection": "切换选择",
"Open selection": "打开选择",
"Expand and move focus into focused link's hovercard": "展开并将焦点移至聚焦链接的悬浮卡",
"View all keyboard shortcuts": "查看所有键盘快捷键",
// 命令面板 - ctrl k 或 ctrl alt k 打开
"Clear Command Palette": "清除命令面板",
"Tip:": "小贴士:",
"Go to your accessibility settings to change your keyboard shortcuts": "跳转到您的无障碍设置,以更改您的键盘快捷键",
"to search discussions": "搜索讨论", // 键入 #
"to search issues": "搜索议题", // 键入 #
"to search pull requests": "搜索拉取请求", // 键入 #
"to search projects": "搜索项目", // 键入 !
"to search people and organizations": "搜索成员和组织", // 键入 @
"to search teams": "搜索团队", // 键入 @
"to activate command mode": "激活命令模式", // 键入 >
"Type is:issue to filter to issues": "键入 is:issue 以筛选议题",
"Type is:pr to filter to pull requests": "键入 is:pr 以筛选拉取请求",
"Type is:open to filter to open content": "键入 is:open 以筛选打开的内容",
"Type author:@me to search your content": "键入 author:@me 以筛选您的内容",
"for help and tips": "寻求帮助和提示", // 键入 ?
"Pages": "GitHub Pages",
"Dashboard": "仪表板",
"Notifications": "通知",
// "Discussions": "讨论",
"Actions": "操作",
"Insights": "洞察",
"Organizations": "组织",
"Repositories": "仓库",
"Packages": "软件包",
"Users": "用户",
"to jump to": "去跳转",
"Top result": "最佳结果",
"No results matched your search": "没有与您的搜索相符的结果",
// [/in ([\w]+/[\w]+)/, "在 $1"],
// # 模式
"Search issues and pull requests": "搜索议题和拉取请求",
"Search issues, pull requests, discussions, and projects": "搜索议题、拉取请求、讨论和项目",
"Issues, pull requests, and discussions": "议题、拉取请求和讨论",
// ! 模式
"Search projects": "搜索项目",
// @ 模式
"Search or jump to a repository": "搜索或跳转到仓库",
"Search or jump to a user, organization, or repository": "搜索或跳转到用户、组织或仓库",
// / 文件模式
"Search files": "搜索文件",
"Files": "文件",
// > 命令模式
"Run a command": "运行命令",
"Run command": "运行命令",
"Commands": "命令",
"Global Commands": "全局命令",
"Type > to filter": "键入 > 去筛选",
"– New repository": "- 新建仓库",
"– Import repository": "- 导入仓库",
"– New project": "- 新建项目",
"– New discussion": "- 新建讨论",
"– New organization": "- 新建组织",
"– New gist": "- 新建代码片段",
"– New issue": "- 新建议题",
"– New file": "- 新建文件",
"– Change tab size rendering": "- 切换制表符尺寸",
"– Switch theme": "- 切换主题",
"New issue": "新建议题",
"New discussion": "新建讨论",
"New file": "新建文件",
"Change tab size rendering": "切换制表符尺寸",
"Change tab size r...": "切换制表符尺寸",
"2 spaces": "2 个空格",
"3 spaces": "3 个空格",
"4 spaces": "4 个空格",
"5 spaces": "5 个空格",
"6 spaces": "6 个空格",
"7 spaces": "7 个空格",
"8 spaces": "8 个空格",
"9 spaces": "9 个空格",
"10 spaces": "10 个空格",
"12 spaces": "12 个空格",
"Switch theme": "切换主题",
"Default dark": "暗 - 默认",
"Default light": "亮 - 默认",
"Dark dimmed": "昏暗",
"Switch theme to dark high contrast": "切换主题为 暗 - 高对比",
"Sync with system settings": "与系统设置同步",
// ? 模式
"Modes": "模式",
"Search for": "搜索",
"across all of GitHub": "在整个 GitHub 中",
"issues, pull requests, discussions,": "议题、拉取请求、讨论",
"organizations, repositories,": "组织、仓库",
"projects": "项目",
"files": "文件",
"issues": "议题",
"pull requests": "拉取请求",
"organizations": "组织",
"repositories": "仓库",
"users": "用户",
"Activate": "激活",
"command mode": "命令模式",
"Use filters in issues, pull requests, discussions, and projects": "在议题、拉取请求、讨论和项目中使用过滤器",
"Search your issues, pull requests, and discussions": "搜索您的议题、拉取请求和讨论",
"Filter to pull requests": "筛选拉取请求",
"Filter to issues": "筛选议题",
"Filter to discussions": "筛选讨论",
"Filter to projects": "筛选项目",
"Filter to open issues, pull requests, and discussions": "筛选打开的议题、拉取请求和讨论",
// 议题页面
"Edit issue title": "编辑议题标题",
"Edit issue body": "编辑议题内容",
"Transfer issue…": "转移议题…",
"Delete issue…": "删除议题…",
// 公共词 高频词
"Follow": "关注",
"Unfollow": "取消关注",
"Star": "星标",
"Stars": "星标",
"Unstar": "已加星标",
"Starred": "已加星标",
"Fork": "复刻",
"Save": "保存",
"Saving…": "保存中…",
"Saving...": "保存中…",
"Save changes": "保存更改",
"Update": "更新",
"Updating": "更新中",
"Updating…": "更新中…",
"Updating...": "更新中…",
"Delete": "删除",
"Cancel": "取消",
"Edit": "编辑",
"Added on": "添加于",
"Loading": "加载中",
"Loading…": "载入中…",
"Loading...": "载入中…",
"Copy": "复制",
"Copied!": "✅ 复制成功!",
"Copy to clipboard": "复制到剪切板",
"Give feedback": "反馈",
"Give us your feedback": "向我们提供反馈意见",
"Download": "下载",
"View": "查看",
"Create": "创建",
"Close": "关闭",
"Closed": "已关闭",
"Open": "打开",
"Reopen": "重新打开",
"and": "和",
", and": ",和",
"or": "或",
", or": ",或",
"to": "到",
"by": "由",
"on": "于",
"Use": "使用",
"New": "新",
"Learn more": "了解更多",
"Learn More": "了解更多",
"Learn more.": "了解更多。",
",": ",",
".": "。",
"Prev": "上一页",
"Previous": "上一页",
"Next": "下一页",
"Less": "更少",
"More": "更多",
"Show more": "显示更多",
"Show less": "显示更少",
"Load more…": "载入更多…",
"Loading more…": "载入更多…",
"Loading more...": "载入更多…",
// 名词
"Public": "公共",
"Private": "私有",
"Public archive": "公共存档",
"Private archive": "私有存档",
"Public template": "公共模板",
"Public mirror": "公共镜像",
"Code": "代码",
"Overview": "概况",
"Followers": "关注者",
"Collaborators": "协作者",
"collaborators": "协作者",
"Sponsors": "赞助者",
"Sponsoring": "赞助者",
"commit": "提交",
"commits": "提交",
"Organization": "组织",
"People": "成员",
"Teams": "团队",
// 相对时间
"just now": "刚刚",
"now": "当前",
"yesterday": "昨天",
"last month": "上个月",
// 验证标记浮动信息
"This commit was created on GitHub.com and signed with GitHub’s": "此提交在 GitHub.com 上创建并签名,使用 GitHub 的",
"This commit was created on GitHub.com and signed with GitHub's": "此提交在 GitHub.com 上创建并签名,使用 GitHub 的",
"This commit was created on GitHub.com and signed with GitHub’s verified signature": "此提交在 GitHub.com 上创建并签名,使用 GitHub 的",
"This commit was signed with the committer's": "此提交已签名,使用提交者的",
"This tag was signed with the committer's": "此标签已签署,使用提交者的", // /<user-name>/<repo-name>/releases
"This commit was signed with the committer’s": "此提交已签名,使用提交者的",
"This tag was signed with the committer’s": "此标签已签署,使用提交者的", //
"This commit is signed with the committer’s": "此提交已签名,使用提交者的",
"’s contribution has been verified via GPG key.": "的贡献已通过 GPG 密钥验证。",
"verified signature": "已验证签名",
"The key has expired": "密钥已过期",
"This commit is not signed, but one or more authors requires that any commit attributed to them is signed.": "此提交未签名,但一位或多位作者要求对归属于他们的任何提交进行签名。",
"We had a problem verifying this signature. Please try again later.": "我们在验证此签名时遇到问题。请稍后再试。",
"We were unable to verify this signature.": "我们无法验证此签名。",
"This user has not yet uploaded their public signing key.": "此用户尚未上传其公共签名密钥。",
"GPG key ID:": "GPG 密钥 ID:",
"GPG Key ID:": "GPG 密钥 ID:",
"SSH key Fingerprint:": "SSH 密钥指纹:",
"SSH Key Fingerprint:": "SSH 密钥指纹:",
"Learn about vigilant mode": "了解警戒模式",
"The email in this signature doesn’t match the committer email.": "此签名中的电子邮箱与提交者的电子邮箱不相符。",
"No user is associated with the committer email.": "提交者的电子邮箱未与用户相关联。",
"Verified": "已验证",
"Expired": "已过期",
"Partially verified": "部分验证",
"We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.": "我们无法验证来自共同作者的签名,并且此提交的某些共同作者要求对其提交进行签名。",
"Unverified": "未验证",
"Upload your public signing GPG key": "上传您的公共签名 GPG 密钥",
"to verify your signature.": "以验证您的签名。",
// 邮箱验证提示
"Please verify your email address to access all of GitHub's features.": "请验证您的电子邮箱地址以便开启所有 GitHub 功能。",
"Configure email settings": "修改电子邮箱设置",
"Your email was verified.": "您的电子邮箱地址验证成功!",
// 标签提示
"New feature or request": "新功能或要求",
// 更换新手机, 要求重新下载恢复码的全局提醒
"Don't get locked out - if you get a new phone this season, be sure to transfer your authenticator app data to the new phone. Enable cloud back up if your authenticator app supports it and consider": "不要被锁在门外——如果您在这个季节买了一部新手机,请务必将您的身份验证器应用数据传输到新手机。如果您的身份验证器应用支持云备份,请启用它并考虑",
"redownloading your recovery codes": "重新下载您的恢复码",
", just to be safe.": ",以确保安全。",
// 刷新会话提示条
"You signed in with another tab or window.": "您使用其他标签页或窗口登录。",
"Reload": "重新加载",
"to refresh your session.": "以刷新您的会话",
// Cookie 设置
"Manage cookie preferences": "管理 Cookie 偏好设置",
"Most GitHub websites use cookies. Cookies are small text files placed on your device to store data so web servers can use it later. GitHub and our third-party partners use cookies to remember your preferences and settings, help you sign in, show you personalized ads, and analyze how well our websites are working. For more info, see the Cookies and similar technologies section of the": "大多数 GitHub 网站都使用 Cookie。Cookie 是保存在您的设备上的小型文本文件,用于存储数据,以便 Web 服务器稍后使用。GitHub 和我们的第三方合作伙伴使用 Cookie 来记住您的偏好和设置、帮助您登录、向您显示个性化广告以及分析我们网站的运行情况。有关更多信息,请参阅隐私声明中的",
"Privacy Statement": "Cookie 和类似技术部分",
"Accept": "接受",
"Reject": "拒绝",
"Reset all": "重置全部",
"Required": "必要的",
"GitHub uses required cookies to perform essential website functions and to provide the services. For example, cookies are used to log you in, save your language preferences, provide a shopping cart experience, improve performance, route traffic between web servers, detect the size of your screen, determine page load times, improve user experience, and for audience measurement. These cookies are necessary for our websites to work.": "GitHub 使用必需的 Cookie 来执行基本网站功能并提供服务。例如,Cookie 用于登录、保存您的语言偏好、提供购物车体验、提高性能、在 Web 服务器之间路由流量、检测屏幕大小、确定页面加载时间、改善用户体验以及用于受众测量。这些 Cookie 是我们网站正常运行所必需的。",
"Analytics": "分析",
"We allow third parties to use analytics cookies to understand how you use our websites so we can make them better. For example, cookies are used to gather information about the pages you visit and how many clicks you need to accomplish a task. We also use some analytics cookies to provide personalized advertising.": "我们允许第三方使用分析性 Cookie 来了解您如何使用我们的网站,以便我们改进网站。例如,Cookie 用于收集有关您访问的页面以及完成任务所需的点击次数的信息。我们还使用一些分析性 Cookie 来提供个性化广告。",
"Social Media": "社交媒体",
"GitHub and third parties use social media cookies to show you ads and content based on your social media profiles and activity on GitHub's websites. This ensures that the ads and content you see on our websites and on social media will better reflect your interests. This also enables third parties to develop and improve their products, which they may use on websites that are not owned or operated by GitHub.": "GitHub 和第三方使用社交媒体 Cookie 根据您的社交媒体个人资料和 GitHub 网站上的活动向您显示广告和内容。这可以确保您在我们的网站和社交媒体上看到的广告和内容将更好地反映您的兴趣。还使第三方能够开发和改进它们的产品,它们可能会在不由 GitHub 拥有或运营的网站上使用这些产品。",
"Advertising": "广告",
"In addition, GitHub and third parties use advertising cookies to show you new ads based on ads you've already seen. Cookies also track which ads you click or purchases you make after clicking an ad. This is done to show you ads that are more relevant to you and for business purposes with our advertising partners. For example, cookies are used to detect when you click an ad and to show you ads based on your social media interests and website browsing history.": "此外,GitHub 和第三方使用广告 Cookie 根据您已经看过的广告向您显示新广告。Cookie 还会跟踪您点击的广告或点击广告后进行的购买。这样做是为了向您显示与您更相关的广告,并用于与我们的广告合作伙伴开展业务。例如,Cookie 用于检测您何时点击广告,并根据您的社交媒体兴趣和网站浏览历史记录向您显示广告。",
// 日历
"Jan": "1月",
"Feb": "2月",
"Mar": "3月",
"Apr": "4月",
"May": "5月",
"Jun": "6月",
"Jul": "7月",
"Aug": "8月",
"Sep": "9月",
"Oct": "10月",
"Nov": "11月",
"Dec": "12月",
"January" : "1月",
"February" : "2月",
"March" : "3月",
"April" : "4月",
"June" : "6月",
"July" : "7月",
"August" : "8月",
"September" : "9月",
"October" : "10月",
"November" : "11月",
"December" : "12月",
"Sun" : "周日",
"Mon" : "周一",
"Tue" : "周二",
"Wed" : "周三",
"Thu" : "周四",
"Fri" : "周五",
"Sat" : "周六",
// 语言名称(仅适配热门语言
"Arabic": "阿拉伯文",
"Chinese": "中文",
"English": "英文",
"French": "法文",
"German": "德文",
"Greek, Modern": "希腊文",
"Italian": "意大利文",
"Japanese": "日文",
"Korean": "韩文",
"Latin": "拉丁文",
"Portuguese": "葡萄牙文",
"Russian": "俄文",
"Sichuan Yi, Nuosu": "彝文", // 存疑
"Spanish, Castilian": "西班牙文",
"Thai": "泰文",
"Tibetan": "藏文",
"Vietnamese": "越南文",
"Zhuang, Chuang": "壮文", // 存疑
// Copilot 窗口
// 顶部
"All repositories": "所有仓库",
"Back": "返回",
"Conversation options": "选项",
"Enable custom instructions": "启用个人指导",
"Disable custom instructions": "禁用个人指导",
"Personal instructions": "个人指导",
"Set up Copilot to align with your workflows and preferences. These instructions will only impact your personal conversation.": "设置 Copilot 以符合您的工作流程和偏好。这些指导仅影响您的个人对话。",
"Your instructions": "您的指导",
"Role": "角色",
"Communication": "通信",
"Code preferences": "代码偏好",
"characters": "字符",
"Delete conversation": "删除对话",
"View all conversations": "查看全部对话",
"There are no conversations at the moment.":"目前没有对话。",
"Start a new conversation":"开始新对话",
"Active conversations": "最近对话",
"All conversations": "所有对话",
// 删除
"Are you sure? This can’t be undone.": "您确定吗?此操作无法撤销。",
"Continue in immersive": "全屏对话",
"Close chat": "关闭",
"public": "公共",
"repository": "仓库",
"Ask Copilot": "询问 Copilot",
"Select a repository to get started. Ask questions about your codebase to get answers fast and learn your way around.": "选择一个仓库即可开始。询问有关代码库的问题,以快速获得答案并了解相关知识。",
"uses AI. Check for mistakes.": "使用 AI。请检查错误。",
"Search repositories to chat about": "搜索要讨论的仓库",
"Recent repositories": "最近访问",
"General purpose chat": "普通对话",
"Loading Conversation": "加载中",
"Chatting about code and programming": "讨论关于代码和编程",
// 对话框
"Ask about the repository:": "询问关于此仓库的信息:",
"Ask about the tree comparison:": "询问关于比较的信息:",
"How can I help you?": "有什么可以帮忙?",
"Attach": "附件",
"Attach files or symbols": "附加文件或符号",
"Fetching files, folders, and symbols…": "正在获取文件(夹)和符号…",
"Add an extension": "添加扩展",
//"Files and symbols…": "文件和符号…",
"Files, folders, and symbols": "文件(夹)和符号…",
"First attach a repository": "请先附加仓库",
"Select files, folders, and symbols": "选择文件(夹)和符号",
"Choose a repository to browse for files, folders, and symbols.": "选择仓库以浏览文件(夹)和符号。",
//"Attach files and symbols": "附加文件和符号",
//"Choose which files and symbols you want to chat about. Use fewer references for more accurate responses.": "选择您想要讨论的文件和符号。使用较少的参考资料即可获得更准确的回复。",
"Choose what you want to chat about. Use fewer references for more accurate responses.": "选择您想要讨论的内容。使用较少的参考资料即可获得更准确的回复。",
"Search files and symbols": "搜索文件和符号",
"Current attachments": "当前附件",
"Symbols": "符号",
"Repository…": "仓库…",
"Attach a repository": "附加仓库",
"Search repositories": "搜索仓库",
"Fetching repositories…": "正在获取仓库",
"Repository": "仓库",
"Repositories…": "仓库…",
"Select a repository": "选择仓库",
"Select repositories": "选择仓库",
"Choose repositories to chat about.": "选择以聊天",
"Choose a repository to chat about.": "选择以聊天",
"Remove topic": "移除主题",
"Add repositories, files, and spaces": "添加仓库、文件和空间",
"Upload from computer": "上传本机文件",
"Files and folders": "文件和文件夹",
"Spaces…": "空间…",
"Create your first space": "创建您的第一个空间",
"Extensions…": "扩展…",
"Extensions": "扩展",
"Chat with your favorite tools and services": "使用您最喜欢的工具和服务聊天",
"Browse the marketplace to find extensions for the tools and services you rely on": "浏览市场以查找您所依赖的工具和服务的扩展",
"Browse marketplace": "前往市场",
"Add attachment": "添加附件",
"Remove topic": "移除主题",
"Convert to file": "转成文件",
"Remove": "移除",
"Attachments options": "附件选项",
"Remove attachments": "移除附件",
"Send now": "发送",
"Stop response": "停止响应",
// 反馈
"Rate your experience": "反馈",
// 四个表情
"Love it": "优",
"It’s ok": "良",
"Not great": "中",
"Hate it": "差",
"Tell us what you liked or what could be better": "告诉我们您喜欢什么或可以改进的地方",
// 响应状态
"Copilot is responding…": "Copilot 响应中…",
"creating plan": "创建计划中",
"getting data": "获取数据中",
"Using the GitHub API to search pull requests": "正在使用 GitHub API 搜索拉取请求",
"Using the GitHub API to get latest release": "正在使用 GitHub API 获取最新发行版",
"Copilot used the": "Copilot 已使用",
"Issue API": "议题 API",
"tool": "工具",
// 聊天内容 - 创建拉取请求
"Are you sure?": "您确定吗?",
"Are you sure you wish to execute the \"Create pull request with Copilot coding agent\" tool?": "您确定要执行“使用 Copilot 编程智能体创建拉取请求”工具吗?",
"Allow": "允许",
"Dismiss": "拒绝",
"accepted": "允许",
"the action": "此操作",
// 引用
"More reference options": "更多引用选项",
"Attach to chat": "附加至聊天",
"Raw": "源码",
"Show content": "显示内容",
"above": "上方",
"below": "下方",
"Reference details": "引用信息",
"contributor": "贡献者",
"contributors": "贡献者",
"updated": "更新于",
// 报错
"Copilot was interrupted before it could finish this message.": "Copilot 在完成此消息之前被中断。",
"Please don’t include sensitive, confidential, or personal data. Your anonymous feedback helps us improve our services in line with our": "请不要包含敏感、机密或个人数据。您的匿名反馈有助于我们改进服务,根据",
"Privacy Policy": "隐私政策",
"Send": "发送",
"Task": "任务",
"Create task": "创建任务",
"uses AI. Check for mistakes.": "使用 AI。请检查错误。",
"Copy code": "复制代码",
"Copied!": "复制成功!",
"Good response": "点赞",
"positive feedback submitted": "已提交正面反馈",
"Bad response": "点踩",
"Retry": "重试",
"Give additional feedback": "提交额外反馈",
"Would you like to participate in our research?": "您愿意参与我们的研究吗?",
"You will be compensated for your time": "您的时间将得到补偿。",
"Book a session": "预约",
"No, thanks": "不,谢谢",
"Chats": "聊天",
"No chats yet": "还没有聊天",
"Ask Copilot anything on the right to start your first chat.": "在右侧询问 Copilot 任何问题,开始您的第一次聊天。",
"Agent sessions": "智能体任务",
"New agent session": "新智能体任务",
"No agents running": "没有智能体任务运行",
"You can now ask Copilot to work on a task for you in the background, creating a pull request which you can review.": "您现在可以请求 Copilot 在后台处理任务,创建一个拉取请求供您审查。",
"Explore the latest Copilot launches from Universe ’25": "探索 Universe ’25 的最新 Copilot 启动",
"See what’s new": "查看最新内容",
"Explore GitHub’s latest tools shaping agentic software and developer choice.": "探索 GitHub 最新的工具,塑造智能化的软件和开发者选择。",
"Select a custom agent": "选择自定义智能体",
"Create an agent": "新建智能体",
"Start task": "开始任务",
"Recent agent sessions": "最近智能体任务",
"Recent sessions": "最近任务",
"No sessions found. Create one by sending a prompt above.": "没有找到任务。通过发送提示来创建一个。",
// 空间
"Duplicate": "复制",
"Duplicate Space": "复制空间",
"Spaces are now available through the GitHub MCP in VSCode.": "空间现在可以通过 VSCode 的 GitHub MCP 使用。",
"Install": "安装",
"Spaces organize your files, pull requests, issues, and standards so Copilot can give more relevant help for your work.": "空间组织您的文件、拉取请求、议题和标准,以便 Copilot 为您的工作提供更相关的帮助。",
"Create space": "创建空间",
"Search...": "搜索…",
"Shared with me":"与我共享的空间",
"Start your first space": "开始您的第一个空间",
"Need help? Read the docs": "需要帮助?阅读文档",
"Generate code": "生成代码",
"Produce code that follows your team's patterns.": "生成符合团队规范的代码。",
"Share knowledge": "分享知识",
"Centralize docs so your team can quickly find answers.": "集中管理文档,让团队快速找到答案。",
"Plan projects": "规划项目",
"Create requirements and issues your team can ship.": "创建团队可交付的需求与议题。",
"New Space": "新空间",
"Space name": "空间名称",
"Choose a name that describes your project or use case": "选择一个描述您的项目或用例的名称",
"Only you will be able to see this space.": "只有您可以看到此空间。",
"Create Space": "创建空间",
"Install MCP": "安装 MCP",
"Add a short description to explain this space's purpose (e.g., 'Frontend design system' or 'API docs hub').": "添加一个简短的描述,解释此空间的用途(例如,'前端设计系统'或'API 文档中心')。",
"Add files": "添加文件",
"Define Copilot’s role, focus, and what to avoid in this space. Ex. “You are a [role]. Follow our [framework/patterns] to [type of task]. Avoid [practices or tools] unless specified”.": "定义 Copilot 的角色、焦点和在此空间中避免的内容。例如,“您是 [角色]。遵循我们的 [框架/规范] 来 [任务类型]。除非另有说明,否则避免 [实践或工具]。”",
"Sources": "来源",
"Conversations": "对话",
"Add sources": "添加来源",
"Add repository": "添加仓库",
"Add files from repository": "从仓库添加文件",
"Link files, pull requests, and issues": "链接文件、拉取请求和议题",
"Local": "本地",
"Upload a file": "上传文件",
"Add text content": "添加文本内容",
"Add sources to get started": "添加来源以开始",
"Provide files, docs, issues, or repositories so Copilot can give more relevant answers.": "提供文件、文档、议题或仓库,以便 Copilot 为您提供更相关的答案。",
"Start a new conversation in this space by typing in the input box at the top.": "通过在顶部输入框中输入,开始在此空间中的新对话。",
"Space not found": "空间未找到",
"This URL may be incorrect, you're signed out of your organization, or the Space may have been deleted.": "此 URL 可能不正确,您已退出组织,或空间可能已被删除。",
"Manage session": "管理会话",
"View pull request": "查看拉取请求",
"View verbose logs": "查看详细日志",
"More actions": "更多操作",
"Copilot started work": "Copilot 开始工作",
"Summary": "摘要",
"Copy head branch name to clipboard": "复制头分支名称到剪贴板",
},
"regexp": [ // 正则翻译
// Copilot 窗口
[/Chatting about ([^ ]+)/, "关于 $1 的对话"],
[/Chatting with (\d+) attachments?/, "附加 $1 个附件"],
//[/Public code references from 4 repositories/, ""],
[/Public code references from (\d+) repositor(y|ies)/, "公共代码,引用自 $1 个仓库"],
[/(\d+) references?/, "$1 条引用"],
[/(\d+) lines? \((\d+) loc\) ·/, "$1 行($2 非空行)·"], // loc = 代码行(line of code)= 行数 - 空行数(lines - blank lines)
[/Using the GitHub API to search for issues assigned to user ([^ ]+)/, "使用 GitHub API 搜索分配给用户 $1 的议题"],
[/Chatting with (\d+) attachments?/, "附件 $1 个"],
[/Choose items from ([^ ]+) to chat about. Use fewer references for more accurate responses./, "从 $1 中选择项目来进行交流。使用较少的引用以获得更准确的回答。"],
[/Choose files, folders, and symbols from ([^ ]+) to chat about. Use fewer references for more accurate responses./, "选择 $1 中的文件(夹)和符号进行聊天。引用越少,回复越准确。"],
[/Delete conversation: \"(.+)\"/, "删除对话:“$1”"],
// 智能体
[/Branch: (.+)/, "分支:$1"],
[/Agent: (.+)/, "智能体:$1"],
/**
* 匹配时间格式
*
* 月 日 或 月 日, 年
* Mar 19, 2015 – Mar 19, 2016
* January 26 – March 19
* March 26
*
* 不知道是否稳定, 暂时先试用着. 2016-03-19 20:46:45
*
* 更新于 2021-10-04 15:19:18
* 增加 带介词 on 的格式,on 翻译不体现
* on Mar 19, 2015
* on March 26
*
* 更新于 2021-10-10 13:44:36
* on 星期(简写), 月 日 年 // 个人访问令牌 有效期
* on Tue, Nov 9 2021
*
* 2021-10-19 12:04:19 融合更多规则
*
* 4 Sep
* 30 Dec 2020
*
* on 4 Sep
* on 30 Dec 2020
*
* 2021-11-22 12:51:57 新增 格式
*
* 星期(全称), 月 日, 年 // 仓库-->洞察-->流量 图示标识
* Sunday, November 14, 2021
*
* 星期(全称), 日 月 年// 仓库-->洞察-->贡献者 和 仓库-->洞察-->代码频率
* Sunday, 4 Jul 2023
*
* 更新于 2023-07-04 13:19:21
* 新增前缀词, 减少二次组织翻译
* Updated Jul 4 // 仪表板页面 仓库标签卡
* Commits on Jul 4, 2023 // 提交页面、仓库拉取请求页->提交卡
* Joined on Jul 4, 2023 // 追星者,关注者页面
*
* 更新于 2023-11-11 16:48:02
* 个人资料页->贡献卡
* 日期带后缀
* on March 19th.
* on August 22nd.
* on August 21st.
*
* Tip:
* 正则中的 ?? 前面的字符 重复0次或1次
* 正则中的 ?: 非捕获符号(即关闭圆括号的捕获能力) 使用方法 (?: 匹配规则) -->该匹配不会被捕获 为 $数字
*/
[/(^Updated (?:on )?|^Commits on |^Joined on |on )?(?:(Sun(?:day)?|Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?)?,? )?(?:(\d{1,2})(?:st.|nd.|rd.|th.)?)? ?(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?) ?(\d{1,2})?,? (\d{4})?/g, function (all, prefix, week, date1, month, date2, year) {
var prefixKey = {
"Updated " : "更新于 ",
"Commits on ": "提交于 ",
"Joined on " : "加入于 ",
//"Submitted ": "提交于 ", // 教育
};
var weekKey = {
"Sun" : "周日",
"Mon" : "周一",
"Tue" : "周二",
"Wed" : "周三",
"Thu" : "周四",
"Fri" : "周五",
"Sat" : "周六"
};
var monthKey = {
"Jan": "1月",
"Feb": "2月",
"Mar": "3月",
"Apr": "4月",
"May": "5月",
"Jun": "6月",
"Jul": "7月",
"Aug": "8月",
"Sep": "9月",
"Oct": "10月",
"Nov": "11月",
"Dec": "12月"
};
// 处理日期
var date = date1 ? date1 : date2;
var formattedDate = (year ? year + '年' : '') + monthKey[month.substring(0, 3)] + (date ? date + '日' : '');
// 处理星期
var formattedWeek = week ? ',' + weekKey[week.substring(0, 3)] : '';
// 返回翻译结果
return (prefixKey[prefix] ? prefixKey[prefix] : '') + formattedDate + formattedWeek;
}],
/**
* 相对时间格式处理
*
* 更新于 2021-11-21 16:47:14
* 1. 添加 前缀词
* over xxx ago // 里程碑页面 最后更新时间
* about xxx ago // 里程碑页面 最后更新时间
* almost xxx ago // 里程碑页面 最后更新时间
* less than xxx ago // 导出账户数据
* 2. xxx之内的相对时间格式
* in 6 minutes // 拉取请求页面
*
* 更新于 2021-11-22 11:54:30
* 1. 修复 Bug: 意外的扩大了匹配范围(不带前缀与后缀的时间) 干扰了带有相对时间的其他规则
* 7 months
*/
[/^just now|^now|^last month|^yesterday|(?:(over|about|almost|in) |)(an?|\d+)(?: |)(second|minute|hour|day|month|year)s?( ago|)/, function (all, prefix, count, unit, suffix) {
if (all === 'now') {
return '现在';
}
if (all === 'just now') {
return '刚刚';
}
if (all === 'last month') {
return '上个月';
}
if (all === 'yesterday') {
return '昨天';
}
if (count[0] === 'a') {
count = '1';
} // a, an 修改为 1
var unitKey = {second: '秒', minute: '分钟', hour: '小时', day: '天', month: '个月', year: '年'};
if (suffix) {
return (prefix === 'about' || prefix === 'almost' ? '大约 ' : prefix === 'less than' ? '不到 ' : '') + count + ' ' + unitKey[unit] + (prefix === 'over' ? '多之前' : '之前');
} else {
return count + ' ' + unitKey[unit] + (prefix === 'in' ? '之内' : '之前');
}
}],
/**
* 匹配时间格式 2
*
* in 5m 20s
*/
[/^(?:(in) |)(?:(\d+)m |)(\d+)s/,function (all, prefix, minute, second) {
all = minute ? minute + '分' + second + '秒' : second + '秒';
return (prefix ? all + '之内' : all);
}],
// 其他翻译
[/to enable two-factor authentication as an additional security measure. Your activity on GitHub includes you in this requirement. You will need to enable two-factor authentication on your account before ([^ ]+), or be restricted from account actions./, "启用双因素身份验证(2FA)作为额外安全措施。您在 GitHub 上的活动让您接收到此要求。您将需要在 $1 前启用双因素身份验证,否则会被限制账户操作。"],
],
"time-regexp": [ // 时间正则翻译专项
/**
* 匹配时间格式
*
* 月 日 或 月 日, 年
* Mar 19, 2015 – Mar 19, 2016
* January 26 – March 19
* March 26
*
* 不知道是否稳定, 暂时先试用着. 2016-03-19 20:46:45
*
* 更新于 2021-10-04 15:19:18
* 增加 带介词 on 的格式,on 翻译不体现
* on Mar 19, 2015
* on March 26
*
* 更新于 2021-10-10 13:44:36
* on 星期(简写), 月 日 年 // 个人访问令牌 有效期
* on Tue, Nov 9 2021
*
* 2021-10-19 12:04:19 融合更多规则
*
* 4 Sep
* 30 Dec 2020
*
* on 4 Sep
* on 30 Dec 2020
*
* 2021-11-22 12:51:57 新增 格式
*
* 星期(全称), 月 日, 年 // 仓库-->洞察-->流量 图示标识
* Sunday, November 14, 2021
*
* Tip:
* 正则中的 ?? 前面的字符 重复0次或1次
* 正则中的 ?: 非捕获符号(即关闭圆括号的捕获能力) 使用方法 (?: 匹配规则) -->该匹配不会被捕获 为 $数字
*/
[/(?:on |)(?:(\d{1,2}) |)(?:(Sun(?:day)?|Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?), |)(?:(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May(?:)??|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)(?:,? |$))(\d{4}|)(\d{1,2}|)(?:,? (\d{4})|)/g, function (all, date1, week, month, year1, date2, year2) {
var weekKey = {
"Sun" : "周日",
"Mon" : "周一",
"Tue" : "周二",
"Wed" : "周三",
"Thu" : "周四",
"Fri" : "周五",
"Sat" : "周六",
};
var monthKey = {
"Jan": "1月",
"Feb": "2月",
"Mar": "3月",
"Apr": "4月",
"May": "5月",
"Jun": "6月",
"Jul": "7月",
"Aug": "8月",
"Sep": "9月",
"Oct": "10月",
"Nov": "11月",
"Dec": "12月"
};
var date = date1 ? date1 : date2;
var year = year1 ? year1 : year2;
return (year ? year + '年' : '') + monthKey[month.substring(0, 3)] + (date ? date + '日' : '') + (week ? ', ' + weekKey[week.substring(0, 3)] : '');
}],
/**
* 相对时间格式处理
*
* 更新于 2021-11-21 16:47:14
* 1. 添加 前缀词
* over xxx ago // 里程碑页面 最后更新时间
* about xxx ago // 里程碑页面 最后更新时间
* almost xxx ago // 里程碑页面 最后更新时间
* less than xxx ago // 导出账户数据
* 2. xxx之内的相对时间格式
* in 6 minutes // 拉取请求页面
*
* 更新于 2021-11-22 11:54:30
* 1. 修复 Bug: 意外的扩大了匹配范围(不带前缀与后缀的时间) 干扰了带有相对时间的其他规则
* 7 months
*/
[/^just now|^now|^last year|^last month|^last week|^yesterday|(?:(over|about|almost|in) |)(an?|\d+)(?: |)(second|minute|hour|day|month|year|week)s?( ago|)/, function (all, prefix, count, unit, suffix) {
if (all === 'now') {
return '现在';
}
if (all === 'just now') {
return '刚刚';
}
if (all === 'last year') {
return '最近 1 年';
}
if (all === 'last month') {
return '上个月';
}
if (all === 'last week') {
return '上周';
}
if (all === 'yesterday') {
return '昨天';
}
if (count[0] === 'a') {
count = '1';
} // a, an 修改为 1
var unitKey = {second: '秒', minute: '分钟', hour: '小时', day: '天', month: '个月', year: '年', week: '周'};
if (suffix) {
return (prefix === 'about' || prefix === 'almost' ? '大约 ' : prefix === 'less than' ? '不到 ' : '') + count + ' ' + unitKey[unit] + (prefix === 'over' ? '多之前' : '之前');
} else {
return count + ' ' + unitKey[unit] + (prefix === 'in' ? '之内' : '之前');
}
}],
[/(\d+)(y|h|d|w|m)/, function (all, count, suffix) {
var suffixKey = {y: '年', h: '小时', d: '天', w: '周', m: '个月'};
return count + ' ' + suffixKey[suffix] + '之前';
}],
],
"title": {
"static": {
"GitHub · Where software is built": "GitHub · 软件构建的地方",
"Page not found · GitHub": "找不到页面 · GitHub",
},
"regexp": [],
},
};
I18N["zh-CN"]["orgs-public"] = { // 组织公共部分
"static": { // 静态翻译
},
"regexp": [ // 正则翻译
[/Invite someone to/, "邀请加入到组织"],
[/New team in/, "新建团队在组织"],
[/New repository in/, "新建仓库在组织"],
[/This organization was marked as archived by an administrator on (.+). It is no longer maintained./, (match, p1) => {
const dateRegExp = I18N["zh-CN"]["public"]["time-regexp"];
const translatedDate = dateRegExp.reduce((acc, [pattern, replacement]) => acc.replace(pattern, replacement), p1);
return `该组织已由管理员于 ${translatedDate} 存档。不再维护。`;
}],
[/You are now a member of ([^ ]+)!/, "您现在是 $1 的成员了!"],
],
};
I18N["zh-CN"]["page-dashboard"] = { // 已登录的首页 - 仪表板(含组织)
"static": { // 静态翻译
// 顶部 GPT 聊天窗口
"Ask anything": "询问任何事",
"Ask": "询问",
"Send": "发送",
"Feedback": "反馈",
"Message": "消息",
"Tell us your feedback on the new dashboard experience":"告诉我们您对新仪表板体验的反馈",
"Please don’t include sensitive, confidential, or personal data. Your feedback helps us improve our services in line with our":"请不要包含敏感、机密或个人信息。您的反馈有助于改进我们的服务",
// 智能体任务
"Start an agent session to create new work or iterate on an existing project.": "启动智能体会话以新建工作或迭代现有项目。",
"Start a session": "启动一个会话",
// 新版首页功能区
"Ask": "询问",
"Task": "任务",
"to access more models and higher limits.": "来获得更多模型和更高限制。",
"Create issue": "创建议题",
"First, create a new draft issue. Then ask for additional information to fill out the issue.":"首先,创建一个新的草稿议题。然后,要求提供更多信息来完善议题。",
"First, create an issue with sub issues. Then ask for additional information to fill out these issues.":"首先,创建一个包含子议题的议题。然后,要求提供更多信息来完善这些子议题。",
"Write code": "编写代码",
"Models": "模型",
"Create a profile README":"个人资料",
"Generate a simple calculator":"简易计算器",
"Make a Pong game":"乒乓球游戏",
"Design a Mermaid architecture overview":"Mermaid 架构预览",
// Git
"Basic Git commands":"基本 Git 命令",
"Git branching":"Git 分支",
"Advanced Git commands":"高级 Git 命令",
// 拉取请求
"My open pull requests":"我打开的",
"Summarize my latest PR":"总结最近",
"Fast and cost-efficient": "快速、经济高效",
"Versatile and highly intelligent": "多功能、高智能",
"Most powerful at complex tasks": "在复杂任务中最强大",
"Agent sessions": "智能体任务",
"No sessions found. Try a different filter, or": "没有找到会话。尝试不同的过滤器,或",
"start a session": "开始任务",
"Agent sessions options": "智能体任务选项",
"Agent sessions to include": "智能体任务包含",
"View all": "查看全部",
"Number of results": "结果数量",
"Pull request options": "拉取请求选项",
"Pull requests to include": "拉取请求包含",
"Authored": "由您创建",
"Mentioned": "被提及",
"Review requested": "请求审查",
"Reviewed": "已审查",
"Issue options": "议题选项",
"Issues to include": "议题包含",
"Assigned to me": "分配给我",
"Involves me": "涉及我",
"Open in Copilot chat": "在 Copilot Chat 中打开",
"Assign to Copilot": "分配给 Copilot",
"uses AI. Check for mistakes.": "使用 AI。请检查错误。",
// 选项
"Task": "任务",
"Create issue": "创建议题",
"Models": "模型",
"Fast and cost-efficient": "快速、经济高效",
"Versatile and highly intelligent": "多功能、高智能",
"Most powerful at complex tasks": "执行复杂任务",
"Try the new experience": "尝试新版",
"Try the new dashboard experience": "试用新仪表板",
"Switch back": "切回旧版",
// 新手帮助
"Learn Git and GitHub without any code!": "了解 Git 和 GitHub 无需任何代码!",
"Using the Hello World guide, you’ll create a repository, start a branch,": "使用 Hello World 指南,您将创建一个仓库,开始一个分支,",
"write comments, and open a pull request.": "写评论,并创建一个拉取请求。(教程内容就不翻译了...)",
"Let's get started!": "让我们开始吧!",
"Hide this notice forever": "永久的隐藏该信息",
"Welcome to GitHub! What’s next?": "欢迎来到 GitHub!下一步干什么?",
"Create a repository": "创建一个仓库",
"Tell us about yourself": "介绍一下您自己",
"Browse interesting repositories": "浏览有趣的仓库",
"on Twitter": "在 Twitter 上",
"You don’t have any repositories yet!": "您目前还没有任何仓库!",
"Create your first repository": "创建您的第一个仓库",
"or": "或者",
"Learn more about Git and GitHub": "了解更多关于 Git 和 GitHub 的信息",
// 教育版
"Join GitHub Education!": "加入 GitHub 教育!",
"GitHub Education opens doors to new skills, tools, and a collaborative community eager to drive innovation. Join us and build a foundation for your future in technology.": "GitHub 教育为您打开通往新技能、新工具以及渴望推动创新的协作社区的大门。加入我们,为您的技术未来打下基础。",
"Join GitHub Education": "加入 GitHub 教育",
// 组织
// [/You’re an owner of the ([^ ]+) organization!/, "您是 $1 组织的所有者!"],
// [/Create a repository for ([^ ]+)/, "为 $1 创建仓库"],
"Welcome to the": "欢迎来到",
"View your teams": "查看您的团队",
"View and create teams": "查看并创建团队",
"See all owners": "查看全部所有者",
"You've been added to the": "您已被添加至",
"organization.": "组织",
// [/Edit ([^ ]+)’s settings/, "编辑 $1 的设置"],
"Return to your personal dashboard": "返回到您的个人仪表板",
// 已有仓库的项目
// 左侧栏
"View organization": "查看组织", // 组织
"Browse organization's repositories": "浏览组织的仓库", // 组织
"Top repositories": "置顶仓库",
"Top Repositories": "置顶仓库", // 安卓UA
"New": "新建",
"Find a repository…": "搜索仓库…",
"Your teams": "您的团队",
"You don’t belong to any teams yet!": "您还不属于任何团队!",
"Find a team…": "搜索团队…",
"Recent activity": "近期活动",
"When you take actions across GitHub, we’ll provide links to that activity here.": "当您在 GitHub 上采取行动时,我们会在这里提供该活动的链接。", // 组织
"Create your first project": "创建您的第一个项目",
"Ready to start building? Create a repository for a new idea or bring over an existing repository to keep contributing to it.": "准备好开始构建了吗?为新想法创建一个仓库或使用现有仓库继续为其做出贡献。",
"Create repository": "创建仓库",
"Forked from": "复刻自", // 复刻仓库
// 中间栏
"Feed": "动态",
"The home for all developers — including you.": "所有开发者的家园——包括您。",
"Welcome to your personal dashboard, where you can find an introduction to how GitHub works, tools to help you build software, and help merging your first lines of code.": "欢迎来到您的个人仪表板,在这里您可以看到关于 GitHub 工作原理的介绍,帮助您构建软件的工具,以及帮助您合并您的第一行代码。",
"Learn with a tutorial project": "通过教程项目学习",
"Introduction to GitHub": "GitHub 简介",
"Get started using GitHub in less than an hour.": "一个小时内学会如何使用 GitHub。",
"Create a site or blog from your GitHub repositories with GitHub Pages.": "使用 GitHub Pages 从您的 GitHub 仓库创建网站或博客。",
"Code with Copilot": "使用 Copilot 编程",
"Develop with AI-powered code suggestions using GitHub Copilot, Codespaces, and VS Code.": "使用 GitHub Copilot、代码空间和 VS Code 通过 AI 驱动的代码建议进行开发。",
"Hello GitHub Actions": "您好 GitHub Actions",
"Create a GitHub Action and use it in a workflow.": "创建一个 GitHub Actions 并在工作流中使用它 ",
"See more tutorial projects": "查看更多的教程项目",
"Start writing code": "开始编写代码",
"A repository contains all of your project's files, revision history, and collaborator discussion.": "仓库包含项目的所有文件、修订历史记录和协作者讨论。",
"Repository name": "仓库名称",
"name your new repository...": "命名您的新仓库……",
"Anyone on the internet can see this repository": "任何人都可以看到这个仓库,您可以选择谁能提交。",
"You choose who can see and commit to this repository": "您可以选择谁可以看和提交到该仓库。",
"Create a new repository": "创建新的仓库",
"You're seeing this because you haven't created a repository in a while.": "您看到这个是因为您有一段时间没有创建仓库了。",
"You're seeing this because you haven't used repositories, issues, and pull requests recently.": "您看到这个是因为您最近没有使用仓库、议题和拉取请求。",
"Remove from dashboard": "从仪表板中删除",
"Repositories that need your help": "这些仓库需要您的帮助",
"See more repos with good first issues": "查看更多适合新手提交议题的仓库",
"Use tools of the trade": "使用贸易工具",
"You're seeing this because you haven't opened a pull request in a while.": "您看到这个是因为您有一段时间没有打开拉取请求了。",
"Simplify your development workflow with a GUI": "使用 GUI 简化开发工作流程",
"Install GitHub Desktop": "安装 GitHub Desktop",
"to visualize, commit, and push changes without ever touching the command line.": "来可视化、提交和推送更改,而无需使用命令行。",
"Get AI-based coding suggestions": "获取基于 AI 的编码建议",
"Try GitHub Copilot free for 30 days,": "免费试用 GitHub Copilot 30 天,",
"which suggests entire functions in real time, right from your editor.": "它可以直接从您的编辑器实时建议所有函数。",
"Write code in your web browser": "在您的网络浏览器中编写代码",
"Use": "使用",
"the github.dev web-based editor": "基于 github.dev 的网络编辑器",
"from your repository or pull request to create and commit changes.": "从您的仓库或拉取请求中创建和提交更改。",
"Install a powerful code editor": "安装一个强大的代码编辑器",
"is a multi-platform code editor optimized for building and debugging software.": "是针对构建和调试软件进行了优化的多平台代码编辑器。",
"Set up your local dev environment": "设置本地开发环境",
"set up Git": "设置 Git",
", simplify your dev workflow with": ",简化您的开发工作流程,使用",
", or": ",或",
"bring GitHub to the command line": "将 GitHub 引入命令行",
"Get started on GitHub": "开始使用 GitHub",
"You're seeing this because you haven't used GitHub's core features, yet.": "您看到这个是因为您有一段时间没有使用过 GitHub 的核心功能了。",
"Introduce yourself with a profile README": "使用 README 介绍自己",
"Share information about yourself by creating a profile README, which appears at the top of your profile page.": "通过创建个人资料自述文件(README)来分享有关您自己的信息,该信息将显示在您的个人资料页面顶部。",
"Follow this exercise to try the GitHub flow": "按照此练习尝试 GitHub 流程",
"GitHub's “Hello World” tutorial teaches you essentials, where you create your own repository and learn GitHub's pull request workflow for creating and reviewing code.": "GitHub 的 “Hello World” 教程会教您基本知识,您可以在其中创建自己的仓库并学习 GitHub 用于创建和审查代码的拉取请求工作流程。",
"Try the GitHub flow": "尝试 GitHub 流程",
"About version control and Git": "关于版本控制和 Git",
"Learn about the version control system, Git, and how it works with GitHub.": "了解版本控制系统、Git 以及它如何与 GitHub 一起工作。",
"The GitHub Flow": "GitHub 流程",
"Adopt GitHub's lightweight, branch-based workflow to collaborate on projects.": "采用 GitHub 的轻量级、基于分支的工作流程来协作处理项目。",
"One moment please...": "稍等一会儿…",
"Loading activity...": "载入活动…",
"All activity": "所有活动",
"Welcome to the new feed!": "欢迎来到新的动态提要!",
"We’re updating the cards and ranking all the time, so check back regularly. At first, you might need to follow some people or star some repositories to get started": "我们一直在更新卡片和排名,所以请定期查看。一开始,您可能需要关注一些人或标星一些仓库才能开始",
"Send feedback": "发送反馈",
"Updates to your homepage feed": "主页动态摘要的更新",
"We've combined the power of the Following feed with the For you feed so there’s one place to discover content on GitHub. There’s improved filtering so you can customize your feed exactly how you like it, and a shiny new visual design. ✨": "我们将 “关注动态提要” 与 “您的动态提要” 的强大功能结合在一起,让您在一个地方就能发现 GitHub 上的内容。此外,我们还改进了筛选功能,让您可以完全按照自己的喜好定制动态提要,并采用全新的视觉设计。 ✨",
"Learn more": "了解更多",
"Explore GitHub": "探索 GitHub",
"to receive personalized suggestions.": "以获取个性化建议。",
// 提要筛选
"Filter": "筛选器",
"Feed filters": "提要筛选器",
"Events": "事件",
"Activity you want to see on your feed": "您想在提要上看到的活动",
"Announcements": "公告",
"Special discussion posts from repositories": "来自仓库的特别讨论帖",
"Releases": "发行版",
"Update posts from repositories": "来自仓库的更新帖",
// 赞助
"Relevant projects or people that are being sponsored": "获得赞助的相关项目或人员",
"Stars": "星标",
"Repositories being starred by people": "被人们标星的仓库",
"Repositories": "仓库",
"Repositories that are created or forked by people": "由人们创建或复刻的仓库",
"Repository activity": "仓库活动",
"Issues and pull requests from repositories": "来自仓库的议题和拉取请求",
"Follows": "关注",
"Who people are following": "人们在关注谁",
"Recommendations": "推荐",
"Repositories and people you may like": "您可能喜欢的仓库和人",
"Include events from starred repositories": "包括来自星标仓库中的事件",
"By default, the feed shows events from repositories you sponsor or watch, and people you follow.": "默认情况下,动态提要显示的事件来自您赞助或关注的仓库,以及您关注的人。",
"Reset to default": "重置",
"Save": "保存",
"Show all": "显示所有",
"Uh oh!": "哎呀!",
"There was an error in loading the activity feed.": "载入动态提要时发生错误。",
"Reload this page": "重载此页面",
// 动态 状态词
"starred": "标星了",
"created": "创建了",
"forked from": "复刻自",
"generated from": "创建自",
"mirrored from": "镜像自",
"forked": "复刻了",
"from": "来自",
"for": "",
"pushed": "推送",
"pushed to": "推送到",
"released": "发布了",
"published": "发布了",
"started sponsoring": "赞助给",
"started following": "已关注",
"you": "您",
"Updated": "更新于",
"a repository": "1 个仓库",
"has a new repository": "创建了仓库",
"created a repository": "创建了仓库",
"a branch in": "一个分支在",
"created a branch in": "创建了一个分支在",
"in": "分支在",
"Forked to": "复刻为",
"of": "",
"made": "将",
"public": "设为公共",
"committed": "提交于",
"posted a discussion in": "发表讨论于",
"made this repository public": "将此仓库公开",
"labeled a pull request": "将标签添加到拉取请求中",
"launched their sponsorship page 💖": "推出了他们的赞助页面 💖",
//[/and (\d+) more/, "和另外 $1 个"],
"All reactions": "所有看法",
"commented on an issue in": "于一个议题发表了评论在",
"commented on a pull request in": "于一个拉取请求发表了评论在",
"opened a pull request": "打开了一个拉取请求在",
"closed a pull request": "关闭了一个拉取请求在",
"opened": "打开",
"deleted": "删除",
"commented on": "发表了评论于",
"published a release": "发布发行版",
"forked a repository": "复刻仓库",
"starred a repository": "星标仓库",
"sponsored": "赞助了",
"followed": "关注了",
"added a repository to": "已将仓库添加到",
"contributed to": "贡献给",
// 现在会显示拉取请求状态
"Merged": "已合并",
"your repository": "您的仓库",
"Read more": "阅读更多内容",
"Load more...": "加载更多……",
"Subscribe to your news feed": "订阅您的新闻提要",
"Subscribe to the": "订阅", // 组织
"organization news feed": "组织的新闻提要", // 组织
//主页上仓库3个点
"Feed item options": "推送选项",
"You're seeing this because of your activity.": "您看到这个是因为您的活动。",
"Show less activity like this": "显示较少这类活动",
// [/You're seeing this because you collaborated with ([^ ]+)/, "您看到这个是因为您与 $1 有过合作"],
// [/You're seeing this because you starred ([^ ]+)/, "您看到这个,是因为您标星了 $1"],
"Unstar this repository": "取消标星此仓库",
// [/You're seeing this because you follow ([^ ]+)/, "您看到这个,是因为您关注了 $1"],
"Unfollow this user": "取消关注此用户",
"Contributors": "贡献者",
"Report": "举报",
"Recommended for you": "为您推荐",
"Trending repositories": "热门仓库",
"Latest from our changelog":"来自我们的更新日志",
"Try the new experience": "尝试新体验",
"See more": "查看更多",
"Read more": "阅读更多",
"You're seeing this based on GitHub-wide trends.": "您看到的是基于 GitHub-wide 的趋势。",
"Recommended based on people you follow": "根据您关注的人推荐",
"has a new discussion in": "有一条新讨论,在",
"Join discussion": "参与讨论",
"Popular among": "很受欢迎",
"Popular projects among": "热门项目",
"people you follow": "在您关注的人中",
"Sponsor": "赞助",
"added": "添加",
// 右侧栏
"Latest changes": "最新变化",
"View changelog →": "查看更新日志 →",
"Explore repositories": "探索仓库",
"Explore more →": "探索更多 →",
"Member statuses": "成员状态", // 组织
// 仪表板右上方看板
"The world’s fair of software is here.": "世界软件博览会就在这里。",
"The GitHub Universe call for sessions is now open! Apply to share your expertise by submitting a session proposal today. Plus, get 35% off your tickets to GitHub Universe only for a limited time.": "GitHub Universe 的会议征集现已开启!立即提交您的会议提案,分享您的专业知识。此外,现在限时可享 35% 的 GitHub Universe 会议门票折扣。",
// 教育看板(申请教育包才有)
"Learn. Collaborate. Grow.": "学习,协作,成长。",
"GitHub Education gives you the tools and community support to take on tech challenges and turn them into opportunities. Your future in tech starts here!": "GitHub 教育提供工具和社区支持,帮助您应对技术挑战并将其转化为机遇。您科技领域的未来从这里开始!",
"Go to GitHub Education": "前往 GitHub 教育",
// 用户 浮动信息卡
"Member of": "隶属组织",
// [/, and (\d+) more/, ",以及其他 $1 个组织"],
// 组织 浮动信息卡
// [/(\d+) repositor(y|ies)/, "$1 个仓库"],
// [/(\d+) members?/, "$1 个成员"],
"Go to organization dashboard": "前往组织仪表板", // 组织
"Switch dashboard context": "切换默认身份", // 组织
"Manage organizations": "管理组织", // 组织
"Create organization": "创建组织", // 组织
// 首次加入组织通知
"You’ve been added to the": "您已经被添加到",
"organization!": "组织!",
"Here are some quick tips for a first-time organization member.": "以下是首次加入组织的一些提示。",
"Use the switch context button in the upper left corner of this page to switch between your personal context (": "使用页面左上角的切换身份按钮,您可以在(",
") and organizations you are a member of.": ")和组织身份之间进行切换。",
"After you switch contexts you’ll see an organization-focused dashboard that lists out organization repositories and activities.": "当您切换身份,您会看到一个组织为中心的页面,其中列出了组织库和活动。",
// 快捷键
"Dashboards": "仪表板",
"Go to your issues": "跳转到您的议题",
"Go to your pull requests": "跳转到您的拉取请求",
// 新版首页(已登录)2025-10-29
"Your personal account": "我的个人账户",
"Started": "开始于",
"Completed": "完成于",
"In progress": "进行中",
"Unable to load agent tasks, try again later.": "无法加载智能体任务,请稍后重试。",
"Unable to load pull requests, try again later.": "无法加载拉取请求,请稍后重试。",
"Updated": "更新于",
"Ready for review": "准备审查",
"Assigned to Copilot": "分配给 Copilot",
},
"regexp": [ // 正则翻译
[/(\d+) pull requests/, "$1 个拉取请求"],
[/added (\d+) repositor(y|ies) to/, "添加 $1 个仓库到"],
[/, and (\d+) more/, ",以及其他 $1 个组织"], // 用户 浮动信息卡
[/(\d+) repositor(y|ies)/, "$1 个仓库"], // 组织 浮动信息卡
[/(\d+) of your repositor(y|ies)/, "您的 $1 个仓库"],
[/(\d+) members?/, "$1 个成员"], // 组织 浮动信息卡
[/is being deleted./, "正在被删除。"], // 仓库 组织被删除
[/Your repository \"([^ ]+)\" was successfully deleted./, "您的仓库 “$1” 已成功删除。"], // 仓库删除
[/(\d+) releases?/, "$1 个发行版"],
[/(\d+k?) followers?/, "$1 个关注者"],
[/(\d+) users?/, "$1 个用户"],
[/(\d+) comments?/, "$1 条评论"],
[/(\d+) commits? to/, "$1 个提交到"],
[/(\d+) more commits? »/, "$1 个更多提交到"],
[/(\d+) issues? needs? help/, "$1 个议题需要帮助"],
[/Join discussion/, "加入讨论"],
// [/Updated/, "更新于"],
// 创建于
[/Created/, "创建于"],
[/You’re an owner of the ([^ ]+) organization!/, "您是 $1 组织的所有者!"], // 组织
[/Create a repository for ([^ ]+)/, "为 $1 创建仓库"], // 组织
[/Edit ([^ ]+)’s settings/, "编辑 $1 的设置"], // 组织
[/Check out ([^ ]+)’s public profile/, "查看 $1 的公开资料"], // 组织
[/and (\d+) more/, "和另外 $1 个"],
[/You're seeing this because you collaborated with ([^ ]+)/, "您看到这个是因为您与 $1 有过合作"],
[/You're seeing this because you starred ([^ ]+)/, "您看到这个,是因为您标星了 $1"],
[/You're seeing this because you follow ([^ ]+)/, "您看到这个,是因为您关注了 $1"],
[/You and/, "您和另外"],
[/You reacted with (thumbs up|thumbs down|laugh|hooray|confused|heart|rocket|eyes)/,function (all, reacted) {
var reactedKey = {'thumbs up': "点赞", 'thumbs down': "点踩", laugh: "大笑", hooray: "欢呼", confused: "表示困惑", heart: "比心", rocket: "发送火箭", eyes: "表示关注"};
return '您' + reactedKey[reacted];
}],
[/(\d+) (?:people|person) reacted with (thumbs up|thumbs down|laugh|hooray|confused|heart|rocket|eyes)/, function (all, number, reacted) {
var reactedKey = {'thumbs up': "点赞", 'thumbs down': "点踩", laugh: "大笑", hooray: "欢呼", confused: "表示困惑", heart: "比心", rocket: "发送火箭", eyes: "表示关注"};
return number + ' 人' + reactedKey[reacted];
}],
[/Support ([^ ]+)'s open source work/, "支持 $1 的开源工作"],
[/Start a new repository for/, "创建一个仓库为"],
[/([^ ]+) requested changes, you commented/, "$1 要求更改,您发表评论"], // 拉取请求 浮动信息卡
// 顶部提醒
// 继任者相关
[/You are now the designated successor for ([^ ]+)'s account./, "您现在是 $1 的指定继任者了。"],
[/You have declined to become the designated successor for ([^ ]+)'s account./, "您已经谢绝了成为 $1 账户指定继任者的邀请。"],
// 拉取请求状态
[/merged (\d+) commits?/, "合并 $1 个提交"],
// 新版首页
[/Good morning, ([^ ]+)!/, "早上好,$1!"],
[/Good afternoon, ([^ ]+)!/, "下午好,$1!"],
[/Good evening, ([^ ]+)!/, "晚上好,$1!"],
[/Switch dashboard: ([^ ]+)/, "切换仪表板:$1"],
[/(.+)\#(\d+) · Opened by ([^ ]+) ·/, "$1#$2 · 打开者 $3"],
],
"title": {
"static": {
"GitHub Dashboard": "GitHub 仪表盘",
"Feed": "动态",
},
},
};
I18N["zh-CN"]["dashboard"] = I18N["zh-CN"]["page-dashboard"];
I18N["zh-CN"]["feed"] = I18N["zh-CN"]["page-dashboard"];
I18N["zh-CN"]["orgs/dashboard"] = I18N["zh-CN"]["page-dashboard"];
I18N["zh-CN"]["page-profile-public"] = { // 个人首页(含组织)
"static": { // 静态翻译
// 左侧用户信息栏
"Change your avatar": "修改头像",
"they/them": "他们",
"she/her": "她",
"he/him": "他",
"You have blocked this user": "您已拉黑此用户",
"Follow": "关注",
"Sponsor": "赞助",
"follower": "关注者",
"followers": "关注者",
"following": "关注",
"Followed by": "共同关注者:",
"Joined": "加入于",
"Achievements": "成就",
"Highlights": "高光时刻",
"Label: Pro": "标签:专业版",
"Developer Program Member": "开发者计划成员",
"security advisory credits": "个安全咨询分",
"security advisory credit": "个安全咨询分",
"Organizations": "组织",
"Block or Report": "拉黑或举报",
"Unblock or report user": "取消拉黑或举报",
"- same time": "- 时间相同",
// 编辑个人资料
"Edit profile": "编辑个人资料",
"Name": "名称",
"Display": "显示",
"badge.": "徽章。",
"Bio": "个人简介",
"Add a bio": "添加个人简介",
"You can": "您可",
"@mention": "@用户名或组织名",
"other users and organizations to link to them.": "链接到其他用户和组织。",
"Pronouns": "代词",
"Don't specify": "不说明",
"they/them": "他们",
"she/her": "她",
"he/him": "他",
"Custom": "自定义",
"Company": "公司",
"Location": "位置",
"Display current local time": "显示当前当地时间",
"same time": "相同时间",
"Website": "网站",
"Social accounts": "社交账户",
"Link to social profile": "链接到社交账户",
"Link to social profile 1": "链接到社交账户",
"Link to social profile 2": "链接到社交账户",
"Link to social profile 3": "链接到社交账户",
"Link to social profile 4": "链接到社交账户",
// 成就浮动界面
// 北极代码库贡献者
"Arctic Code Vault Contributor": "北极代码库贡献者",
"History": "历史",
"100% unlocked": "100% 解锁",
"· Unlocked": "· 解锁于",
"these repositories, and more, were archived": "这些仓库以及更多仓库已存档",
// YOLO
"You want it? You merge it.": "您想要它?您合并它。",
"inaccessible": "已删库",
"Merged without a review": "未经审查就合并",
// Pull Shark
"Pull Shark": "鲨鱼拉",
"Bronze unlocked": "青铜已解锁",
"Bronze and Silver unlocked": "青铜和白银已解锁",
"· First unlocked": "· 首次解锁于",
"2nd pull request merged": "2 个拉取请求被合并",
"16th pull request merged": "16 个拉取请求被合并",
"128th pull request merged": "128 个拉取请求被合并",
"1024th pull request merged": "1024 个拉取请求被合并",
// Starstruck
"Starstruck": "追星族",
"⭐️ 16 stars": "⭐️ 16 个星标",
"⭐️ 128 stars": "⭐️ 128 个星标",
"⭐️ 512 stars": "⭐️ 512 个星标",
"⭐️ 4096 stars": "⭐️ 4096 个星标",
// Pair Extraordinaire
"Pair Extraordinaire": "非凡搭档",
"Unlocked": "解锁于",
"Coauthored with": "与下列用户共同合作",
"Coauthored with an unknown user": "与未知用户共同合作",
// Quickdraw
"Quickdraw": "快速关闭",
"Gitty up!": "赶快开始!",
"Closed within 5 minutes of opening": "在打开的 5 分钟内关闭",
// Galaxy Brain
"Galaxy Brain": "银河大脑",
"2nd accepted answer": "2 个答案被接受",
"8th accepted answer": "8 个答案被接受",
"16th accepted answer": "16 个答案被接受",
"32nd accepted answer": "32 个答案被接受",
// Public Sponsor
"Public Sponsor": "公共赞助者",
"1st sponsorship": "1 次赞助",
// Mars 2020 Contributor
"Mars 2020 Contributor": "火星 2020 贡献者",
"Mars 2020 Helicopter Mission": "2020 火星无人直升机首飞计划",
"this repository was included": "该仓库已收录",
// ?tab=achievements
"Hide from profile": "从个人资料中隐藏",
"Hidden from your profile.": "已从您的个人资料中隐藏",
"Show on profile": "在个人资料中显示",
"Copy share link": "复制共享链接",
"Preview on Twitter": "在 Twitter 上预览",
// 顶部提醒
// [/The (.+) achievement will now be hidden from your profile./, "现在,将从您的个人资料中隐藏 “$1” 成就。"],
// [/The (.+) achievement will now be shown in your profile./, "现在,将在您的个人资料中显示 “$1” 成就。"],
"Send feedback": "发送反馈",
// 拉黑 & 举报用户对话框
// [/Block or report ([^ ]+)/, "拉黑或举报 $1"],
"Block user": "拉黑用户",
"Prevent this user from interacting with your repositories and sending you notifications. Learn more about": "防止该用户与您的仓库互动并向您发送通知。了解更多关于",
"blocking users": "拉黑用户",
"Add an optional note:": "添加可选备注:",
"Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.": "请勿包含任何个人信息,如法定姓名或电子邮件地址。最多 100 个字符,支持标记符。此备注只有您本人可见。",
"Unblock user": "取消拉黑",
"Allow this user to interact with your repositories and send you notifications. Learn more about": "允许该用户与您的仓库互动并向您发送通知。了解更多关于",
"Report abuse": "举报滥用",
"Contact GitHub support about this user’s behavior. Learn more about": "就该用户的行为联系 GitHub 支持部门。了解更多关于",
"reporting abuse": "举报滥用",
// 仓库
"Forked from": "复刻自",
"Updated": "更新于",
// 许可证
"GNU General Public License v3.0": "GNU 通用公共许可证 v3.0",
"GPL-3.0 License": "GPL-3.0 许可证",
"AGPL-3.0 License": "AGPL-3.0 许可证",
"LGPL-3.0 License": "LGPL-3.0 许可证",
"MIT License": "MIT 许可证",
"Apache License 2.0": "Apache-2.0 许可证",
"OFL-1.1 License": "OFL-1.1 许可证",
"0BSD License": "0BSD 许可证",
"BSD-3-Clause License": "BSD-3-Clause 许可证",
"BSD 3-Clause \"New\" or \"Revised\" License": "BSD-3-Clause 许可证",
"CC0-1.0 License": "CC0-1.0 许可证",
"WTFPL License": "WTFPL 许可证",
"Other": "其他",
"Unknown": "未知",
// 标签栏
gitextract_bzhmgz81/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-提交-简体中文-.md │ │ ├── bug-提交-繁體中文-.md │ │ └── config.yml │ ├── copilot-instructions.md │ ├── dependabot.yml │ └── workflows/ │ ├── locals(greasyfork).js_update.yaml │ ├── main.user.js_version_update_and_sync_zh-TW.yaml │ ├── remove_dup.yml │ └── update_contributors_images.yml ├── .gitignore ├── LICENSE ├── README.md ├── README_zh-TW.md ├── apt-packages.txt ├── locals(greasyfork).js ├── locals.js ├── locals_zh-TW.js ├── main(greasyfork).user.js ├── main.user.js ├── main_zh-TW.user.js ├── script/ │ ├── ci_commit_with_signature.sh │ ├── rd.py │ └── t2s-convert.pl └── t2s_rules.conf
SYMBOL INDEX (47 symbols across 4 files)
FILE: main(greasyfork).user.js
function watchUpdate (line 36) | function watchUpdate() {
function traverseNode (line 98) | function traverseNode(node) {
function getPage (line 182) | function getPage() {
function transTitle (line 245) | function transTitle() {
function transTimeElement (line 264) | function transTimeElement(el) {
function watchTimeElement (line 281) | function watchTimeElement(el) {
function transElement (line 300) | function transElement(el, field, isAttr = false) {
function translateText (line 319) | function translateText(text) { // 翻译
function fetchTranslatedText (line 343) | function fetchTranslatedText(key) {
function transDesc (line 371) | function transDesc(el) {
function translateDescText (line 410) | function translateDescText(text, callback) {
function transBySelector (line 448) | function transBySelector() {
function registerMenuCommand (line 466) | function registerMenuCommand() {
function init (line 484) | function init() {
FILE: main.user.js
function updatePageConfig (line 89) | function updatePageConfig(currentPageChangeTrigger) {
function buildPageConfig (line 98) | function buildPageConfig(pageType = pageConfig.currentPageType) {
function watchUpdate (line 145) | function watchUpdate() {
function traverseNode (line 200) | function traverseNode(rootNode) {
function detectPageType (line 286) | function detectPageType() {
function transTitle (line 364) | function transTitle() {
function transTimeElement (line 382) | function transTimeElement(el) {
function transElement (line 395) | function transElement(el, field) {
function transText (line 410) | function transText(text) {
function fetchTranslatedText (line 438) | function fetchTranslatedText(text) {
function transDesc (line 460) | function transDesc(selector) {
function getNestedProperty (line 512) | function getNestedProperty(obj, path) {
function requestRemoteTranslation (line 529) | async function requestRemoteTranslation(text) {
function transBySelector (line 564) | function transBySelector() {
function registerMenuCommand (line 579) | function registerMenuCommand() {
function init (line 639) | function init() {
FILE: main_zh-TW.user.js
function updateConfig (line 40) | function updateConfig(page) {
function initPage (line 57) | function initPage() {
function watchUpdate (line 66) | function watchUpdate() {
function traverseNode (line 122) | function traverseNode(node) {
function getPage (line 188) | function getPage(url = window.location) {
function transTitle (line 243) | function transTitle() {
function transTimeElement (line 260) | function transTimeElement(el) {
function watchTimeElement (line 272) | function watchTimeElement(el) {
function transElement (line 290) | function transElement(el, field) {
function transText (line 305) | function transText(text) {
function fetchTranslatedText (line 333) | function fetchTranslatedText(text) {
function transDesc (line 359) | function transDesc(selector) {
function transDescText (line 394) | function transDescText(text, callback) {
function transBySelector (line 432) | function transBySelector() {
function registerMenuCommand (line 449) | function registerMenuCommand() {
function init (line 467) | function init() {
FILE: script/rd.py
function remove_duplicates (line 3) | def remove_duplicates(file_path):
Condensed preview — 25 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,088K chars).
[
{
"path": ".editorconfig",
"chars": 474,
"preview": "# EditorConfig helps developers define and maintain consistent\n# coding styles between different editors and IDEs\n# edit"
},
{
"path": ".github/ISSUE_TEMPLATE/bug-提交-简体中文-.md",
"chars": 346,
"preview": "---\nname: Bug 提交(简体中文)\nabout: 提交 BUG\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n感谢您提交议题!请补充以下内容,以便我们能更好地协助您:\n提交议题前确保您已阅读["
},
{
"path": ".github/ISSUE_TEMPLATE/bug-提交-繁體中文-.md",
"chars": 346,
"preview": "---\nname: Bug 提交(繁體中文)\nabout: 提交 BUG\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n感謝您提交議題!請補充以下內容,以便我們能更好地協助您:\n提交議題前確保您已閲讀["
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 28,
"preview": "blank_issues_enabled: false\n"
},
{
"path": ".github/copilot-instructions.md",
"chars": 51,
"preview": "When performing a code review, respond in Chinese.\n"
},
{
"path": ".github/dependabot.yml",
"chars": 522,
"preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
},
{
"path": ".github/workflows/locals(greasyfork).js_update.yaml",
"chars": 2646,
"preview": "name: main(greasyfork).user.js and locals(greasyfork).js update\non:\n schedule:\n # 每周四的UTC时间16点(北京时间周五凌晨0点)\n - cro"
},
{
"path": ".github/workflows/main.user.js_version_update_and_sync_zh-TW.yaml",
"chars": 5808,
"preview": "name: main.user.js version update & sync zh-TW\non:\n schedule:\n # 每周日的UTC时间16点(北京时间周一凌晨0点)\n - cron: \"0 16 * * 0\"\n "
},
{
"path": ".github/workflows/remove_dup.yml",
"chars": 474,
"preview": "name: 词条去重\n\non:\n workflow_dispatch:\n\njobs:\n clean:\n name: 词条去重\n runs-on: ubuntu-latest\n steps:\n - name: "
},
{
"path": ".github/workflows/update_contributors_images.yml",
"chars": 1781,
"preview": "name: Update contributors images in README.md\non:\n workflow_dispatch:\n\npermissions:\n contents: write\n\njobs:\n build-de"
},
{
"path": ".gitignore",
"chars": 126,
"preview": "!.gitignore\n\n# windows thumbnail cache\nThumbs.db\nDesktop.ini\n\n# Mac DS_Store Files\n.DS_Store\n\n# webstorm\n.idea\n\nmain(loc"
},
{
"path": "LICENSE",
"chars": 35149,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "README.md",
"chars": 16350,
"preview": "<div align=\"center\"><a name=\"readme-top\"></a>\n\n# [GitHub 中文化插件][github-project-link]\n\n> 让 GitHub 界面全面中文化 | 源自 [52cik/git"
},
{
"path": "README_zh-TW.md",
"chars": 15135,
"preview": "<div align=\"center\"><a name=\"readme-top\"></a>\n\n# [GitHub 中文化插件][github-project-link]\n\n> 讓 GitHub 界面全面中文化 | 源自 [52cik/git"
},
{
"path": "apt-packages.txt",
"chars": 7,
"preview": "opencc\n"
},
{
"path": "locals(greasyfork).js",
"chars": 1528880,
"preview": "/*******************************************************************************\n\n locals.js - 搭配用户脚本插件`GitHub 中文化插件`"
},
{
"path": "locals.js",
"chars": 1529665,
"preview": "/*******************************************************************************\n\n locals.js - 搭配用户脚本插件`GitHub 中文化插件`"
},
{
"path": "locals_zh-TW.js",
"chars": 1529754,
"preview": "/*******************************************************************************\n\n locals.js - 搭配用戶腳本插件`GitHub 中文化插件`"
},
{
"path": "main(greasyfork).user.js",
"chars": 17981,
"preview": "// ==UserScript==\n// @name GitHub 中文化插件\n// @namespace https://github.com/maboloshi/github-chinese\n// @descrip"
},
{
"path": "main.user.js",
"chars": 24253,
"preview": "// ==UserScript==\n// @name GitHub 中文化插件\n// @namespace https://github.com/maboloshi/github-chinese\n// @descrip"
},
{
"path": "main_zh-TW.user.js",
"chars": 18113,
"preview": "// ==UserScript==\n// @name GitHub 中文化插件(繁體版)\n// @namespace https://github.com/maboloshi/github-chinese\n// @de"
},
{
"path": "script/ci_commit_with_signature.sh",
"chars": 5574,
"preview": "#!/bin/bash\n\nwhile getopts \":T:R:B:P:F:D:h:b:\" opt; do\n case $opt in\n T)\n # 通过 GitHub GraphQL API 进"
},
{
"path": "script/rd.py",
"chars": 1462,
"preview": "import re\n\ndef remove_duplicates(file_path):\n # 读取文件内容\n with open(file_path, 'r', encoding='utf-8') as file:\n "
},
{
"path": "script/t2s-convert.pl",
"chars": 4000,
"preview": "#!/usr/bin/perl\nuse strict;\nuse warnings;\nuse utf8;\nuse open ':std', ':encoding(UTF-8)';\nuse Getopt::Long;\nuse Cwd qw(ab"
},
{
"path": "t2s_rules.conf",
"chars": 301,
"preview": "# 格式说明:\n# 普通替换:源文本(2+空格)目标文本\n# 正则替换:REGEX:模式(2+空格)替换文本\nzh-CN zh-TW\n隻讀 只讀\n隻影響 只影響\n隻是 只是\n復刻 "
}
]
About this extraction
This page contains the full source code of the maboloshi/github-chinese GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 25 files (4.5 MB), approximately 1.2M tokens, and a symbol index with 47 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.