Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Chinese translation for models - Part V #952

Open
wants to merge 10 commits into
base: support/3.0
Choose a base branch
from

Conversation

ZhengZhenyu
Copy link

Add Chinese translation for SimpleLicensing and Software models, this is the last patch for the series.

Add Chinese translation for SimpleLicensing and Software models, this is the last patch for the series.

Signed-off-by: Zhenyu Zheng <[email protected]>
Copy link
Collaborator

@bact bact left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few formatting requests and a question about how to represent the translated entry names.

model/Software/Classes/ContentIdentifier.md Outdated Show resolved Hide resolved
model/Software/Classes/Package.md Outdated Show resolved Hide resolved
model/Software/Properties/copyrightText.md Outdated Show resolved Hide resolved
model/Software/Properties/packageUrl.md Outdated Show resolved Hide resolved
Comment on lines +36 to +38
- 文件(file):文件代表一个单独的文件(默认)。

- 目录(directory):文件代表一个目录以及存储在该目录中的所有内容。
Copy link
Collaborator

@bact bact Jan 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 文件(file):文件代表一个单独的文件(默认)。
- 目录(directory):文件代表一个目录以及存储在该目录中的所有内容。
- file: (文件) 文件代表一个单独的文件(默认)。
- directory: (目录) 文件代表一个目录以及存储在该目录中的所有内容。

For entry names, should we put the exact entry names first then followed by the translation (if any) in the parentheses instead? This is to emphasis that the actual and expected value is the one displayed the first (outside the parentheses), and the one in parentheses is only for informational purpose.

@zvr @kestewart @goneall @NorioKobota @ZhengZhenyu What do you think?
Once we agree on this, I will update the translation guideline, as currently there's no clear recommended way to do this. (Currently, the guidelines implicitly saying that the entry names shouldn't be translated - by saying "Only model summaries, descriptions, and vocabulary entry descriptions can be translated. Other content, such as model metadata, cannot be translated.")

The standardization of this entry name + translated name (in parentheses or else) format is also needed if we want to have the translated entry name in the RDF. So the spec-parser can know where to look, and maybe generate something similar to:

<https://spdx.org/rdf/3.0.1/terms/Software/FileKindType/file> a owl:NamedIndividual,
        ns4:FileKindType ;
    rdfs:label "file"@en ;
    rdfs:comment "The file represents a single file (default)."@en ;
    rdfs:label "文件"@zh-Hans ;
    rdfs:comment "文件代表一个单独的文件(默认)。"@zh-Hans .

Of course, the normative and only label that we will use in any code will be English. Translations are only for informational purpose.

--

Another way to do this, esp if translation of entry names are not preferred to formally be occurs in the multilingual rdfs:label, is to move the translation of entry names to the entry description part (after :) instead.

Like this:

- file: (文件) 文件代表一个单独的文件(默认)。
- directory: (目录)  文件代表一个目录以及存储在该目录中的所有内容。

This way, there's no need to change the spec-parser and at the same time we can still keep the translated entry names -- as part of the rdfs:comment (and not the rdfs:label).

<https://spdx.org/rdf/3.0.1/terms/Software/FileKindType/file> a owl:NamedIndividual,
        ns4:FileKindType ;
    rdfs:label "file" ;
    rdfs:comment "The file represents a single file (default)."@en ;
    rdfs:comment "(文件) 文件代表一个单独的文件(默认)。"@zh-Hans .

--

Also in CJK (Chinese-Japanese-Korean) scripts, they have their own Unicode codepoints for parentheses.
For example, the closing parenthesis in the original text "- 文件(file):" above is a "Fullwidth Right Parenthesis" (U+FF09) which rendered with a "space" after but logically there is no space character between ")" and ":". We either have to make the parser aware of this, or we have to tell the translator to use an ASCII closing parenthesis (U+0029).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whichever approach makes it easier for the spec parser, since the humans will be reading the output of the parser (e.g. the HTML pages). I believe this would be having the translations follow the colon (-file: (文件) 文件代表一个单独的文件(默认)。) - but I'll leave that up to @zvr to decide.

Copy link
Member

