Skip to content

Commit 28440de

Browse files
committed
feat: add est time
1 parent d58e6b0 commit 28440de

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+88
-12
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
.DS_Store
2+
node_modules
3+
package-lock.json

metadata.js add_metadata.js

+29-12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ function traverseDirectory(dir) {
2626
});
2727
}
2828

29+
// 计算翻译估计用时
30+
function calculateTranslationTime(content) {
31+
const wordCount = content.split(/\s+/).length;
32+
const hours = Math.ceil(wordCount / 500); // 假设平均翻译速度为每小时500词
33+
34+
if (hours <= 1) return '⭐️';
35+
if (hours <= 2) return '⭐️⭐️';
36+
if (hours <= 4) return '⭐️⭐️⭐️';
37+
if (hours <= 6) return '⭐️⭐️⭐️⭐️';
38+
return '⭐️⭐️⭐️⭐️⭐️';
39+
}
40+
2941
// 处理 Markdown 文件
3042
function processMarkdownFile(filePath) {
3143
const relativePath = path.relative(rootDir, filePath);
@@ -47,23 +59,28 @@ function processMarkdownFile(filePath) {
4759
}
4860

4961
if (matchingUrl) {
50-
const content = fs.readFileSync(filePath, 'utf8');
51-
52-
// 检查文件是否已经包含了注释
53-
if (content.includes('要翻译的文件:') && content.includes('Swift 文档源文件地址:')) {
54-
console.log(`Already updated: ${filePath}`);
55-
return;
56-
}
62+
let content = fs.readFileSync(filePath, 'utf8');
63+
const translationTime = calculateTranslationTime(content);
5764

58-
const newContent = `<!--
65+
const newComment = `<!--
5966
要翻译的文件:${githubBaseUrl}/${relativePath.replace(/\\/g, '/')}
6067
Swift 文档源文件地址:${matchingUrl}
61-
-->
68+
翻译估计用时:${translationTime}
69+
-->`;
6270

63-
${content}`;
71+
// 检查文件是否已经包含了注释
72+
const commentRegex = /<!--[\s\S]*?-->/;
73+
if (commentRegex.test(content)) {
74+
// 更新已存在的注释
75+
content = content.replace(commentRegex, newComment);
76+
console.log(`Updated existing comment: ${filePath}`);
77+
} else {
78+
// 添加新的注释
79+
content = `${newComment}\n\n${content}`;
80+
console.log(`Added new comment: ${filePath}`);
81+
}
6482

65-
fs.writeFileSync(filePath, newContent);
66-
console.log(`Updated: ${filePath}`);
83+
fs.writeFileSync(filePath, content);
6784
} else {
6885
console.log(`No matching URL found for: ${filePath}`);
6986
}

package.json

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "the-swift-programming-language-in-chinese",
3+
"version": "1.0.0",
4+
"description": "《The Swift Programming Language》in Chinese =============================================",
5+
"main": "add_issue.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "ISC",
12+
"dependencies": {
13+
"axios": "^1.7.3"
14+
}
15+
}

swift-6-beta.docc/GuidedTour/AboutSwift.md

+1

swift-6-beta.docc/GuidedTour/Compatibility.md

+1

swift-6-beta.docc/GuidedTour/GuidedTour.md

+1

swift-6-beta.docc/LanguageGuide/AccessControl.md

+1

swift-6-beta.docc/LanguageGuide/AdvancedOperators.md

+1

swift-6-beta.docc/LanguageGuide/AutomaticReferenceCounting.md

+1

swift-6-beta.docc/LanguageGuide/BasicOperators.md

+1

swift-6-beta.docc/LanguageGuide/ClassesAndStructures.md

+1

swift-6-beta.docc/LanguageGuide/Closures.md

+1

swift-6-beta.docc/LanguageGuide/CollectionTypes.md

+1

swift-6-beta.docc/LanguageGuide/Concurrency.md

+1

swift-6-beta.docc/LanguageGuide/ControlFlow.md

+1

swift-6-beta.docc/LanguageGuide/Deinitialization.md

+1

swift-6-beta.docc/LanguageGuide/Enumerations.md

+1

swift-6-beta.docc/LanguageGuide/ErrorHandling.md

+1

swift-6-beta.docc/LanguageGuide/Extensions.md

+1

swift-6-beta.docc/LanguageGuide/Functions.md

+1

swift-6-beta.docc/LanguageGuide/Generics.md

+1

swift-6-beta.docc/LanguageGuide/Inheritance.md

+1

swift-6-beta.docc/LanguageGuide/Initialization.md

+1

swift-6-beta.docc/LanguageGuide/Macros.md

+1

swift-6-beta.docc/LanguageGuide/MemorySafety.md

+1

swift-6-beta.docc/LanguageGuide/Methods.md

+1

swift-6-beta.docc/LanguageGuide/NestedTypes.md

+1

swift-6-beta.docc/LanguageGuide/OpaqueTypes.md

+1

swift-6-beta.docc/LanguageGuide/OptionalChaining.md

+1

swift-6-beta.docc/LanguageGuide/Properties.md

+1

swift-6-beta.docc/LanguageGuide/Protocols.md

+1

swift-6-beta.docc/LanguageGuide/StringsAndCharacters.md

+1

swift-6-beta.docc/LanguageGuide/Subscripts.md

+1

swift-6-beta.docc/LanguageGuide/TheBasics.md

+1

swift-6-beta.docc/LanguageGuide/TypeCasting.md

+1

swift-6-beta.docc/ReferenceManual/AboutTheLanguageReference.md

+1

swift-6-beta.docc/ReferenceManual/Attributes.md

+1

swift-6-beta.docc/ReferenceManual/Declarations.md

+1

swift-6-beta.docc/ReferenceManual/Expressions.md

+1

swift-6-beta.docc/ReferenceManual/GenericParametersAndArguments.md

+1

swift-6-beta.docc/ReferenceManual/LexicalStructure.md

+1

swift-6-beta.docc/ReferenceManual/Patterns.md

+1

swift-6-beta.docc/ReferenceManual/Statements.md

+1

0 commit comments

Comments
 (0)