diff --git a/LICENSE b/LICENSE index 81b0133..49215a1 100644 --- a/LICENSE +++ b/LICENSE @@ -19,3 +19,55 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Additional licensing terms and scope +==================================== + +Software +-------- + +The MIT License above applies to Hanji's software source code, user interface +implementation, and project-authored documentation, unless a file states +otherwise. + +Hanji-authored data +------------------- + +Except where otherwise noted, the original database structure, selection and +arrangement, and Hanji-authored metadata in the generated character dataset +are licensed under the Creative Commons Attribution 4.0 International License +(CC BY 4.0): + +https://creativecommons.org/licenses/by/4.0/ + +This grant applies only to copyright and database rights held by Kevin Deng. +It does not relicense third-party source data or fields derived from those +sources. Preferred attribution is: + +Hanji data by Kevin Deng, CC BY 4.0, https://github.com/sxzz/hanji + +Third-party materials +--------------------- + +Third-party data, derived fields, fonts, stroke-order data, and other assets +remain subject to their respective licenses and attribution requirements. The +applicable sources, transformations, and terms are listed in +public/notices/data-sources.md and the accompanying notice files. + +Project names and branding +-------------------------- + +The names "汉智" and "Hanji", and the project's official logos and branding +assets, are not included in the MIT or CC BY 4.0 grants above. + +Without prior written permission, modified versions, forks, and independently +operated deployments may not use those names or assets as the name or branding +of a project, product, website, service, or application, and may not imply that +they are official, affiliated with, sponsored by, or endorsed by Hanji. + +Truthful plain-text statements such as "based on Hanji" are permitted when +they do not serve as the modified work's branding and clearly identify the +work as unofficial and unaffiliated. These branding terms apply only to the +project names, logos, and branding assets; they do not limit the permissions +granted for the software or Hanji-authored data above. diff --git a/README.ja-JP.md b/README.ja-JP.md index 28f8289..6f17b0b 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -74,7 +74,7 @@ pnpm generate # 静的Webアプリ 各行のURLには行名を使います(`/char/着`)。5地域の表示字形、`aka`、`alternatives` もURLとして利用でき、クライアント側で対応する行へ移動します。たとえば `/char/国`、`/char/郞`、`/char/缐` です。ページの `rel=canonical` は行名のURLを指します。未確認関係はURL別名にはなりません。 -字表 `app/assets/data/chars.json` は `pnpm build:dataset` で生成し、リポジトリには**コミットしません**。アプリが直接インポートし、Viteも内容ハッシュ付きのダウンロードURLを出力します。静的生成の完了後、字表は外部サイトから参照できる固定URL `/data/chars.json` にもコピーされ、「アプリについて」ページもこのURLへリンクします。キャッシュは1時間有効で、期限切れ後もバックグラウンドで再検証している間は古い版を1日利用できます。出典とライセンスのメタデータは `shared/sources.ts` で直接管理し、ページとビルドスクリプトが共通でインポートするため、`sources.json` は生成しません。約12MBのフォントサブセットは `app/assets/fonts/` に生成し、同様にコミットしません。字表、筆順、フォント、旗はすべてViteのアセットグラフに入り、`/_nuxt/*` の長期immutableキャッシュで安全に再利用できます。変更され得る一方で安定URLが必要なNOTICEとライセンス文は `public/notices/` に分離し、利用のたびに再検証します。ビルド前には `pnpm build:data` を実行してください。元データのダウンロードは `data/raw/` 以下に種類別(`charlist/`、`opencc/`、`cmap/`、`font/`、`unihan/`、`frequency/`、`strokes/`)でキャッシュされ、gitignoreされています。ビルド時には、古いキャッシュから復元されたものの、現在の出典一覧には存在しないファイルを削除します。 +字表 `app/assets/data/chars.json` は `pnpm build:dataset` で生成し、リポジトリには**コミットしません**。アプリが直接インポートし、Viteも内容ハッシュ付きのダウンロードURLを出力します。静的生成の完了後、字表は外部サイトから参照できる固定URL `/data/chars.json` にもコピーされ、「アプリについて」ページもこのURLへリンクします。このURLは `Access-Control-Allow-Origin: *` を返し、下記のライセンスと第三者条項に従う限り、`fetch`、XHR、直接リンクなどでクロスオリジン利用できます。キャッシュは1時間有効で、期限切れ後もバックグラウンドで再検証している間は古い版を1日利用できます。出典とライセンスのメタデータは `shared/sources.ts` で直接管理し、ページとビルドスクリプトが共通でインポートするため、`sources.json` は生成しません。約12MBのフォントサブセットは `app/assets/fonts/` に生成し、同様にコミットしません。字表、筆順、フォント、旗はすべてViteのアセットグラフに入り、`/_nuxt/*` の長期immutableキャッシュで安全に再利用できます。変更され得る一方で安定URLが必要なNOTICEとライセンス文は `public/notices/` に分離し、利用のたびに再検証します。ビルド前には `pnpm build:data` を実行してください。元データのダウンロードは `data/raw/` 以下に種類別(`charlist/`、`opencc/`、`cmap/`、`font/`、`unihan/`、`frequency/`、`strokes/`)でキャッシュされ、gitignoreされています。ビルド時には、古いキャッシュから復元されたものの、現在の出典一覧には存在しないファイルを削除します。 ## デプロイ @@ -139,4 +139,9 @@ pnpm deploy ## License -[MIT](LICENSE) © [Kevin Deng](https://github.com/sxzz) +- ソースコード、UI実装、およびプロジェクト独自の文書:[MIT](LICENSE)。 +- 別途明記されている場合を除き、Hanjiが独自に作成したデータベース構造、データの選択・配列、および独自メタデータ:[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)。 +- 第三者データとその派生フィールド、フォント、筆順データ:上記の個別ライセンスが引き続き適用されます。 +- 「漢智」「Hanji」、公式Logo、およびブランド識別子は上記の許諾に含まれません。許可なく公開する改変版、フォーク、または独自運用版で、これらを名称やブランドに使用することはできません。「漢智をベースに開発」といった事実に即した説明は可能ですが、公式版であることや公式の承認を得ていることを示唆してはなりません。 + +適用範囲、第三者例外、名称利用規則の全文は [LICENSE](LICENSE) を参照してください。© [Kevin Deng](https://github.com/sxzz) diff --git a/README.md b/README.md index e9fa28a..7b0d4e7 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ pnpm generate # 静态应用 每一行的地址是它的行名(`/char/着`)。五地展示形、`aka` 和 `alternatives` 也可作为地址,由客户端跳到所属的行——例如 `/char/国`、`/char/郞`、`/char/缐`,页面用 `rel=canonical` 指回行名地址;未确认关系不是地址别名。 -字表 `app/assets/data/chars.json` 由 `pnpm build:dataset` 生成,**不提交**;应用直接导入它,Vite 也会输出带内容哈希的下载地址。静态生成结束后,字表会额外复制到固定的 `/data/chars.json` 供外部网站引用,“关于”页链接的也是这个地址;它缓存 1 小时,过期后可在后台重新验证期间继续使用旧版本 1 天。来源与许可元数据直接维护在 `shared/sources.ts`,由页面和构建脚本共同导入,不再生成 `sources.json`。约 12MB 的字体子集生成到 `app/assets/fonts/`,同样不提交;字表、笔顺、字体和旗帜都进入 Vite 资源图,由 `/_nuxt/*` 的长期 immutable 缓存安全复用。会变动而又需要稳定 URL 的 NOTICE 与 license 文本单独放在 `public/notices/`,每次使用前必须重新验证。构建前需先运行 `pnpm build:data`。原始下载缓存在 `data/raw/` 下按类别存放(`charlist/`、`opencc/`、`cmap/`、`font/`、`unihan/`、`frequency/`、`strokes/`),已 gitignore;构建会清理从旧缓存恢复、但已不在当前来源清单中的文件。 +字表 `app/assets/data/chars.json` 由 `pnpm build:dataset` 生成,**不提交**;应用直接导入它,Vite 也会输出带内容哈希的下载地址。静态生成结束后,字表会额外复制到固定的 `/data/chars.json` 供外部网站引用,“关于”页链接的也是这个地址。该地址已设置 `Access-Control-Allow-Origin: *`,可在遵守下文许可与第三方条款的前提下,通过 `fetch`、XHR 或直接链接跨域取用。它缓存 1 小时,过期后可在后台重新验证期间继续使用旧版本 1 天。来源与许可元数据直接维护在 `shared/sources.ts`,由页面和构建脚本共同导入,不再生成 `sources.json`。约 12MB 的字体子集生成到 `app/assets/fonts/`,同样不提交;字表、笔顺、字体和旗帜都进入 Vite 资源图,由 `/_nuxt/*` 的长期 immutable 缓存安全复用。会变动而又需要稳定 URL 的 NOTICE 与 license 文本单独放在 `public/notices/`,每次使用前必须重新验证。构建前需先运行 `pnpm build:data`。原始下载缓存在 `data/raw/` 下按类别存放(`charlist/`、`opencc/`、`cmap/`、`font/`、`unihan/`、`frequency/`、`strokes/`),已 gitignore;构建会清理从旧缓存恢复、但已不在当前来源清单中的文件。 ## 部署 @@ -139,4 +139,9 @@ pnpm deploy ## License -[MIT](LICENSE) © [Kevin Deng](https://github.com/sxzz) +- 程序代码、UI 实现与项目原创文档:[MIT](LICENSE)。 +- 除另有注明外,由汉智原创的数据库结构、数据选择与编排及原创元数据:[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)。 +- 第三方数据及其派生字段、字体与笔顺数据:继续适用上方列出的各自许可。 +- “汉智”“Hanji”及官方 Logo 和品牌标识不属于上述授权;未经许可,公开发布的修改版本、Fork 或独立部署不得将其用作名称或品牌。可以如实说明“基于汉智开发”,但不得暗示其为官方版本或受到官方认可。 + +完整的授权范围、第三方例外与名称使用规则见 [LICENSE](LICENSE)。© [Kevin Deng](https://github.com/sxzz) diff --git a/app/locales/ja-jp.ts b/app/locales/ja-jp.ts index 392468b..6bf3127 100644 --- a/app/locales/ja-jp.ts +++ b/app/locales/ja-jp.ts @@ -173,6 +173,7 @@ export const jaJP: typeof zhCN = { noticeTitle: '注意事項', thanksTitle: '謝辞', dataTitle: 'データの利用', + licenseTitle: 'ライセンスと名称', use: '用途', source: '出典', license: 'ライセンス', @@ -210,7 +211,16 @@ export const jaJP: typeof zhCN = { 'ページ上の「同形」や「異なる」という表示は、上記の資料、フォント、ルールの範囲内でのみ成り立ちます。地域の並び順やグループ分けは比較の便宜のためであり、優劣や立場を示すものではありません。正式な用途では元の規格や辞書を参照してください。各漢字の詳細ページには、対応する地域の辞書へのリンクを掲載しています。', notice4: '漢字は膨大なため、誤りを完全には避けられません。データの誤りを見つけた場合は{issues}でお知らせください。', - data1: '本アプリの漢字表データはJSON形式で公開しています:', + data1: + '本アプリの漢字表データはJSON形式で公開し、CORSによるクロスオリジンアクセスを許可しています。下記のライセンスと第三者条項に従う限り、fetch、XHR、直接リンクなどで自由に利用できます:', + licenseCode: + '本プロジェクトのソースコード、UI実装、およびプロジェクト独自の文書は{mit}で提供します。適用範囲と名称利用規則の全文は{licenseFile}を参照してください。', + licenseData: + '別途明記されている場合を除き、Hanjiが独自に作成したデータベース構造、データの選択・配列、および独自メタデータは{cc}で提供します。', + licenseThirdParty: + '第三者データとその派生フィールド、フォント、筆順データには、下記の個別ライセンスが引き続き適用されます。Hanjiのライセンスは、本プロジェクトが再ライセンスできない内容を対象としません。', + licenseBrand: + '「漢智」「Hanji」、公式Logo、およびブランド識別子は上記ライセンスに含まれません。許可なく公開する改変版、フォーク、または独自運用版で、これらをプロジェクト、製品、Webサイト、アプリの名称やブランドに使用することはできません。「漢智をベースに開発」といった事実に即した記述は可能ですが、公式版であることや公式の承認を得ていることを示唆してはなりません。', thanks: 'OpenCC、Unicode Unihan、zispace/hanzi-chars、Jun Da、words.hk、国家教育研究院、scriptin/kanji-frequency、Adobe Source Han、Noto CJK、Plangothic、WenJin Minchoのメンテナーの皆さまに感謝します。一字ずつ比較できる{tofu}は本プロジェクトの先駆けであり、同じくNotoシリーズを使って地域別字形を区別しています。', }, diff --git a/app/locales/ko-kr.ts b/app/locales/ko-kr.ts index 48bff0d..e92fe53 100644 --- a/app/locales/ko-kr.ts +++ b/app/locales/ko-kr.ts @@ -173,6 +173,7 @@ export const koKR: typeof zhCN = { noticeTitle: '유의 사항', thanksTitle: '감사의 말', dataTitle: '데이터 이용', + licenseTitle: '라이선스와 이름', use: '용도', source: '출처', license: '라이선스', @@ -210,7 +211,16 @@ export const koKR: typeof zhCN = { '페이지의 ‘같은 자형’ 또는 ‘다른 자형’ 표시는 위 자료·글꼴·규칙의 범위 안에서만 성립합니다. 지역의 나열과 그룹화는 비교를 편리하게 하기 위한 것으로, 우열이나 특정한 입장을 나타내지 않습니다. 공식적인 용도에는 원래 규범이나 사전을 참고하세요. 각 한자의 상세 페이지에는 해당 지역 사전으로 가는 링크가 있습니다.', notice4: '한자는 수가 방대해 오류를 완전히 피하기 어렵습니다. 데이터 오류를 발견하면 {issues}로 알려 주세요.', - data1: '이 앱의 한자표 데이터는 JSON 형식으로 공개합니다:', + data1: + '이 앱의 한자표 데이터는 JSON 형식으로 공개하며 CORS 교차 출처 접근을 허용합니다. 아래 라이선스와 제3자 조건을 준수하면 fetch, XHR, 직접 링크 등으로 자유롭게 이용할 수 있습니다:', + licenseCode: + '이 프로젝트의 소스 코드, UI 구현, 프로젝트 고유 문서는 {mit} 라이선스로 제공합니다. 전체 적용 범위와 이름 사용 규칙은 {licenseFile}을 참고하세요.', + licenseData: + '별도로 표시한 경우를 제외하고 Hanji가 독자적으로 작성한 데이터베이스 구조, 데이터 선택·배열, 고유 메타데이터는 {cc} 라이선스로 제공합니다.', + licenseThirdParty: + '제3자 데이터와 그 파생 필드, 글꼴, 필순 데이터에는 아래에 나열한 각 라이선스가 계속 적용됩니다. Hanji 라이선스는 이 프로젝트가 재허가할 권리가 없는 내용을 포함하지 않습니다.', + licenseBrand: + '‘漢智’, ‘Hanji’, 공식 Logo와 브랜드 식별 요소는 위 라이선스에 포함되지 않습니다. 허가 없이 공개하는 수정판, 포크, 독립 배포판은 이를 프로젝트·제품·웹사이트·앱의 이름이나 브랜드로 사용할 수 없습니다. ‘漢智를 기반으로 개발’처럼 사실을 알리는 표현은 가능하지만, 공식 버전이거나 공식 인증을 받았다고 암시해서는 안 됩니다.', thanks: 'OpenCC, Unicode Unihan, zispace/hanzi-chars, Jun Da, words.hk, 국가교육연구원, scriptin/kanji-frequency, Adobe Source Han, Noto CJK, Plangothic, WenJin Mincho 유지 관리자 여러분께 감사드립니다. 한 글자씩 비교할 수 있는 {tofu}는 이 프로젝트에 앞서 같은 방식으로 Noto 계열을 사용해 지역별 자형을 구분한 도구입니다.', }, diff --git a/app/locales/zh-cn.ts b/app/locales/zh-cn.ts index 11b3619..b87cc1b 100644 --- a/app/locales/zh-cn.ts +++ b/app/locales/zh-cn.ts @@ -167,6 +167,7 @@ export const zhCN = { noticeTitle: '声明', thanksTitle: '鸣谢', dataTitle: '取用数据', + licenseTitle: '许可与名称', use: '用途', source: '来源', license: '许可', @@ -203,7 +204,16 @@ export const zhCN = { notice3: '页面中的「同形」或「不同」只在上述资料、字体与规则内成立;地区的排列与分组只为方便对照,不表示优劣或立场。正式场合请以原始规范与词典为准;每个字的详情页都列有相应地区的字典链接。', notice4: '汉字数量巨大,出错难免。发现数据有误,请通过{issues}反馈。', - data1: '本应用的字表数据以JSON提供,可直接取用:', + data1: + '本应用的字表数据以JSON提供,并已开放CORS跨域访问;在遵守下列许可与第三方条款的前提下,可通过fetch、XHR、直接链接等方式自由取用:', + licenseCode: + '本项目的程序代码、界面实现与项目原创文档采用{mit}许可;完整的授权范围和名称使用规则见{licenseFile}。', + licenseData: + '除另有注明外,由汉智原创的数据库结构、数据选择与编排及原创元数据采用{cc}许可。', + licenseThirdParty: + '第三方数据及其派生字段、字体与笔顺数据仍适用下方列出的各自许可;汉智的许可不覆盖本项目无权再授权的内容。', + licenseBrand: + '「汉智」「Hanji」及官方Logo和品牌标识不包含在上述许可中。未经许可,公开发布的修改版本、Fork或独立部署不得将其用作项目、产品、网站或应用的名称与品牌;可以如实注明「基于汉智开发」,但不得暗示其为官方版本或受到官方认可。', thanks: '感谢OpenCC、Unicode Unihan、zispace/hanzi-chars、Jun Da、粤典、国家教育研究院、scriptin/kanji-frequency、Adobe Source Han、Noto CJK、Plangothic与WenJin Mincho的维护者。逐字对照工具{tofu}是本项目的先行者,同样用Noto系列区分地区字形。', }, diff --git a/app/locales/zh-hk.ts b/app/locales/zh-hk.ts index 28d1ca1..a9f8edb 100644 --- a/app/locales/zh-hk.ts +++ b/app/locales/zh-hk.ts @@ -168,6 +168,7 @@ export const zhHK: typeof zhCN = { noticeTitle: '聲明', thanksTitle: '鳴謝', dataTitle: '取用數據', + licenseTitle: '授權與名稱', use: '用途', source: '來源', license: '授權', @@ -204,7 +205,16 @@ export const zhHK: typeof zhCN = { notice3: '頁面中的「同形」或「不同」只在上述數據、字體與規則內成立;地區的排列和分組只為方便對照,不表示優劣或立場。正式場合請以原始規範與詞典為準;每個字的詳情頁都列有相應地區的字典連結。', notice4: '漢字數量龐大,出錯難免。發現數據有誤,請透過{issues}回報。', - data1: '本應用的字表數據以JSON提供,可直接取用:', + data1: + '本應用的字表數據以JSON提供,並已開放CORS跨來源存取;在遵守下列授權與第三方條款的前提下,可透過fetch、XHR、直接連結等方式自由取用:', + licenseCode: + '本項目的程式碼、介面實作與項目原創文件採用{mit}授權;完整的授權範圍與名稱使用規則見{licenseFile}。', + licenseData: + '除另有註明外,由漢智原創的數據庫結構、數據選擇與編排及原創中繼數據採用{cc}授權。', + licenseThirdParty: + '第三方數據及其衍生欄位、字體與筆順數據仍適用下方列出的各自授權;漢智的授權不涵蓋本項目無權再授權的內容。', + licenseBrand: + '「漢智」「Hanji」及官方Logo與品牌識別不包含在上述授權中。未經許可,公開發布的修改版本、Fork或獨立部署不得將其用作項目、產品、網站或應用的名稱與品牌;可以如實註明「基於漢智開發」,但不得暗示其為官方版本或受到官方認可。', thanks: '感謝OpenCC、Unicode Unihan、zispace/hanzi-chars、Jun Da、粵典、國家教育研究院、scriptin/kanji-frequency、Adobe Source Han、Noto CJK、Plangothic與WenJin Mincho的維護者。逐字對照工具{tofu}是本項目的先行者,同樣用Noto系列區分地區字形。', }, diff --git a/app/locales/zh-tw.ts b/app/locales/zh-tw.ts index a8fcbc0..039deca 100644 --- a/app/locales/zh-tw.ts +++ b/app/locales/zh-tw.ts @@ -168,6 +168,7 @@ export const zhTW: typeof zhCN = { noticeTitle: '聲明', thanksTitle: '鳴謝', dataTitle: '取用資料', + licenseTitle: '授權與名稱', use: '用途', source: '來源', license: '授權', @@ -204,7 +205,16 @@ export const zhTW: typeof zhCN = { notice3: '頁面中的「同形」或「不同」只在上述資料、字體與規則內成立;地區的排列與分組只為方便對照,不表示優劣或立場。正式場合請以原始規範與辭典為準;每個字的詳情頁都列有相應地區的字典連結。', notice4: '漢字數量龐大,出錯難免。發現資料有誤,請透過{issues}回報。', - data1: '本應用的字表資料以JSON提供,可直接取用:', + data1: + '本應用的字表資料以JSON提供,並已開放CORS跨來源存取;在遵守下列授權與第三方條款的前提下,可透過fetch、XHR、直接連結等方式自由取用:', + licenseCode: + '本專案的程式碼、介面實作與專案原創文件採用{mit}授權;完整的授權範圍與名稱使用規則見{licenseFile}。', + licenseData: + '除另有註明外,由漢智原創的資料庫結構、資料選擇與編排及原創中繼資料採用{cc}授權。', + licenseThirdParty: + '第三方資料及其衍生欄位、字體與筆順資料仍適用下方列出的各自授權;漢智的授權不涵蓋本專案無權再授權的內容。', + licenseBrand: + '「漢智」「Hanji」及官方Logo與品牌識別不包含在上述授權中。未經許可,公開發布的修改版本、Fork或獨立部署不得將其用作專案、產品、網站或應用的名稱與品牌;可以如實註明「基於漢智開發」,但不得暗示其為官方版本或受到官方認可。', thanks: '感謝OpenCC、Unicode Unihan、zispace/hanzi-chars、Jun Da、粵典、國家教育研究院、scriptin/kanji-frequency、Adobe Source Han、Noto CJK、Plangothic與WenJin Mincho的維護者。逐字對照工具{tofu}是本專案的先行者,同樣用Noto系列區分地區字形。', }, diff --git a/app/pages/about.vue b/app/pages/about.vue index 0ca7ce5..78bd7b1 100644 --- a/app/pages/about.vue +++ b/app/pages/about.vue @@ -1,9 +1,11 @@