@zvr zvr Jan 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The entries (things before the :) have to stay the same, since they are actually RDF individuals. So it has to be:

- file: something
- directory: something

If the translation prefers or requires it, the "something" part may start with the translated entry, but let's not mandate it, since I think some languages will not, for example, translate all relationship statuses.

Copy link
Collaborator

@bact bact Jan 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. I have update the change suggestions above according to @zvr and @goneall comments.

@bact bact added the Translation:zh-Hans Translation for Simplified Chinese label Jan 4, 2025
bact added 4 commits January 5, 2025 04:14
I will commit trivial minor suggested changes here, so we can focus on the question of entry names

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor suggested changes here, so we can focus on the question of entry names

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor suggested changes here, so we can focus on the question of entry names

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor suggested changes here, so we can focus on the question of entry names

Signed-off-by: Arthit Suriyawongkul <[email protected]>
model/SimpleLicensing/Properties/licenseExpression.md Outdated Show resolved Hide resolved
model/SimpleLicensing/Properties/customIdToUri.md Outdated Show resolved Hide resolved
model/Software/Classes/ContentIdentifier.md Show resolved Hide resolved
model/Software/Vocabularies/ContentIdentifierType.md Outdated Show resolved Hide resolved
model/Software/Vocabularies/SbomType.md Outdated Show resolved Hide resolved
bact added 5 commits January 5, 2025 04:22
I will commit trivial minor change suggestions here, so we can focus on the question of entry names.

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor change suggestions here, so we can focus on the question of entry names.

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor change suggestions here, so we can focus on the question of entry names.

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor change suggestions here, so we can focus on the question of entry names.

Signed-off-by: Arthit Suriyawongkul <[email protected]>
I will commit trivial minor change suggestions here, so we can focus on the question of entry names.

Signed-off-by: Arthit Suriyawongkul <[email protected]>
@bact bact requested review from zvr, goneall and kestewart January 5, 2025 04:25
Comment on lines +48 to +53
- 设计(design): SBOM是针对预期的、计划中的软件项目或产品,包括了新软件工件的组成部分(其中一些可能尚不存在)。
- 源代码(source): 直接从开发环境、源文件和用于构建产品包的依赖关系中创建的SBOM。
- 构建(build): 在构建软件的过程中生成的SBOM,以从源文件、依赖关系、构建组件、构建过程临时数据和其他SBOMs等数据中创建一个可发布的工件(例如,可执行文件或包)。
- 部署态(deployed): SBOM提供了系统上存在的软件清单。这可能是其他SBOM的组合,结合了配置选项的分析和在(可能是模拟的)部署环境中执行行为的检查。
- 运行时(runtime): 通过监控系统运行软件生成的SBOM,以捕获系统中存在的组件以及外部调用或动态加载的组件。在某些情况下,这也可能被称为“监控”或“动态”SBOM。
- 分析(analyzed): 在构建工件后,通过对工件(例如,可执行文件、包、容器和虚拟机镜像)进行分析生成的SBOM。这种分析通常需要多种启发式方法。在某些情况下,这也可能被称为“第三方”SBOM。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 设计(design): SBOM是针对预期的、计划中的软件项目或产品,包括了新软件工件的组成部分(其中一些可能尚不存在)。
- 源代码(source): 直接从开发环境、源文件和用于构建产品包的依赖关系中创建的SBOM。
- 构建(build): 在构建软件的过程中生成的SBOM,以从源文件、依赖关系、构建组件、构建过程临时数据和其他SBOMs等数据中创建一个可发布的工件(例如,可执行文件或包)。
- 部署态(deployed): SBOM提供了系统上存在的软件清单。这可能是其他SBOM的组合,结合了配置选项的分析和在(可能是模拟的)部署环境中执行行为的检查。
- 运行时(runtime): 通过监控系统运行软件生成的SBOM,以捕获系统中存在的组件以及外部调用或动态加载的组件。在某些情况下,这也可能被称为“监控”或“动态”SBOM。
- 分析(analyzed): 在构建工件后,通过对工件(例如,可执行文件、包、容器和虚拟机镜像)进行分析生成的SBOM。这种分析通常需要多种启发式方法。在某些情况下,这也可能被称为“第三方”SBOM。
- design: (设计) SBOM是针对预期的、计划中的软件项目或产品,包括了新软件工件的组成部分(其中一些可能尚不存在)。
- source: (源代码) 直接从开发环境、源文件和用于构建产品包的依赖关系中创建的SBOM。
- build: (构建) 在构建软件的过程中生成的SBOM,以从源文件、依赖关系、构建组件、构建过程临时数据和其他SBOMs等数据中创建一个可发布的工件(例如,可执行文件或包)。
- deployed: (部署态) SBOM提供了系统上存在的软件清单。这可能是其他SBOM的组合,结合了配置选项的分析和在(可能是模拟的)部署环境中执行行为的检查。
- runtime: (运行时) 通过监控系统运行软件生成的SBOM,以捕获系统中存在的组件以及外部调用或动态加载的组件。在某些情况下,这也可能被称为“监控”或“动态”SBOM。
- analyzed: (分析) 在构建工件后,通过对工件(例如,可执行文件、包、容器和虚拟机镜像)进行分析生成的SBOM。这种分析通常需要多种启发式方法。在某些情况下,这也可能被称为“第三方”SBOM。

Keep the entry name intact. Put the translated entry name in the description part instead.

Comment on lines +70 to +98
- 应用程序(application): 该元素是一个软件应用程序。
- 归档文件(archive): 该元素是一个或多个文件的归档集合(如.tar、.zip等)。
- 物料清单(bom): 该元素是一个物料清单。
- 配置数据(configuration): 该元素是配置数据。
- 容器(container): 该元素是一个容器镜像,可以被容器运行时应用程序使用。
- 数据(data): 该元素是数据。
- 设备(device): 该元素指的是芯片模组、处理器或电路板。
- 磁盘映像(diskImage): 该元素指的是可以写入磁盘、在虚拟机中启动等的磁盘映像。磁盘映像通常包含启动所需的大部分或全部组件,如引导加载程序、内核、固件、用户空间等。
- 设备驱动程序(deviceDriver): 该元素代表控制硬件设备的软件。
- 文档(documentation): 该元素是文档。
- 证据(evidence): 该元素是证明规范或要求已得到满足的证据。
- 可执行文件(executable): 该元素是可以计算机上运行的工件。
- 文件(file): 该元素是一个可以独立分发的单个文件(配置文件、静态链接的二进制文件、Kubernetes部署等)。
- 文件系统映像(filesystemImage): 该元素是一个可以写入磁盘(或虚拟)分区的文件系统映像。
- 固件(firmware): 该元素提供对设备硬件的低级控制。
- 框架(framework): 该元素是一个软件框架。
- 安装程序(install): 该元素用于在磁盘上安装软件。
- 库(library): 该元素是一个软件库。
- 清单(manifest): 该元素是一个软件清单。
- 模型(model): 该元素是机器学习或人工智能模型。
- 模块(module): 该元素是软件的一个模块。
- 操作系统(operatingSystem): 该元素是一个操作系统。
- 其他(other): 该元素不属于其他任何类别。
- 补丁(patch): 该元素包含一组用于更新、修复或改进另一个元素的更改。
- 平台(platform): 该元素代表一个运行时环境。
- 需求(requirement): 该元素提供了作为另一个元素输入所需的需求。
- 源代码(source): 该元素是单个或一组源代码文件。
- 规范(specification): 该元素是一个计划、指南或策略,说明如何创建、执行或分析应用程序。
- 测试(test): 该元素是用来验证软件元素功能的测试。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 应用程序(application): 该元素是一个软件应用程序。
- 归档文件(archive): 该元素是一个或多个文件的归档集合(如.tar、.zip等)。
- 物料清单(bom): 该元素是一个物料清单。
- 配置数据(configuration): 该元素是配置数据。
- 容器(container): 该元素是一个容器镜像,可以被容器运行时应用程序使用。
- 数据(data): 该元素是数据。
- 设备(device): 该元素指的是芯片模组、处理器或电路板。
- 磁盘映像(diskImage): 该元素指的是可以写入磁盘、在虚拟机中启动等的磁盘映像。磁盘映像通常包含启动所需的大部分或全部组件,如引导加载程序、内核、固件、用户空间等。
- 设备驱动程序(deviceDriver): 该元素代表控制硬件设备的软件。
- 文档(documentation): 该元素是文档。
- 证据(evidence): 该元素是证明规范或要求已得到满足的证据。
- 可执行文件(executable): 该元素是可以计算机上运行的工件。
- 文件(file): 该元素是一个可以独立分发的单个文件(配置文件、静态链接的二进制文件、Kubernetes部署等)。
- 文件系统映像(filesystemImage): 该元素是一个可以写入磁盘(或虚拟)分区的文件系统映像。
- 固件(firmware): 该元素提供对设备硬件的低级控制。
- 框架(framework): 该元素是一个软件框架。
- 安装程序(install): 该元素用于在磁盘上安装软件。
- 库(library): 该元素是一个软件库。
- 清单(manifest): 该元素是一个软件清单。
- 模型(model): 该元素是机器学习或人工智能模型。
- 模块(module): 该元素是软件的一个模块。
- 操作系统(operatingSystem): 该元素是一个操作系统。
- 其他(other): 该元素不属于其他任何类别。
- 补丁(patch): 该元素包含一组用于更新、修复或改进另一个元素的更改。
- 平台(platform): 该元素代表一个运行时环境。
- 需求(requirement): 该元素提供了作为另一个元素输入所需的需求。
- 源代码(source): 该元素是单个或一组源代码文件。
- 规范(specification): 该元素是一个计划、指南或策略,说明如何创建、执行或分析应用程序。
- 测试(test): 该元素是用来验证软件元素功能的测试。
- application: (应用程序) 该元素是一个软件应用程序。
- archive: (归档文件) 该元素是一个或多个文件的归档集合(如.tar、.zip等)。
- bom: (物料清单) 该元素是一个物料清单。
- configuration: (配置数据) 该元素是配置数据。
- container: (容器) 该元素是一个容器镜像,可以被容器运行时应用程序使用。
- data: (数据) 该元素是数据。
- device: (设备) 该元素指的是芯片模组、处理器或电路板。
- diskImage: (磁盘映像) 该元素指的是可以写入磁盘、在虚拟机中启动等的磁盘映像。磁盘映像通常包含启动所需的大部分或全部组件,如引导加载程序、内核、固件、用户空间等。
- deviceDriver: (设备驱动程序) 该元素代表控制硬件设备的软件。
- documentation: (文档) 该元素是文档。
- evidence: (证据) 该元素是证明规范或要求已得到满足的证据。
- executable: (可执行文件) 该元素是可以计算机上运行的工件。
- file: (文件) 该元素是一个可以独立分发的单个文件(配置文件、静态链接的二进制文件、Kubernetes部署等)。
- filesystemImage: (文件系统映像) 该元素是一个可以写入磁盘(或虚拟)分区的文件系统映像。
- firmware: (固件) 该元素提供对设备硬件的低级控制。
- framework: (框架) 该元素是一个软件框架。
- install: (安装程序) 该元素用于在磁盘上安装软件。
- library: (库) 该元素是一个软件库。
- manifest: (清单) 该元素是一个软件清单。
- model: (模型) 该元素是机器学习或人工智能模型。
- module: (模块) 该元素是软件的一个模块。
- operatingSystem: (操作系统) 该元素是一个操作系统。
- other: (其他) 该元素不属于其他任何类别。
- patch: (补丁) 该元素包含一组用于更新、修复或改进另一个元素的更改。
- platform: (平台) 该元素代表一个运行时环境。
- requirement: (需求) 该元素提供了作为另一个元素输入所需的需求。
- source: (源代码) 该元素是单个或一组源代码文件。
- specification: (规范) 该元素是一个计划、指南或策略,说明如何创建、执行或分析应用程序。
- test: (测试) 该元素是用来验证软件元素功能的测试。

Keep the entry name intact. Put the informative translated entry name in the description part instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Translation:zh-Hans Translation for Simplified Chinese
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants