diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..c1aa94312 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,70 @@ +name: Deploy site to GitHub Pages + +# The site uses jekyll-polyglot for internationalization, which is not on the +# GitHub Pages plugin whitelist. The native Pages build runs Jekyll in safe mode +# and would silently ignore the plugin, so we build the site ourselves here (safe +# mode off → polyglot runs) and publish the result with the Pages deploy actions. +# +# One-time setup by a maintainer: Settings → Pages → Build and deployment → +# Source → "GitHub Actions". + +on: + push: + branches: [gh-pages] + workflow_dispatch: + +# Allow this workflow to publish to GitHub Pages. +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment; don't cancel an in-progress production deploy. +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + # Pinned SHA kept in sync with .github/workflows/test.yml (actions/checkout v4). + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + with: + submodules: true + + - name: Set up Ruby + # Pinned SHA kept in sync with .github/workflows/test.yml (ruby/setup-ruby). + uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4 + with: + ruby-version: 3.3.4 + bundler-cache: true + + - name: Configure Pages + id: pages + uses: actions/configure-pages@v5 + + - name: Build with Jekyll + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + # Lets jekyll-github-metadata resolve repository data non-interactively. + PAGES_REPO_NWO: ${{ github.repository }} + JEKYLL_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: _site + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/404.md b/404.md index 595e6bca7..b7a55f7e9 100644 --- a/404.md +++ b/404.md @@ -1,6 +1,9 @@ --- title: 404 Not Found --- -Sorry! We could not find the page you were looking for. +{% comment %}This page has no layout, so baseurl-prefix its links here (no-op when baseurl empty).{% endcomment %} +{% assign bu_href = 'href="' | append: site.baseurl | append: '/' %} +{% capture notfound %}{% include t.html key="notfound_p1" %} -If you were trying to see a license, go to [licenses](/licenses). +{% include t.html key="notfound_p2" %}{% endcapture %} +{{ notfound | markdownify | replace: 'href="/', bu_href }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae8aebaa7..8811a9a1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,6 +34,18 @@ If your proposed license meets the above criteria, here's a few other things to * The text of the license should match the corresponding text found in [spdx/license-list-data](https://github.com/spdx/license-list-data/blob/master/text/). If there are errors there, please fix them in [spdx/license-list-XML](https://github.com/spdx/license-list-XML) (from which the plain text version is generated) so as to minimize license text variation and make it easier for choosealicense.com to eventually consume license texts directly from SPDX. * The body of the file should be the text of the license in plain text. +## Translating the site + +The site's interface and the human-readable *summaries* of licenses can be +translated into any number of languages; see [TRANSLATING.md](TRANSLATING.md) for +how it works and how to add a language. Two things to keep in mind: + +* The **legal text of a license is never translated** — only its non-legal summary + (`description`/`how`/`note`) is. +* Untranslated text falls back to English, so partial translations are welcome and + never break the site. Community translation runs through Weblate — see + [WEBLATE.md](WEBLATE.md). + ## Making changes The easiest way to make a change is to simply edit a file from your browser. diff --git a/Gemfile b/Gemfile index 9ba535a33..51b842501 100644 --- a/Gemfile +++ b/Gemfile @@ -8,6 +8,12 @@ versions = JSON.parse(Net::HTTP.get(URI('https://pages.github.com/versions.json' gem 'github-pages', versions['github-pages'] +# Internationalization. Not on the GitHub Pages plugin whitelist, so the site is +# built and deployed from GitHub Actions (.github/workflows/deploy.yml) rather than +# by the native Pages build. ~> 1.5 keeps compatibility with the Jekyll version +# pinned by the github-pages gem. +gem 'jekyll-polyglot', '~> 1.5' + # https://github.com/jekyll/jekyll/issues/8523 gem 'webrick', '~> 1.7' diff --git a/README.md b/README.md index cd8d19157..f0e49e649 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,19 @@ We catalog [select](CONTRIBUTING.md#adding-a-license) open source licenses with * Collaborate with and reinforce other licensing best practices and standards projects. * Not comprehensive. Seems like an odd goal, but there are a bajillion licenses out there. We're going to have to filter that down to a small list of those that matter. +## Translations + +The site is available in multiple languages: the default language is served at the +root and each other language under its own prefix (e.g. `/fr/`), generated from the +same source files via [jekyll-polyglot](https://github.com/untra/polyglot). Because +polyglot isn't a GitHub Pages plugin, the site is built and deployed from GitHub +Actions (see [`.github/workflows/deploy.yml`](.github/workflows/deploy.yml)). + +The interface and the non-legal license *summaries* are translatable; the **legal +text of each license is never translated**. See [TRANSLATING.md](TRANSLATING.md) to +add or update a translation (keyed YAML plus a Markdown file per prose page); +for community translation via Weblate, see [WEBLATE.md](WEBLATE.md). + ## Run it on your machine ### Managing Dependencies diff --git a/Rakefile b/Rakefile index 51a08c704..74e59bfcd 100644 --- a/Rakefile +++ b/Rakefile @@ -19,7 +19,8 @@ task :test do url_swap: { %r{https://choosealicense.com} => '' }, url_ignore: [%r{https://github.com/github/choosealicense.com/edit/gh-pages/_licenses/}, %r{https://help.github.com}, - %r{https://opensource.org}], + %r{https://opensource.org}, + %r{https://git.savannah.gnu.org}], hydra: { max_concurrency: 10 }, check_img_http: true).run end diff --git a/TRANSLATING.md b/TRANSLATING.md new file mode 100644 index 000000000..6443ee718 --- /dev/null +++ b/TRANSLATING.md @@ -0,0 +1,122 @@ +# Translating choosealicense.com + +The site can be displayed in several languages. The default language (English) +lives at the site root (e.g. `/licenses/mit/`); every other language is served +under its own prefix (e.g. `/fr/licenses/mit/`) by +[jekyll-polyglot](https://github.com/untra/polyglot). Anything that isn't +translated yet **automatically falls back to English**, so a partial translation +never breaks the build. + +**The legally meaningful text of a license is never translated** (see below). + +## What gets translated, and where + +| What | Where | Who | +|------|-------|-----| +| **Interface** — buttons, menus, headings, rule labels, the home page sections | `_data/i18n//ui.yml` and `_data/i18n//rules.yml` (keyed strings) | Anyone fluent in the language | +| **Prose pages** — About, Community, No License, Non-Software | a per-language Markdown file, e.g. `i18n/fr/about.md` | Anyone fluent in the language | +| **License summaries** (no legal value) — the `description` / `how` / `note` shown *about* a license | `_data/i18n//licenses.yml` | Someone comfortable with licensing concepts | +| **License legal text** — the body of `_licenses/*.txt` | — | **Nobody — never translated** | + +There are two kinds of source on purpose: short, reused strings (and the +data-driven home page and appendix) are **keys** in `ui.yml`, where per-string +tracking helps; whole prose pages are **per-language Markdown files**, where a +translator can edit one readable file and restructure the prose to read naturally +in their language. + +### Why the legal text is off-limits + +A license's operative text is the English (or official) version. Some licenses have +official or semi-official translations with their own status, and downstream tooling +such as [licensee](https://github.com/licensee/licensee) keys off the canonical +text. Translating it here would be misleading and could have legal consequences, so +the legal text is always shown as-is. + +## English is the single source of truth + +* **UI strings:** `_data/i18n/en/ui.yml` +* **Rule labels:** `_data/rules.yml` +* **License summaries:** each license's front matter in `_licenses/*.txt` +* **Prose pages:** the un-suffixed file (e.g. `about.md`) + +Nothing English is duplicated per language. Other languages only provide what they +translate; everything else falls back to English. + +## Adding or updating a translation + +### Interface, rule labels, license summaries (YAML) + +Edit (or create) `_data/i18n//ui.yml`, and optionally +`_data/i18n//rules.yml` and `_data/i18n//licenses.yml`. These are flat, +monolingual YAML — see [WEBLATE.md](WEBLATE.md) to do it through Weblate. + +### A prose page (one Markdown file per language) + +Copy the English page and translate it: + +``` +cp about.md i18n//about.md +``` + +Then, in `i18n//about.md`: + +* set `lang: ` in the front matter, +* keep the same `permalink:`, +* translate `title:` and `description:` — these become the localized ``, meta + description and Open Graph tags, +* translate the body (keep links and anchors such as `#for-users` intact). + +If a language has no file for a page, that language simply shows the English page. + +### Adding a brand-new language + +1. Add the language code to `languages:` in [`_config.yml`](_config.yml). +2. Create `_data/i18n/<code>/ui.yml` (copy `_data/i18n/en/ui.yml` and translate the + values; keep the keys). +3. Optionally add `_data/i18n/<code>/licenses.yml` and `_data/i18n/<code>/rules.yml`. +4. Optionally add the per-language prose pages (`i18n/<code>/about.md`, `i18n/<code>/community.md`, + `i18n/<code>/no-permission.md`, `i18n/<code>/non-software.md`). + +So a new language is **one line in `_config.yml` + 1–3 small YAML files + one Markdown +file per prose page you choose to translate** — and anything you skip falls back to +English. + +### Keys (YAML) + +* `ui.yml` keys are flat. Keys ending in `_html` contain raw HTML; everything else is + Markdown. Keep links and anchors (e.g. `#for-users`) intact. +* Placeholders like `%title%`, `%projects%`, `%license%`, `%language%` are filled in by + the site — keep them. +* `licenses.yml` is keyed by the lowercased SPDX id (e.g. `mit`, `gpl-3.0`). +* `rules.yml` mirrors `_data/rules.yml`: `<group>` → `<tag>` → `{ label, description }`. + +A lightweight test (`spec/i18n_spec.rb`) checks that translations only use keys that +exist in English and that license/rule ids are valid. It does **not** require +translations to be complete. + +## Community translation with Weblate + +The YAML tiers are ready for community translation via Weblate, and the per-language +Markdown pages are translated as files. See **[WEBLATE.md](WEBLATE.md)** for the +component setup, how source updates are detected and pulled, when to open a pull +request, and how to add a language on the Weblate side. + +## Notes for template authors (polyglot gotchas) + +If you edit the templates that build the multilingual links, two non-obvious +[polyglot](https://github.com/untra/polyglot) behaviours can bite — both are already +handled in the codebase, so just don't undo them: + +* **Placeholders use `%name%`, not `%{name}`.** They're substituted with Liquid's + `replace` filter (e.g. `{{ s | replace: '%title%', license.title }}`). A `}` in a + `replace` argument is read as the end of the `{{ … }}` tag and breaks the build, so + the brace-free `%name%` form is used everywhere (UI strings, `replace` calls, JS). +* **In `hreflang` `<link>` tags, write `href` before `hreflang`.** Polyglot rewrites + internal URLs per language but deliberately skips any link matching + `hreflang="<default_lang>" href=…`. With the reverse order the default language's + alternate would ship polyglot's internal `ferh=` placeholder instead of `href=`. + See the comment in [`_includes/header.html`](_includes/header.html). + +Also note: polyglot is not a GitHub Pages plugin, so its tags (e.g. `static_href`) +only resolve when the site is built outside Pages' safe mode — i.e. via the Actions +workflow or a local `jekyll serve`/`build`, never the native Pages build. diff --git a/WEBLATE.md b/WEBLATE.md new file mode 100644 index 000000000..3930a1705 --- /dev/null +++ b/WEBLATE.md @@ -0,0 +1,84 @@ +# Community translation with Weblate + +[Weblate](https://weblate.org/) lets people translate the site through a web UI and +opens pull requests back to this repository. The goal of this setup is that **English +stays the single source of truth** and an incomplete translation never blocks the +build — everything untranslated falls back to English. + +See [TRANSLATING.md](TRANSLATING.md) for what the files contain; this page is about +wiring them to Weblate and the day-to-day flow. + +## What Weblate handles, and what it doesn't + +* **Translated in Weblate (YAML, string by string):** `ui.yml` (interface + home + page), `rules.yml` (rule labels) and `licenses.yml` (license summaries). These are + monolingual YAML — ideal for the short, reused strings where per-string status and + change tracking pay off. +* **Translated as files (pull requests):** the per-language prose pages + (`i18n/<lang>/about.md`, `i18n/<lang>/community.md`, `i18n/<lang>/no-permission.md`, + `i18n/<lang>/non-software.md`). Whole-page prose reads better when edited as one file, so + these come in as ordinary PRs (copy the English file, see TRANSLATING.md). Weblate + can also manage them as Markdown files if you prefer a single workflow. +* **Never translated:** the legal text of licenses. + +## One-time setup (by a maintainer) + +Connect the Weblate project to this repository (Weblate pulls on every push and pushes +translations back as pull requests), then add one **monolingual** component per YAML +tier: + +| Component | File format | File mask | Monolingual base file | +|-----------|-------------|-----------|-----------------------| +| Interface | YAML | `_data/i18n/*/ui.yml` | `_data/i18n/en/ui.yml` | +| Rule labels | YAML | `_data/i18n/*/rules.yml` | English base — see note | +| License summaries | YAML | `_data/i18n/*/licenses.yml` | English base — see note | + +**Note on the rule/summary bases.** To avoid duplicating English, there is no +`en/rules.yml` or `en/licenses.yml` — English rule labels live in `_data/rules.yml` +and English summaries live in each license's front matter. Weblate's monolingual mode +needs an English base file, so either: + +* generate `_data/i18n/en/rules.yml` and `_data/i18n/en/licenses.yml` from those + canonical sources as a build/CI step and point Weblate's base at them (they remain + generated, never hand-edited), **or** +* keep `rules.yml` / `licenses.yml` out of Weblate and accept them as ordinary pull + requests, like the prose pages. + +`ui.yml` needs neither workaround — `_data/i18n/en/ui.yml` is its own English base. + +Recommended Weblate options for each component: enable "Update on push", set the +"Template for new translations" to the English base, and keep "Edit base file" off so +contributors can't change the source language. + +## How updates flow + +1. A maintainer changes English (e.g. edits `en/ui.yml` or an `about.md`). On push, + Weblate pulls and **flags the affected strings as needing update** in every + language (so translators see exactly what changed). +2. Translators update those strings in Weblate. +3. Weblate opens (or updates) a pull request with the new translations. Maintainers + review and merge — there are no extra build steps, and a half-finished language + still falls back to English. + +## When a translation should become a pull request + +* **Routine translation:** done in Weblate; it batches into a PR automatically. +* **A noticeably better translation than what's shipped:** open a normal pull request + (or improve it in Weblate). The translations in this repo are an initial, + AI-assisted baseline; replacing a string or a whole prose page with a clearly better + human translation is welcome and expected. +* **A new prose page translation:** add `i18n/<lang>/about.md` (etc.) in a pull request; see + [TRANSLATING.md](TRANSLATING.md). + +## Adding a new language + +1. Add the language code to `languages:` in [`_config.yml`](_config.yml) (this is what + actually makes the site build and offer the language). +2. In Weblate, add the language to each component. Weblate creates the + `_data/i18n/<code>/<file>.yml` files from the English template; translators fill + them in. +3. Prose pages for the new language are added as files (`i18n/<code>/about.md`, …) when + someone translates them; until then those pages fall back to English. + +Because of the English fallback, a language can be added and translated incrementally: +nothing has to be complete before it ships. diff --git a/_config.yml b/_config.yml index d1628fc02..0bf1a274f 100644 --- a/_config.yml +++ b/_config.yml @@ -5,6 +5,17 @@ relative_permalinks: false markdown: kramdown url: "https://choosealicense.com" +# Internationalization, powered by jekyll-polyglot. +# The default language stays at the site root (e.g. /licenses/mit/); every other +# language is generated under its own prefix (e.g. /fr/licenses/mit/) from the +# same single source files — no per-language duplication of pages or license texts. +# Adding a language = add its code below and a _data/i18n/<code>/ directory. +languages: ["en", "fr", "es", "pt", "zh", "ko", "ar"] +default_lang: "en" +# Paths served once at the site root and never prefixed per language (assets, etc.), +# so links to them keep working on translated pages. +exclude_from_localization: ["assets", "favicon.ico", "robots.txt", "CNAME", ".nojekyll"] + collections: licenses: output: true @@ -27,6 +38,7 @@ exclude: - LICENSE.md - Rakefile - README.md + - i18n/README.md - script - vendor/bundle - spec @@ -39,6 +51,7 @@ plugins: - jekyll-redirect-from - jekyll-seo-tag - jekyll-github-metadata # For 'Improve this page' links + - jekyll-polyglot # Internationalization (built via GitHub Actions, see .github/workflows/deploy.yml) sass: style: :compressed diff --git a/_data/i18n/README.md b/_data/i18n/README.md new file mode 100644 index 000000000..f826c163c --- /dev/null +++ b/_data/i18n/README.md @@ -0,0 +1,12 @@ +# Translations live in two trees + +To work with Jekyll (which separates *data* from rendered *pages*), each language's +translation is split across two mirrored trees: + +- `_data/i18n/<lang>/` — interface strings, rule labels and license summaries + (keyed YAML: `ui.yml`, `rules.yml`, `licenses.yml`). +- `i18n/<lang>/` — the translated prose pages (About, Community, No License, + Non-Software), one Markdown file per page. + +English is the single source of truth; anything untranslated falls back to English. +See `TRANSLATING.md` and `WEBLATE.md` at the repository root. diff --git a/_data/i18n/ar/licenses.yml b/_data/i18n/ar/licenses.yml new file mode 100644 index 000000000..ebf06c962 --- /dev/null +++ b/_data/i18n/ar/licenses.yml @@ -0,0 +1,106 @@ +# الملخصات العربية للتراخيص (قيمة غير قانونية). المفتاح = معرّف SPDX بحروف صغيرة. +# تُترجَم الحقول الوصفية فقط؛ وأي حقل غائب يرجع إلى المقدّمة الإنجليزية لملف +# _licenses/<id>.txt، والنص القانوني للترخيص لا يُترجَم أبدًا. + +agpl-3.0: + description: |- + تتوقّف أذونات هذا الترخيص — وهو أقوى تراخيص الحقوق المتروكة — على إتاحة الشيفرة المصدرية الكاملة للأعمال المرخّصة وتعديلاتها، بما في ذلك الأعمال الأكبر التي تستخدم عملًا مرخّصًا، بالترخيص نفسه. ويجب الحفاظ على إشعارات حقوق النشر والترخيص. ويمنح المساهمون صراحةً حقوق براءات اختراع. وعندما تُستخدم نسخة معدّلة لتقديم خدمة عبر شبكة، يجب إتاحة الشيفرة المصدرية الكاملة لتلك النسخة المعدّلة. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي مؤسسة البرمجيات الحرة بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في نهاية الترخيص. + +apache-2.0: + description: |- + ترخيص متساهل تتطلّب شروطه الرئيسية الحفاظ على إشعارات حقوق النشر والترخيص. ويمنح المساهمون صراحةً حقوق براءات اختراع. ويمكن توزيع الأعمال المرخّصة وتعديلاتها والأعمال الأكبر بشروط مختلفة ودون شيفرة مصدرية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">توصي</a> مؤسسة برمجيات Apache بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى ترويسة كل ملف مصدري. ويمكنك العثور على هذا الإشعار في الملحق في آخر نص الترخيص تمامًا. + +bsd-2-clause: + description: |- + ترخيص متساهل يأتي في صورتين، <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> و<a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. وكلاهما يختلف اختلافًا طفيفًا جدًا عن ترخيص MIT. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. استبدل [year] بالسنة الحالية و[fullname] باسم (أو أسماء) أصحاب حقوق النشر. + +bsd-3-clause: + nickname: |- + ترخيص BSD المعدّل + description: |- + ترخيص متساهل يشبه <a href="/licenses/bsd-2-clause/">ترخيص BSD 2-Clause</a>، لكن مع بند ثالث يمنع الآخرين من استخدام اسم صاحب حقوق النشر أو مساهميه للترويج للمنتجات المشتقّة دون موافقة كتابية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. استبدل [year] بالسنة الحالية و[fullname] باسم (أو أسماء) أصحاب حقوق النشر. + +bsl-1.0: + description: |- + ترخيص متساهل بسيط لا يتطلّب سوى الحفاظ على إشعارات حقوق النشر والترخيص عند التوزيع في صورة مصدرية (لا ثنائية). ويمكن توزيع الأعمال المرخّصة وتعديلاتها والأعمال الأكبر بشروط مختلفة ودون شيفرة مصدرية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي Boost بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في <a href="https://www.boost.org/users/license.html#FAQ">الأسئلة الشائعة لترخيص Boost Software License</a>. + +cc0-1.0: + description: |- + يتنازل <a href="https://creativecommons.org/publicdomain/zero/1.0/">إهداء المشاع الإبداعي CC0 إلى الملك العام</a> عن المصلحة في حقوق النشر في عمل أنشأته ويُهديه إلى الملك العام عالميًا. استخدم CC0 للتخلّي عن حقوق النشر كليًا وضمان أوسع انتشار لعملك. وكما هو الحال مع Unlicense وتراخيص البرمجيات المعتادة، يُسقط CC0 الضمانات. وCC0 يشبه إلى حدٍّ بعيد Unlicense. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + يوصي المشاع الإبداعي بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن <a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">العثور على هذا الإشعار في موقعهم</a>. + +epl-2.0: + description: |- + يوفّر ترخيص الحقوق المتروكة هذا، المؤاتي للأعمال التجارية، القدرة على ترخيص النسخ الثنائية تجاريًا؛ ومنح براءة اختراع حديثًا ومعفى من الإتاوات؛ وإمكانية أن تستخدم الأعمال المرتبطة تراخيص أخرى، بما فيها التجارية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + +gpl-2.0: + nickname: |- + GNU GPLv2 + description: |- + GNU GPL هو أوسع تراخيص البرمجيات الحرة استخدامًا، وله متطلّب حقوق متروكة قوي. وعند توزيع الأعمال المشتقّة، يجب إتاحة الشيفرة المصدرية للعمل بالترخيص نفسه. وتوجد عدة صور من GNU GPL، لكلٍّ منها متطلّبات مختلفة. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي مؤسسة البرمجيات الحرة بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في نهاية الترخيص. + +gpl-3.0: + nickname: |- + GNU GPLv3 + description: |- + تتوقّف أذونات ترخيص الحقوق المتروكة القوي هذا على إتاحة الشيفرة المصدرية الكاملة للأعمال المرخّصة وتعديلاتها، بما في ذلك الأعمال الأكبر التي تستخدم عملًا مرخّصًا، بالترخيص نفسه. ويجب الحفاظ على إشعارات حقوق النشر والترخيص. ويمنح المساهمون صراحةً حقوق براءات اختراع. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً COPYING، وفق أعراف GNU) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي مؤسسة البرمجيات الحرة بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في نهاية الترخيص. + +lgpl-2.1: + nickname: |- + GNU LGPLv2.1 + description: |- + يُستخدم GNU LGPL أساسًا لمكتبات البرمجيات، وهو يتطلّب ترخيص الأعمال المشتقّة بالترخيص نفسه، لكن الأعمال التي تكتفي بالارتباط به لا تخضع لهذا القيد. وتوجد نسختان شائعتا الاستخدام من GNU LGPL. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي مؤسسة البرمجيات الحرة بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في نهاية الترخيص. + +mit: + nickname: "MIT" + description: |- + ترخيص متساهل قصير وبسيط بشروط لا تتطلّب سوى الحفاظ على إشعارات حقوق النشر والترخيص. ويمكن توزيع الأعمال المرخّصة وتعديلاتها والأعمال الأكبر بشروط مختلفة ودون شيفرة مصدرية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. استبدل [year] بالسنة الحالية و[fullname] باسم (أو أسماء) أصحاب حقوق النشر. + +mpl-2.0: + description: |- + تتوقّف أذونات ترخيص الحقوق المتروكة الضعيف هذا على إتاحة الشيفرة المصدرية للملفات المرخّصة وتعديلات تلك الملفات بالترخيص نفسه (أو، في حالات معيّنة، أحد تراخيص GNU). ويجب الحفاظ على إشعارات حقوق النشر والترخيص. ويمنح المساهمون صراحةً حقوق براءات اختراع. ومع ذلك، يمكن توزيع عمل أكبر يستخدم العمل المرخّص بشروط مختلفة ودون شيفرة مصدرية للملفات المضافة في العمل الأكبر. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً LICENSE أو LICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص الترخيص إلى الملف. + note: |- + توصي مؤسسة Mozilla بخطوة إضافية تتمثّل في إضافة إشعار نموذجي إلى أعلى كل ملف. ويمكن العثور على هذا الإشعار في نهاية الترخيص (Exhibit A). + +unlicense: + description: |- + ترخيص بلا أي شروط على الإطلاق، يُهدي الأعمال إلى الملك العام. ويمكن توزيع الأعمال غير المرخّصة وتعديلاتها والأعمال الأكبر بشروط مختلفة ودون شيفرة مصدرية. + how: |- + أنشئ ملفًا نصيًا (يُسمّى عادةً UNLICENSE أو UNLICENSE.txt) في جذر شيفرتك المصدرية وانسخ نص إخلاء مسؤولية الترخيص إلى الملف. diff --git a/_data/i18n/ar/rules.yml b/_data/i18n/ar/rules.yml new file mode 100644 index 000000000..92a3efa62 --- /dev/null +++ b/_data/i18n/ar/rules.yml @@ -0,0 +1,61 @@ +# التسميات والأوصاف العربية للقواعد (الأذونات / الشروط / القيود). +# مصدر الحقيقة يبقى _data/rules.yml (بالإنجليزية): منه يأتي الترتيب والمعرّفات، +# وأي مدخل غائب هنا يرجع إلى الإنجليزية. +# البنية: <المجموعة> ← <tag> ← { label, description }. + +permissions: + commercial-use: + label: "استخدام تجاري" + description: "يمكن استخدام المادة المرخّصة ومشتقّاتها لأغراض تجارية." + modifications: + label: "التعديل" + description: "يمكن تعديل المادة المرخّصة." + distribution: + label: "التوزيع" + description: "يمكن توزيع المادة المرخّصة." + private-use: + label: "استخدام خاص" + description: "يمكن استخدام المادة المرخّصة وتعديلها على نحو خاص." + patent-use: + label: "استخدام البراءات" + description: "يمنح هذا الترخيص صراحةً حقوق براءات اختراع من المساهمين." + +conditions: + include-copyright: + label: "إشعار الترخيص وحقوق النشر" + description: "يجب تضمين نسخة من الترخيص وإشعار حقوق النشر مع المادة المرخّصة." + include-copyright--source: + label: "إشعار الترخيص (للمصدر)" + description: "يجب تضمين نسخة من الترخيص وإشعار حقوق النشر مع المادة المرخّصة في صورة مصدرية، لكنها ليست مطلوبة للنسخ الثنائية." + document-changes: + label: "توثيق التغييرات" + description: "يجب توثيق التغييرات التي أُجريت على المادة المرخّصة." + disclose-source: + label: "الكشف عن المصدر" + description: "يجب إتاحة الشيفرة المصدرية عند توزيع المادة المرخّصة." + network-use-disclose: + label: "الاستخدام الشبكي توزيع" + description: "يُمنح المستخدمون الذين يتفاعلون مع المادة المرخّصة عبر شبكة الحق في الحصول على نسخة من الشيفرة المصدرية." + same-license: + label: "الترخيص نفسه" + description: "يجب إصدار التعديلات بالترخيص نفسه عند توزيع المادة المرخّصة. وفي بعض الحالات يمكن استخدام ترخيص مماثل أو ذي صلة." + same-license--file: + label: "الترخيص نفسه (ملف)" + description: "يجب إصدار تعديلات الملفات القائمة بالترخيص نفسه عند توزيع المادة المرخّصة. وفي بعض الحالات يمكن استخدام ترخيص مماثل أو ذي صلة." + same-license--library: + label: "الترخيص نفسه (مكتبة)" + description: "يجب إصدار التعديلات بالترخيص نفسه عند توزيع المادة المرخّصة. وفي بعض الحالات يمكن استخدام ترخيص مماثل أو ذي صلة، أو قد لا ينطبق هذا الشرط على الأعمال التي تستخدم المادة المرخّصة كمكتبة." + +limitations: + trademark-use: + label: "استخدام العلامات التجارية" + description: "ينصّ هذا الترخيص صراحةً على أنه لا يمنح حقوق علامات تجارية، مع أن التراخيص التي تخلو من مثل هذا النص على الأرجح لا تمنح أي حقوق علامات تجارية ضمنية." + liability: + label: "المسؤولية" + description: "يتضمّن هذا الترخيص تحديدًا للمسؤولية." + patent-use: + label: "استخدام البراءات" + description: "ينصّ هذا الترخيص صراحةً على أنه لا يمنح أي حقوق في براءات اختراع المساهمين." + warranty: + label: "الضمان" + description: "ينصّ هذا الترخيص صراحةً على أنه لا يقدّم أي ضمان." diff --git a/_data/i18n/ar/ui.yml b/_data/i18n/ar/ui.yml new file mode 100644 index 000000000..30733b41d --- /dev/null +++ b/_data/i18n/ar/ui.yml @@ -0,0 +1,135 @@ +# الترجمة العربية لنصوص الواجهة ونصوص الصفحات. +# أي مفتاح غائب هنا يرجع تلقائيًا إلى الإنجليزية (_data/i18n/en/ui.yml). +# المفاتيح المنتهية بـ _html تحتوي على HTML خام؛ أما القيم متعددة الأسطر الأخرى فهي +# بصيغة Markdown. ملخصات التراخيص في licenses.yml وتسميات القواعد في rules.yml. +# النصوص القانونية للتراخيص لا تُترجم أبدًا. + +# --- بيانات اللغة ------------------------------------------------------------ +language_name: "العربية" +language_selector_label: "اللغة" +# اتجاه الكتابة: "rtl" (من اليمين إلى اليسار، مثل العربية). +text_direction: "rtl" + +# --- التنقل وتذييل الصفحة ----------------------------------------------------- +nav_about: "حول" +nav_terms: "شروط الخدمة" +nav_improve: "ساعد في تحسين هذه الصفحة" +footer_license_notice_html: |- + محتوى هذا الموقع مرخّص بموجب <a href="https://creativecommons.org/licenses/by/3.0/">رخصة المشاع الإبداعي نَسب المُصنَّف 3.0 غير المنقولة</a>. +footer_curated_html: |- + أُعِدّ بكل ❤️ من قِبل <a href="https://github.com">GitHub, Inc.</a> و<a href="https://github.com/github/choosealicense.com">أنت!</a> + +# --- مسار التنقل ------------------------------------------------------------- +breadcrumb_home: "الرئيسية" +breadcrumb_licenses: "التراخيص" + +# --- عناوين مجموعات القواعد --------------------------------------------------- +rules_permissions: "الأذونات" +rules_conditions: "الشروط" +rules_limitations: "القيود" + +# --- تلميحات القواعد (تُجمَّع في assets/js/app.js) ---------------------------- +# قالب قابل لإعادة الترتيب: %label% و%category% و%description% تُملأ لكل قاعدة. +tooltip_format: "%label% (%category%): %description%" +tooltip_cat_permissions: "إذن" +tooltip_cat_conditions: "شرط" +tooltip_cat_limitations: "قيد" + +# --- الشريط الجانبي لصفحة الترخيص -------------------------------------------- +sidebar_copy: "نسخ نص الترخيص إلى الحافظة" +sidebar_copied: "تم النسخ!" +sidebar_suggest_heading: "اقترح هذا الترخيص" +sidebar_suggest_body_md: |- + افتح طلب سحب (pull request) لاقتراح هذا الترخيص لمشروع [غير مرخّص](/no-permission/). كن لطيفًا: تحقق مما إذا كان قد سبق اقتراح ترخيص، وحاول اقتراح ترخيص يناسب [مجتمع](/community/) المشروع، وحافظ على تواصل ودّي مع القائمين على المشروع. +sidebar_repo_placeholder: "أدخل رابط مستودع GitHub" +sidebar_how_heading: "كيفية تطبيق هذا الترخيص" +sidebar_optional_heading: "خطوات اختيارية" +sidebar_source: "المصدر" +sidebar_using_heading: "من يستخدم هذا الترخيص؟" +# ملاحظة لمديري الحزم. %id% (معرّف SPDX داخل <code>) و%languages% (روابط اللغات) +# و%clauses% تبقى دون ترجمة؛ يُترجَم النص المحيط فقط. +sidebar_pkg_html: |- + أضف %id%%clauses% إلى وصف حزمة مشروعك، إن أمكن (مثل %languages%). سيضمن ذلك عرض الترخيص في أدلّة الحزم. +sidebar_pkg_only_html: " (أو %id% لمنع الإصدارات المستقبلية)" +sidebar_pkg_ofl_html: " (أو %id% إذا تم تحديد اسم خط محجوز بعد بيان حقوق النشر)" +sidebar_gplcc_html: |- + إذا كنت ترغب في أن يتبنّى مشروعك بند المعالجة الخاص بترخيص GPL-3.0، فأضف <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">نص</a> <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> إلى ملف باسم <code>COMMITMENT</code> في المجلد نفسه الذي يضم ملف ترخيص %id%. + +# --- بطاقات عرض التراخيص (/licenses/) ---------------------------------------- +overview_view_full: "عرض %title% كاملاً »" + +# --- جملة «من يستخدمه» (الصفحة الرئيسية) ------------------------------------- +# فواصل قائمة المشاريع؛ الفاصل قبل العنصر الأخير يستخدم «و» العربية. +using_separator: "، " +using_last_separator: " و" +using_sentence_plural: "يستخدم %projects% ترخيص %license%." +using_sentence_singular: "يستخدم %projects% ترخيص %license%." + +# --- عناوين الصفحات ---------------------------------------------------------- +page_title_home: "اختر ترخيصًا مفتوح المصدر" +page_title_licenses: "التراخيص" +page_title_appendix: "الملحق" +page_title_404: "404 الصفحة غير موجودة" + +# --- الصفحة الرئيسية ---------------------------------------------------------- +home_intro: |- + يحمي الترخيص مفتوح المصدر المساهمين والمستخدمين. ولن تقترب الشركات والمطوّرون المتمرّسون من مشروع يفتقر إلى هذه الحماية. +home_situations_question: "أيٌّ مما يلي يصف وضعك على أفضل وجه؟" +home_community_title: "أحتاج إلى العمل ضمن مجتمع." +home_community_content: |- + استخدم [الترخيص الذي يفضّله المجتمع](community/) الذي تساهم فيه أو تعتمد عليه. سيندمج مشروعك معه تمامًا. + + إذا كانت لديك تبعية بلا ترخيص، فاطلب من القائمين عليها [إضافة ترخيص](no-permission/#for-users). +home_permissive_title: "أريده بسيطًا ومتساهلًا." +home_permissive_content: |- + [ترخيص MIT](licenses/mit/) قصير ومباشر. يتيح للناس فعل أي شيء تقريبًا بمشروعك، مثل إنشاء نسخ مغلقة المصدر وتوزيعها. +home_copyleft_title: "يهمّني مشاركة التحسينات." +home_copyleft_content: |- + يتيح [GNU GPLv3](licenses/gpl-3.0/) أيضًا للناس فعل أي شيء تقريبًا بمشروعك، *باستثناء* توزيع نسخ مغلقة المصدر. +home_more_question: "ماذا لو لم يناسبني أيٌّ من هذه الخيارات؟" +home_nonsoftware_title: "مشروعي ليس برمجيات." +home_nonsoftware_content: |- + [توجد تراخيص لذلك](non-software/). +home_morechoices_title: "أريد المزيد من الخيارات." +home_morechoices_content: |- + [تتوفر تراخيص أخرى](licenses/). +home_nolicense_title: "لا أريد اختيار ترخيص." +home_nolicense_content: |- + [إليك ما يحدث إن لم تفعل](no-permission/). + +# --- صفحة التراخيص (/licenses/) ---------------------------------------------- +licenses_intro_html: |- + تمنح التراخيص مفتوحة المصدر أي شخص الإذن باستخدام البرمجيات المرخّصة وتعديلها ومشاركتها لأي غرض، رهنًا بشروط تحفظ مصدر البرمجيات وانفتاحها. التراخيص التالية مرتّبة بحسب عدد الشروط، من الأكثر (GNU AGPLv3) إلى اللاشرط (Unlicense). لاحظ أن التراخيص الشائعة المعروضة في <a href="/">الصفحة الرئيسية</a> (GNU GPLv3 وMIT) تقع ضمن هذا الطيف. +licenses_appendix_note_html: |- + إذا كنت تبحث عن جدول مرجعي بكل ترخيص على choosealicense.com، فراجع <a href="/appendix">الملحق</a>. +licenses_outro_html: |- + تمثّل التراخيص أعلاه الطيف الكامل للتراخيص مفتوحة المصدر، من الأشد حمايةً إلى غير المشروطة. ومن المفترض أن يناسب أحدها معظم المشاريع الجديدة مفتوحة المصدر. وتوجد تراخيص أخرى كثيرة مفتوحة المصدر، بما في ذلك إصدارات أقدم وبدائل قريبة من بعض ما سبق. راجع المصادر المدرجة في <a href="/about/">صفحة «حول»</a> إن أردت قراءة المزيد. + + إذا كنت تعرف بالفعل ما تفعله ولديك ترخيص تفضّل استخدامه، فهذا رائع! لسنا هنا لتغيير رأيك. لكن إذا حيّرك العدد الكبير من الخيارات، فربما يمكننا مساعدتك. + +# --- الملحق (/appendix/) ----------------------------------------------------- +appendix_intro: |- + للرجوع إليه، إليك جدولًا بكل ترخيص موصوف في [مستودع choosealicense.com](https://github.com/github/choosealicense.com). + + إذا كنت هنا لاختيار ترخيص، **[فابدأ من الصفحة الرئيسية](/)** لمعاينة بضعة تراخيص تناسب معظم الحالات. +appendix_col_license: "الترخيص" +appendix_legend_heading: "مفتاح الرموز" +appendix_legend_permissions_html: |- + تمنح التراخيص مفتوحة المصدر للعموم <span class="license-permissions"><span class="license-marker">✓</span></span> <b>أذونات</b> للقيام بأمور مع الأعمال المرخّصة قد تمنعها لولا ذلك قوانين حقوق النشر أو غيرها من قوانين «الملكية الفكرية». +appendix_legend_conditions_html: |- + يخضع منح الأذونات في معظم التراخيص مفتوحة المصدر للالتزام بـ<span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>شروط</b>. +appendix_legend_limitations_html: |- + كما تحمل معظم التراخيص مفتوحة المصدر <span class="license-limitations"><span class="license-marker">✕</span></span> <b>قيودًا</b> تُخلي عادةً المسؤولية وتُسقط الضمان، وتستثني أحيانًا براءات الاختراع أو العلامات التجارية صراحةً من منح الترخيص. + +# --- صفحة 404 ---------------------------------------------------------------- +notfound_p1: |- + عذرًا! لم نتمكّن من العثور على الصفحة التي تبحث عنها. +notfound_p2: |- + إذا كنت تحاول الاطّلاع على ترخيص، فاذهب إلى [التراخيص](/licenses). + +# --- شريط اقتراح اللغة بـ JavaScript (assets/js/i18n.js) --------------------- +# %language% (في banner_switch) = اسم اللغة المقترحة؛ أما banner_suggest فيضمّن +# الاسم مباشرةً لتراعي كل لغة قواعدها وصياغتها. +banner_suggest: "هذه الصفحة متوفرة أيضًا **بالعربية**." +banner_switch: "التبديل إلى **العربية**" +banner_dismiss: "تجاهل" diff --git a/_data/i18n/en/ui.yml b/_data/i18n/en/ui.yml new file mode 100644 index 000000000..4c1da177d --- /dev/null +++ b/_data/i18n/en/ui.yml @@ -0,0 +1,141 @@ +# Canonical English UI / prose strings — the source of truth and the base file +# translators (and Weblate) work from. Every other language overrides these in +# _data/i18n/<lang>/ui.yml; anything missing falls back here automatically. +# +# Keys ending in _html hold raw HTML and are emitted as-is; all other multi-line +# values are Markdown. This file only covers the *interface* and page prose — +# license summaries live in _data/i18n/<lang>/licenses.yml and rule labels in +# _data/i18n/<lang>/rules.yml. License legal texts are never translated. + +# --- Language metadata ------------------------------------------------------- +language_name: "English" +language_selector_label: "Language" +# Writing direction: "ltr" (default) or "rtl" (right-to-left, e.g. Arabic). +# Other languages inherit this "ltr"; only RTL languages override it. +text_direction: "ltr" + +# --- Chrome: navigation & footer -------------------------------------------- +nav_about: "About" +nav_terms: "Terms of Service" +nav_improve: "Help improve this page" +footer_license_notice_html: |- + The content of this site is licensed under the <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported License</a>. +footer_curated_html: |- + Curated with ❤️ by <a href="https://github.com">GitHub, Inc.</a> and <a href="https://github.com/github/choosealicense.com">You!</a> + +# --- Breadcrumbs ------------------------------------------------------------- +breadcrumb_home: "Home" +breadcrumb_licenses: "Licenses" + +# --- Rule group headings (also used as appendix legend section titles) ------- +rules_permissions: "Permissions" +rules_conditions: "Conditions" +rules_limitations: "Limitations" + +# --- Rule tooltips (assembled in assets/js/app.js) --------------------------- +# Reorderable template: %label%, %category% and %description% are filled per rule. +# Each language can reorder them (e.g. French leads with the category). +tooltip_format: "%label% %category%: %description%" +tooltip_cat_permissions: "permission" +tooltip_cat_conditions: "condition" +tooltip_cat_limitations: "limitation" + +# --- License page sidebar ---------------------------------------------------- +sidebar_copy: "Copy license text to clipboard" +sidebar_copied: "Copied!" +sidebar_suggest_heading: "Suggest this license" +sidebar_suggest_body_md: |- + Make a pull request to suggest this license for a project that is [not licensed](/no-permission/). Please be polite: see if a license has already been suggested, try to suggest a license fitting for the project’s [community](/community/), and keep your communication with project maintainers friendly. +sidebar_repo_placeholder: "Enter GitHub repository URL" +sidebar_how_heading: "How to apply this license" +sidebar_optional_heading: "Optional steps" +sidebar_source: "Source" +sidebar_using_heading: "Who’s using this license?" +# Package-manager note. Placeholders are filled in and left untranslated: %id% is +# the SPDX id (as <code>), %languages% the language links, %clauses% the optional +# parenthetical(s). Only the surrounding prose here is translated. +sidebar_pkg_html: |- + Add %id%%clauses% to your project’s package description, if applicable (e.g., %languages%). This will ensure the license is displayed in package directories. +sidebar_pkg_only_html: " (or %id% to disallow future versions)" +sidebar_pkg_ofl_html: " (or %id% if a Reserved Font Name is specified after the copyright statement)" +sidebar_gplcc_html: |- + If you would like your project to adopt the GPL-3.0’s cure provision, add the <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">text</a> of the <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> to a file named <code>COMMITMENT</code> in the same directory as your %id% license file. + +# --- License overview cards (/licenses/) ------------------------------------ +overview_view_full: "View full %title% »" + +# --- "Who uses it" sentence (home page) ------------------------------------- +# Project-list separators; the one before the last item can keep a serial comma. +using_separator: ", " +using_last_separator: ", and " +using_sentence_plural: "%projects% use the %license%." +using_sentence_singular: "%projects% uses the %license%." + +# --- Page titles (rendered as <h1> and used in <title>/breadcrumbs) ---------- +page_title_home: "Choose an open source license" +page_title_licenses: "Licenses" +page_title_appendix: "Appendix" +page_title_404: "404 Not Found" + +# --- Home page --------------------------------------------------------------- +home_intro: |- + An open source license protects contributors and users. Businesses and savvy developers won’t touch a project without this protection. +home_situations_question: "Which of the following best describes your situation?" +home_community_title: "I need to work in a community." +home_community_content: |- + Use the [license preferred by the community](community/) you’re contributing to or depending on. Your project will fit right in. + + If you have a dependency that doesn’t have a license, ask its maintainers to [add a license](no-permission/#for-users). +home_permissive_title: "I want it simple and permissive." +home_permissive_content: |- + The [MIT License](licenses/mit/) is short and to the point. It lets people do almost anything they want with your project, like making and distributing closed source versions. +home_copyleft_title: "I care about sharing improvements." +home_copyleft_content: |- + The [GNU GPLv3](licenses/gpl-3.0/) also lets people do almost anything they want with your project, *except* distributing closed source versions. +home_more_question: "What if none of these work for me?" +home_nonsoftware_title: "My project isn’t software." +home_nonsoftware_content: |- + [There are licenses for that](non-software/). +home_morechoices_title: "I want more choices." +home_morechoices_content: |- + [More licenses are available](licenses/). +home_nolicense_title: "I don’t want to choose a license." +home_nolicense_content: |- + [Here’s what happens if you don’t](no-permission/). + +# --- Licenses page (/licenses/) --------------------------------------------- +licenses_intro_html: |- + Open source licenses grant permission for anybody to use, modify, and share licensed software for any purpose, subject to conditions preserving the provenance and openness of the software. The following licenses are sorted by the number of conditions, from most (GNU AGPLv3) to none (Unlicense). Notice that the popular licenses featured on the <a href="/">home page</a> (GNU GPLv3 and MIT) fall within this spectrum. +licenses_appendix_note_html: |- + If you’re looking for a reference table of every license on choosealicense.com, see the <a href="/appendix">appendix</a>. +licenses_outro_html: |- + The above licenses represent the entire spectrum of open source licenses, from highly protective to unconditional. One of these should work for most new open source projects. Many other open source licenses exist, including older versions of and close substitutes for some of the above. See the resources listed on our <a href="/about/">about page</a> if you’d like to read more. + + If you already know what you’re doing and have a license you prefer to use, that’s great! We’re not here to change your mind. But if you are bewildered by the large number of choices, maybe we can help. + +# --- Appendix (/appendix/) --------------------------------------------------- +appendix_intro: |- + For reference, here is a table of every license described in the [choosealicense.com repository](https://github.com/github/choosealicense.com). + + If you're here to choose a license, **[start from the home page](/)** to see a few licenses that will work for most cases. +appendix_col_license: "License" +appendix_legend_heading: "Legend" +appendix_legend_permissions_html: |- + Open source licenses grant to the public <span class="license-permissions"><span class="license-marker">✓</span></span> <b>permissions</b> to do things with licensed works which copyright or other "intellectual property" laws might otherwise disallow. +appendix_legend_conditions_html: |- + Most open source licenses' grants of permissions are subject to compliance with <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>conditions</b>. +appendix_legend_limitations_html: |- + Most open source licenses also have <span class="license-limitations"><span class="license-marker">✕</span></span> <b>limitations</b> that usually disclaim warranty and liability, and sometimes expressly exclude patents or trademarks from licenses' grants. + +# --- 404 page ---------------------------------------------------------------- +notfound_p1: |- + Sorry! We could not find the page you were looking for. +notfound_p2: |- + If you were trying to see a license, go to [licenses](/licenses). + +# --- JavaScript language-suggestion banner (assets/js/i18n.js) -------------- +# banner_switch's %language% is the suggested language's name; banner_suggest +# embeds the name directly so each language controls its grammar and casing. +banner_suggest: "This page is also available in **English**." +banner_switch: "Switch to **English**" +banner_dismiss: "Dismiss" diff --git a/_data/i18n/es/licenses.yml b/_data/i18n/es/licenses.yml new file mode 100644 index 000000000..09fe6718a --- /dev/null +++ b/_data/i18n/es/licenses.yml @@ -0,0 +1,112 @@ +# Resúmenes en español de las licencias (valor NO jurídico). Clave = identificador +# SPDX en minúsculas. Solo se traducen los campos descriptivos; cualquier campo +# ausente recae en el front matter inglés del archivo _licenses/<id>.txt, y el TEXTO +# LEGAL de la licencia nunca se traduce. +# +# Este conjunto cubre las licencias del «espectro» de la página /licenses/. Las demás +# licencias mostrarán su resumen en inglés hasta que se traduzcan. + +agpl-3.0: + description: |- + Los permisos de esta licencia copyleft, la más fuerte, están condicionados a poner a disposición el código fuente completo de las obras licenciadas y de sus modificaciones —incluidas las obras más amplias que usen una obra licenciada— bajo la misma licencia. Los avisos de copyright y de licencia deben conservarse. Quienes contribuyen conceden expresamente derechos de patente. Cuando se usa una versión modificada para prestar un servicio a través de una red, debe ponerse a disposición el código fuente completo de esa versión modificada. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Free Software Foundation recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra al final de la licencia. + +apache-2.0: + description: |- + Una licencia permisiva cuyas principales condiciones exigen conservar los avisos de copyright y de licencia. Quienes contribuyen conceden expresamente derechos de patente. Las obras licenciadas, sus modificaciones y las obras más amplias pueden distribuirse bajo condiciones distintas y sin código fuente. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Apache Software Foundation <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">recomienda</a> dar el paso adicional de añadir un aviso modelo a la cabecera de cada archivo fuente. Encontrarás ese aviso en el apéndice, justo al final del texto de la licencia. + +bsd-2-clause: + description: |- + Una licencia permisiva que existe en dos variantes, la <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> y la <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. Ambas presentan diferencias mínimas respecto a la licencia MIT. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. Sustituye [year] por el año en curso y [fullname] por el nombre (o los nombres) de quienes ostentan el copyright. + +bsd-3-clause: + nickname: |- + Licencia BSD modificada + description: |- + Una licencia permisiva similar a la <a href="/licenses/bsd-2-clause/">licencia BSD 2-Clause</a>, pero con una 3.ª cláusula que prohíbe a terceros usar el nombre de quien ostenta el copyright o de quienes contribuyen para promocionar productos derivados sin consentimiento por escrito. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. Sustituye [year] por el año en curso y [fullname] por el nombre (o los nombres) de quienes ostentan el copyright. + +bsl-1.0: + description: |- + Una licencia permisiva simple que solo exige conservar los avisos de copyright y de licencia en la distribución en forma de código fuente (y no en forma binaria). Las obras licenciadas, sus modificaciones y las obras más amplias pueden distribuirse bajo condiciones distintas y sin código fuente. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + Boost recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra en la <a href="https://www.boost.org/users/license.html#FAQ">FAQ de la Boost Software License</a>. + +cc0-1.0: + description: |- + La <a href="https://creativecommons.org/publicdomain/zero/1.0/">dedicación al dominio público Creative Commons CC0</a> renuncia a todo interés de copyright sobre una obra que hayas creado y la dedica al dominio público de todo el mundo. Usa CC0 para renunciar por completo al copyright y asegurar que tu obra tenga el mayor alcance posible. Al igual que la Unlicense y las licencias de software habituales, CC0 excluye toda garantía. CC0 es muy similar a la Unlicense. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + Creative Commons recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se puede <a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">encontrar en su sitio web</a>. + +epl-2.0: + description: |- + Esta licencia copyleft, favorable al ámbito comercial, ofrece la posibilidad de licenciar binarios comercialmente, una concesión de patente moderna y libre de regalías, y la posibilidad de que las obras enlazadas usen otras licencias, incluidas las comerciales. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + +gpl-2.0: + nickname: |- + GNU GPLv2 + description: |- + La GNU GPL es la licencia de software libre más utilizada e impone un copyleft fuerte. Al distribuir obras derivadas, el código fuente de la obra debe ponerse a disposición bajo la misma licencia. Existen varias variantes de la GNU GPL, cada una con requisitos distintos. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Free Software Foundation recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra al final de la licencia. + +gpl-3.0: + nickname: |- + GNU GPLv3 + description: |- + Los permisos de esta licencia copyleft fuerte están condicionados a poner a disposición el código fuente completo de las obras licenciadas y de sus modificaciones —incluidas las obras más amplias que usen una obra licenciada— bajo la misma licencia. Los avisos de copyright y de licencia deben conservarse. Quienes contribuyen conceden expresamente derechos de patente. + how: |- + Crea un archivo de texto (normalmente llamado COPYING, según las convenciones de GNU) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Free Software Foundation recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra al final de la licencia. + +lgpl-2.1: + nickname: |- + GNU LGPLv2.1 + description: |- + Usada principalmente para bibliotecas de software, la GNU LGPL exige que las obras derivadas se licencien bajo la misma licencia, pero las obras que solo se enlazan a ella no quedan sujetas a esta restricción. Existen dos versiones de la GNU LGPL de uso común. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Free Software Foundation recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra al final de la licencia. + +mit: + # Nombre corto usado en la frase «quién la usa» de la página de inicio («la MIT»). + # Solo esa frase lee loc.nickname; el título de la licencia sigue siendo "MIT License" en el resto. + nickname: "MIT" + description: |- + Una licencia permisiva, corta y simple, con condiciones que solo exigen conservar los avisos de copyright y de licencia. Las obras licenciadas, sus modificaciones y las obras más amplias pueden distribuirse bajo condiciones distintas y sin código fuente. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. Sustituye [year] por el año en curso y [fullname] por el nombre (o los nombres) de quienes ostentan el copyright. + +mpl-2.0: + description: |- + Los permisos de esta licencia copyleft débil están condicionados a poner a disposición el código fuente de los archivos licenciados y de las modificaciones de esos archivos bajo la misma licencia (o, en ciertos casos, una de las licencias GNU). Los avisos de copyright y de licencia deben conservarse. Quienes contribuyen conceden expresamente derechos de patente. No obstante, una obra más amplia que use la obra licenciada puede distribuirse bajo condiciones distintas y sin el código fuente de los archivos añadidos en la obra más amplia. + how: |- + Crea un archivo de texto (normalmente llamado LICENSE o LICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la licencia. + note: |- + La Mozilla Foundation recomienda dar el paso adicional de añadir un aviso modelo al principio de cada archivo. Ese aviso modelo se encuentra al final de la licencia (Exhibit A). + +unlicense: + description: |- + Una licencia sin condición alguna que dedica las obras al dominio público. Las obras así liberadas, sus modificaciones y las obras más amplias pueden distribuirse bajo condiciones distintas y sin código fuente. + how: |- + Crea un archivo de texto (normalmente llamado UNLICENSE o UNLICENSE.txt) en la raíz de tu código fuente y copia en él el texto de la declaración de la licencia. diff --git a/_data/i18n/es/rules.yml b/_data/i18n/es/rules.yml new file mode 100644 index 000000000..9063383a0 --- /dev/null +++ b/_data/i18n/es/rules.yml @@ -0,0 +1,61 @@ +# Etiquetas y descripciones en español de las reglas (permisos / condiciones / +# limitaciones). La fuente de verdad sigue siendo _data/rules.yml (inglés): de ahí +# vienen el orden y los identificadores, y cualquier entrada ausente aquí recae en +# el inglés. Estructura: <grupo> → <tag> → { label, description }. + +permissions: + commercial-use: + label: "Uso comercial" + description: "El material licenciado y sus derivados pueden usarse con fines comerciales." + modifications: + label: "Modificación" + description: "El material licenciado puede modificarse." + distribution: + label: "Distribución" + description: "El material licenciado puede distribuirse." + private-use: + label: "Uso privado" + description: "El material licenciado puede usarse y modificarse de forma privada." + patent-use: + label: "Uso de patentes" + description: "Esta licencia concede expresamente derechos de patente por parte de quienes contribuyen." + +conditions: + include-copyright: + label: "Incluir autoría y licencia" + description: "Debe incluirse una copia de la licencia y del aviso de copyright con el material licenciado." + include-copyright--source: + label: "Incluir autoría y licencia (fuente)" + description: "Debe incluirse una copia de la licencia y del aviso de copyright con el material licenciado en forma de código fuente, pero no es obligatorio para los binarios." + document-changes: + label: "Indicar los cambios" + description: "Los cambios realizados en el material licenciado deben documentarse." + disclose-source: + label: "Divulgar el código fuente" + description: "El código fuente debe ponerse a disposición al distribuir el material licenciado." + network-use-disclose: + label: "El uso en red equivale a distribución" + description: "Quienes interactúan con el material licenciado a través de una red tienen derecho a recibir una copia del código fuente." + same-license: + label: "Misma licencia" + description: "Las modificaciones deben publicarse bajo la misma licencia al distribuir el material licenciado. En algunos casos puede usarse una licencia similar o relacionada." + same-license--file: + label: "Misma licencia (archivo)" + description: "Las modificaciones de los archivos existentes deben publicarse bajo la misma licencia al distribuir el material licenciado. En algunos casos puede usarse una licencia similar o relacionada." + same-license--library: + label: "Misma licencia (biblioteca)" + description: "Las modificaciones deben publicarse bajo la misma licencia al distribuir el material licenciado. En algunos casos puede usarse una licencia similar o relacionada, o esta condición puede no aplicarse a las obras que usan el material licenciado como biblioteca." + +limitations: + trademark-use: + label: "Uso de marcas" + description: "Esta licencia declara explícitamente que NO concede derechos sobre las marcas, aunque las licencias que carecen de tal declaración probablemente tampoco concedan ningún derecho implícito sobre las marcas." + liability: + label: "Responsabilidad" + description: "Esta licencia incluye una limitación de responsabilidad." + patent-use: + label: "Uso de patentes" + description: "Esta licencia declara explícitamente que NO concede ningún derecho sobre las patentes de quienes contribuyen." + warranty: + label: "Garantía" + description: "Esta licencia declara explícitamente que NO ofrece ninguna garantía." diff --git a/_data/i18n/es/ui.yml b/_data/i18n/es/ui.yml new file mode 100644 index 000000000..d4d231889 --- /dev/null +++ b/_data/i18n/es/ui.yml @@ -0,0 +1,135 @@ +# Traducción al español de las cadenas de interfaz y la prosa de las páginas. +# Cualquier clave ausente aquí recae automáticamente en el inglés (_data/i18n/en/ui.yml). +# Las claves _html contienen HTML en bruto; los demás valores multilínea son +# Markdown. Los resúmenes de licencias están en licenses.yml y las etiquetas de +# reglas en rules.yml. Los textos legales de las licencias nunca se traducen. + +# --- Metadatos de idioma ----------------------------------------------------- +language_name: "Español" +language_selector_label: "Idioma" + +# --- Navegación y pie de página ---------------------------------------------- +nav_about: "Acerca de" +nav_terms: "Condiciones del servicio" +nav_improve: "Ayuda a mejorar esta página" +footer_license_notice_html: |- + El contenido de este sitio está disponible bajo la <a href="https://creativecommons.org/licenses/by/3.0/">Licencia Creative Commons Atribución 3.0 No portada</a>. +footer_curated_html: |- + Cuidado con ❤️ por <a href="https://github.com">GitHub, Inc.</a> y <a href="https://github.com/github/choosealicense.com">¡tú!</a> + +# --- Migas de pan ------------------------------------------------------------ +breadcrumb_home: "Inicio" +breadcrumb_licenses: "Licencias" + +# --- Encabezados de los grupos de reglas ------------------------------------- +rules_permissions: "Permisos" +rules_conditions: "Condiciones" +rules_limitations: "Limitaciones" + +# --- Información sobre las reglas (ensamblada en assets/js/app.js) ------------ +# Plantilla reordenable: %label%, %category% y %description% se rellenan para cada +# regla. El orden en español coloca la categoría al principio: «Permiso Título: descripción». +tooltip_format: "%category% %label%: %description%" +tooltip_cat_permissions: "Permiso" +tooltip_cat_conditions: "Condición" +tooltip_cat_limitations: "Limitación" + +# --- Barra lateral de las páginas de licencia -------------------------------- +sidebar_copy: "Copiar el texto de la licencia al portapapeles" +sidebar_copied: "¡Copiado!" +sidebar_suggest_heading: "Sugerir esta licencia" +sidebar_suggest_body_md: |- + Abre una pull request para sugerir esta licencia a un proyecto que [no tenga licencia](/no-permission/). Sé cortés: comprueba si ya se ha sugerido una licencia, intenta proponer una adecuada para la [comunidad](/community/) del proyecto y mantén una comunicación amable con los mantenedores. +sidebar_repo_placeholder: "Introduce la URL del repositorio de GitHub" +sidebar_how_heading: "Cómo aplicar esta licencia" +sidebar_optional_heading: "Pasos opcionales" +sidebar_source: "Fuente" +sidebar_using_heading: "¿Quién usa esta licencia?" +# Nota para los gestores de paquetes. %id% (identificador SPDX en <code>), +# %languages% (enlaces de lenguajes) y %clauses% se rellenan y no se traducen; +# solo se traduce la prosa que los rodea. +sidebar_pkg_html: |- + Añade %id%%clauses% a la descripción del paquete de tu proyecto, si procede (por ejemplo, %languages%). Así la licencia se mostrará en los directorios de paquetes. +sidebar_pkg_only_html: " (o %id% para no permitir versiones futuras)" +sidebar_pkg_ofl_html: " (o %id% si se especifica un Nombre de Fuente Reservado después de la declaración de copyright)" +sidebar_gplcc_html: |- + Si quieres que tu proyecto adopte la cláusula de subsanación de la GPL-3.0, añade el <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">texto</a> del <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> a un archivo llamado <code>COMMITMENT</code> en el mismo directorio que tu archivo de licencia %id%. + +# --- Tarjetas de presentación de las licencias (/licenses/) ------------------ +overview_view_full: "Ver %title% completa »" + +# --- Frase «quién la usa» (página de inicio) --------------------------------- +# Separadores de la lista de proyectos; en español no se usa coma antes de «y». +using_separator: ", " +using_last_separator: " y " +using_sentence_plural: "%projects% usan la %license%." +using_sentence_singular: "%projects% usa la %license%." + +# --- Títulos de página ------------------------------------------------------- +page_title_home: "Elige una licencia de código abierto" +page_title_licenses: "Licencias" +page_title_appendix: "Apéndice" +page_title_404: "404 — Página no encontrada" + +# --- Página de inicio -------------------------------------------------------- +home_intro: |- + Una licencia de código abierto protege a quienes contribuyen y a quienes usan el proyecto. Las empresas y las personas desarrolladoras experimentadas no tocarán un proyecto que carezca de esta protección. +home_situations_question: "¿Cuál de las siguientes situaciones describe mejor la tuya?" +home_community_title: "Necesito trabajar dentro de una comunidad." +home_community_content: |- + Usa la [licencia preferida por la comunidad](community/) a la que contribuyes o de la que dependes. Tu proyecto encajará a la perfección. + + Si tienes una dependencia que no tiene licencia, pide a sus mantenedores que [añadan una licencia](no-permission/#for-users). +home_permissive_title: "La quiero simple y permisiva." +home_permissive_content: |- + La [licencia MIT](licenses/mit/) es breve y va al grano. Permite que cualquiera haga casi cualquier cosa con tu proyecto, como crear y distribuir versiones de código cerrado. +home_copyleft_title: "Me importa compartir las mejoras." +home_copyleft_content: |- + La [GNU GPLv3](licenses/gpl-3.0/) también permite que cualquiera haga casi cualquier cosa con tu proyecto, *excepto* distribuir versiones de código cerrado. +home_more_question: "¿Y si ninguna de estas me sirve?" +home_nonsoftware_title: "Mi proyecto no es software." +home_nonsoftware_content: |- + [Hay licencias para eso](non-software/). +home_morechoices_title: "Quiero más opciones." +home_morechoices_content: |- + [Hay más licencias disponibles](licenses/). +home_nolicense_title: "No quiero elegir una licencia." +home_nolicense_content: |- + [Esto es lo que pasa si no lo haces](no-permission/). + +# --- Página de licencias (/licenses/) ---------------------------------------- +licenses_intro_html: |- + Las licencias de código abierto conceden permiso a cualquiera para usar, modificar y compartir el software licenciado con cualquier fin, sujeto a condiciones que preservan la procedencia y la apertura del software. Las siguientes licencias se ordenan por número de condiciones, de la que más tiene (GNU AGPLv3) a ninguna (Unlicense). Observa que las licencias populares destacadas en la <a href="/">página de inicio</a> (GNU GPLv3 y MIT) se sitúan dentro de este espectro. +licenses_appendix_note_html: |- + Si buscas una tabla de referencia con todas las licencias de choosealicense.com, consulta el <a href="/appendix">apéndice</a>. +licenses_outro_html: |- + Las licencias anteriores representan todo el espectro de las licencias de código abierto, desde las muy protectoras hasta las incondicionales. Alguna de ellas debería servir para la mayoría de los nuevos proyectos de código abierto. Existen muchas otras licencias de código abierto, incluidas versiones anteriores y equivalentes cercanos de algunas de las anteriores. Consulta los recursos enumerados en nuestra <a href="/about/">página «acerca de»</a> si quieres leer más. + + Si ya sabes lo que haces y tienes una licencia que prefieres usar, ¡estupendo! No estamos aquí para hacerte cambiar de idea. Pero si el gran número de opciones te abruma, quizá podamos ayudarte. + +# --- Apéndice (/appendix/) --------------------------------------------------- +appendix_intro: |- + A modo de referencia, aquí tienes una tabla de todas las licencias descritas en el [repositorio de choosealicense.com](https://github.com/github/choosealicense.com). + + Si estás aquí para elegir una licencia, **[empieza por la página de inicio](/)** para ver algunas licencias que servirán en la mayoría de los casos. +appendix_col_license: "Licencia" +appendix_legend_heading: "Leyenda" +appendix_legend_permissions_html: |- + Las licencias de código abierto conceden al público <span class="license-permissions"><span class="license-marker">✓</span></span> <b>permisos</b> para hacer con las obras licenciadas cosas que el copyright u otras leyes de «propiedad intelectual» podrían, de otro modo, prohibir. +appendix_legend_conditions_html: |- + En la mayoría de las licencias de código abierto, la concesión de permisos está supeditada al cumplimiento de unas <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>condiciones</b>. +appendix_legend_limitations_html: |- + La mayoría de las licencias de código abierto también tienen <span class="license-limitations"><span class="license-marker">✕</span></span> <b>limitaciones</b> que normalmente excluyen la garantía y la responsabilidad, y a veces excluyen expresamente las patentes o las marcas de la concesión de la licencia. + +# --- Página 404 -------------------------------------------------------------- +notfound_p1: |- + ¡Lo sentimos! No hemos podido encontrar la página que buscabas. +notfound_p2: |- + Si querías consultar una licencia, ve a [licencias](/licenses). + +# --- Banner de sugerencia de idioma en JavaScript (assets/js/i18n.js) -------- +# %language% (banner_switch) = nombre del idioma sugerido; banner_suggest incorpora +# directamente el nombre para respetar la gramática y las mayúsculas de cada idioma. +banner_suggest: "Esta página también está disponible en **español**." +banner_switch: "Cambiar a **español**" +banner_dismiss: "Descartar" diff --git a/_data/i18n/fr/licenses.yml b/_data/i18n/fr/licenses.yml new file mode 100644 index 000000000..a905e7c41 --- /dev/null +++ b/_data/i18n/fr/licenses.yml @@ -0,0 +1,352 @@ +# Synthèses françaises des licences (valeur NON juridique). Clé = identifiant SPDX +# en minuscules. Seuls les champs descriptifs sont traduits ; chaque champ absent +# retombe sur le front matter anglais du fichier _licenses/<id>.txt, et le TEXTE +# JURIDIQUE de la licence n’est jamais traduit. +# +# Cette démo couvre les licences du « spectre » de la page /licenses/. Les autres +# licences afficheront leur synthèse anglaise jusqu’à ce qu’elles soient traduites. + +mit: + # Short display name used in the home page "who uses it" sentence ("la licence MIT"). + # Only that sentence reads loc.nickname; the license title stays "MIT License" elsewhere. + nickname: "MIT" + description: |- + Une licence permissive courte et simple, dont les seules conditions imposent de conserver les mentions de droit d’auteur et de licence. Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +apache-2.0: + description: |- + Une licence permissive dont les principales conditions imposent de conserver les mentions de droit d’auteur et de licence. Les contributeurs accordent expressément des droits de brevet. Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + L’Apache Software Foundation <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">recommande</a> d’ajouter en outre une mention type dans l’en-tête de chaque fichier source. Vous la trouverez dans l’annexe, tout à la fin du texte de la licence. + +gpl-3.0: + description: |- + Les permissions de cette licence copyleft forte sont conditionnées à la mise à disposition du code source complet des œuvres sous licence et de leurs modifications — y compris les œuvres plus larges utilisant une œuvre sous licence — sous la même licence. Les mentions de droit d’auteur et de licence doivent être conservées. Les contributeurs accordent expressément des droits de brevet. + how: |- + Créez un fichier texte (généralement nommé COPYING, selon les conventions GNU) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence. + +agpl-3.0: + description: |- + Les permissions de cette licence copyleft, la plus forte, sont conditionnées à la mise à disposition du code source complet des œuvres sous licence et de leurs modifications — y compris les œuvres plus larges utilisant une œuvre sous licence — sous la même licence. Les mentions de droit d’auteur et de licence doivent être conservées. Les contributeurs accordent expressément des droits de brevet. Lorsqu’une version modifiée est utilisée pour fournir un service sur un réseau, le code source complet de cette version modifiée doit être rendu disponible. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence. + +lgpl-3.0: + description: |- + Les permissions de cette licence copyleft sont conditionnées à la mise à disposition du code source complet des œuvres sous licence et de leurs modifications sous la même licence ou sous la GNU GPLv3. Les mentions de droit d’auteur et de licence doivent être conservées. Les contributeurs accordent expressément des droits de brevet. Toutefois, une œuvre plus large utilisant l’œuvre sous licence via les interfaces fournies par celle-ci peut être distribuée sous des conditions différentes et sans le code source de l’œuvre plus large. + how: |- + Cette licence est un ensemble de permissions supplémentaires à la licence <a href="/licenses/gpl-3.0">GNU GPLv3</a>. Suivez les instructions pour appliquer la GNU GPLv3 à la racine de votre code source. Ajoutez ensuite un autre fichier nommé COPYING.LESSER et copiez-y le texte. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la <a href="/licenses/gpl-3.0">licence GNU GPLv3</a>. Insérez le mot « Lesser » avant « General » aux trois endroits de la mention type pour bien faire référence à la GNU LGPLv3 et non à la GNU GPLv3. + +mpl-2.0: + description: |- + Les permissions de cette licence copyleft faible sont conditionnées à la mise à disposition du code source des fichiers sous licence et de leurs modifications sous la même licence (ou, dans certains cas, l’une des licences GNU). Les mentions de droit d’auteur et de licence doivent être conservées. Les contributeurs accordent expressément des droits de brevet. Toutefois, une œuvre plus large utilisant l’œuvre sous licence peut être distribuée sous des conditions différentes et sans le code source des fichiers ajoutés dans l’œuvre plus large. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Mozilla Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence (« Exhibit A »). + +bsl-1.0: + description: |- + Une licence permissive simple, n’imposant que la conservation des mentions de droit d’auteur et de licence pour la distribution sous forme de code source (et non sous forme binaire). Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Boost recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure dans la <a href="https://www.boost.org/users/license.html#FAQ">FAQ de la Boost Software License</a>. + +unlicense: + description: |- + Une licence sans aucune condition, qui verse les œuvres dans le domaine public. Les œuvres ainsi libérées, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé UNLICENSE ou UNLICENSE.txt) à la racine de votre code source et copiez-y le texte de la déclaration de licence. + +0bsd: + description: |- + La licence BSD Zero Clause va plus loin que la licence BSD 2-Clause : elle vous accorde une liberté illimitée sur le logiciel, sans obligation d’inclure la mention de droit d’auteur, le texte de la licence ou la clause de non-responsabilité, que ce soit sous forme de code source ou de binaire. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. Vous pouvez aussi, en option, retirer la mention de droit d’auteur. + +afl-3.0: + description: |- + L’Academic Free License est une variante de l’Open Software License qui n’impose pas la divulgation du code source des œuvres dérivées. Elle contient des concessions explicites de droits d’auteur et de brevet, et réserve les droits de marque à l’auteur. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Les fichiers placés sous AFL 3.0 doivent aussi comporter la mention « Licensed under the Academic Free License version 3.0 » à côté de la mention de droit d’auteur. + +artistic-2.0: + description: |- + Très appréciée de la communauté Perl, l’Artistic License impose que les versions modifiées du logiciel n’empêchent pas les utilisateurs d’exécuter la version standard. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Ne remplacez pas la mention de droit d’auteur (année, auteur), qui se rapporte à la licence elle-même et non au projet sous licence. + +blueoak-1.0.0: + description: |- + Une licence permissive dont les principales conditions imposent de fournir la mention de la licence. Les contributeurs accordent expressément des droits de brevet. Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé LICENSE.md) à la racine de votre code source et copiez-y le texte de la licence. + +bsd-2-clause: + description: |- + Une licence permissive qui existe en deux variantes, la <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> et la <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. Toutes deux ne diffèrent que très légèrement de la licence MIT. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +bsd-2-clause-patent: + description: |- + Cette licence est conçue pour offrir : a) une licence permissive simple ; b) compatible avec la GNU GPL-2.0 ; et c) qui comporte aussi une concession expresse de brevet. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +bsd-3-clause: + nickname: |- + Licence BSD modifiée + description: |- + Une licence permissive semblable à la <a href="/licenses/bsd-2-clause/">licence BSD 2-Clause</a>, mais avec une 3ᵉ clause qui interdit d’utiliser le nom du titulaire du droit d’auteur ou de ses contributeurs pour promouvoir des produits dérivés sans consentement écrit. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +bsd-3-clause-clear: + nickname: |- + Clear BSD + description: |- + Une variante de la <a href="/licenses/bsd-3-clause/">licence BSD 3-Clause</a> qui n’accorde explicitement aucun droit de brevet. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +bsd-4-clause: + description: |- + Une licence permissive semblable à la <a href="/licenses/bsd-3-clause/">licence BSD 3-Clause</a>, mais avec une « clause de publicité » qui impose de mentionner la source d’origine dans tout support publicitaire. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. Remplacez [project] par l’organisation du projet, le cas échéant, qui parraine ce travail. + +cc-by-4.0: + description: |- + Autorise presque tout usage, sous réserve de créditer l’auteur et d’inclure la mention de licence. Fréquemment utilisée pour des contenus médias et du matériel pédagogique. C’est la licence la plus courante pour les publications scientifiques en libre accès. Déconseillée pour les logiciels. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Il est aussi acceptable de fournir uniquement un lien vers une copie de la licence, généralement vers l’<a href="https://creativecommons.org/licenses/by/4.0/">URL canonique de la licence</a>. + +cc-by-sa-4.0: + description: |- + Semblable à <a href="/licenses/cc-by-4.0/">CC-BY-4.0</a>, mais impose que les dérivés soient distribués sous la même licence ou une licence <a href="https://creativecommons.org/compatiblelicenses">compatible</a> et similaire. Fréquemment utilisée pour des contenus médias et du matériel pédagogique. Une version antérieure est la licence par défaut de Wikipédia et d’autres projets Wikimedia. Déconseillée pour les logiciels. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Il est aussi acceptable de fournir uniquement un lien vers une copie de la licence, généralement vers l’<a href="https://creativecommons.org/licenses/by-sa/4.0/">URL canonique de la licence</a>. + +cc0-1.0: + description: |- + La <a href="https://creativecommons.org/publicdomain/zero/1.0/">dédicace au domaine public Creative Commons CC0</a> renonce à tout intérêt au titre du droit d’auteur sur une œuvre que vous avez créée et la verse dans le domaine public mondial. Utilisez CC0 pour renoncer entièrement au droit d’auteur et donner à votre œuvre la plus large portée possible. Comme l’Unlicense et les licences logicielles habituelles, CC0 exclut toute garantie. CC0 est très proche de l’Unlicense. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Creative Commons recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention est <a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">disponible sur leur site</a>. + +cecill-2.1: + description: |- + Licence copyleft forte créée par trois organismes publics français de recherche — le CEA, le CNRS et l’Inria — compatible avec l’AGPL-3.0, l’EUPL-1.1 et la GPL-2.0, ou des versions ultérieures de ces licences. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENCE) à la racine de votre code source et copiez-y le texte de la licence. + +cern-ohl-p-2.0: + nickname: |- + CERN OHL v2 permissive + description: |- + Une licence permissive pour les conceptions matérielles, dont les seules conditions imposent de conserver les mentions. Les contributeurs accordent expressément des droits de brevet. Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans sources. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Le CERN <a href="https://gitlab.com/ohwr/project/cernohl/-/wikis/uploads/8a6b5d01f71c207c49493e4d114d61e6/cern_ohl_p_v2_howto.pdf">recommande</a> d’ajouter les informations suivantes dans les fichiers source : la mention de droit d’auteur et de licence, une clause de non-garantie et un emplacement des sources. Vous pouvez aussi indiquer cet emplacement des sources dans une partie de la conception qui sera visible dans le produit final. + +cern-ohl-s-2.0: + nickname: |- + CERN OHL v2 fortement réciproque + description: |- + Les permissions de cette licence fortement réciproque pour les conceptions matérielles sont conditionnées à la mise à disposition des sources complètes des œuvres sous licence et de leurs modifications — y compris les œuvres plus larges utilisant une œuvre sous licence — sous la même licence. Les mentions doivent être conservées. Les contributeurs accordent expressément des droits de brevet. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Le CERN <a href="https://gitlab.com/ohwr/project/cernohl/-/wikis/uploads/cf37727497ca2b5295a7ab83a40fcf5a/cern_ohl_s_v2_user_guide.pdf">recommande</a> d’ajouter les informations suivantes dans les fichiers source : la mention de droit d’auteur et de licence, une clause de non-garantie et un emplacement des sources. Vous pouvez aussi indiquer cet emplacement des sources dans une partie de la conception qui sera visible dans le produit final. + +cern-ohl-w-2.0: + nickname: |- + CERN OHL v2 faiblement réciproque + description: |- + Les permissions de cette licence faiblement réciproque sont conditionnées à la mise à disposition des sources complètes des œuvres sous licence et de leurs modifications sous la même licence. Les mentions doivent être conservées. Les contributeurs accordent expressément des droits de brevet. Toutefois, une œuvre plus large utilisant l’œuvre sous licence via les interfaces fournies par celle-ci peut être distribuée sous des conditions différentes et sans les sources de l’œuvre plus large. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Le CERN <a href="https://gitlab.com/ohwr/project/cernohl/-/wikis/uploads/c2e5e9d297949b5c2d324a6cbf6adda0/cern_ohl_w_v2_howto.pdf">recommande</a> d’ajouter les informations suivantes dans les fichiers source : la mention de droit d’auteur et de licence, une clause de non-garantie et un emplacement des sources. Vous pouvez aussi indiquer cet emplacement des sources dans une partie de la conception qui sera visible dans le produit final. + +ecl-2.0: + description: |- + L’Educational Community License version 2.0 (« ECL ») reprend la licence Apache 2.0, modifiée pour adapter la portée de la concession de brevet de la section 3 aux besoins des communautés éducatives qui utilisent cette licence. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + L’Apereo Foundation recommande d’ajouter en outre une mention type dans l’en-tête de chaque fichier source. Vous la trouverez dans l’annexe, tout à la fin du texte de la licence. + +epl-1.0: + description: |- + Cette licence copyleft, favorable au commerce, offre la possibilité de concéder commercialement des binaires, une concession de brevet moderne et libre de redevance, et la possibilité pour les œuvres liées d’utiliser d’autres licences, y compris commerciales. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +epl-2.0: + description: |- + Cette licence copyleft, favorable au commerce, offre la possibilité de concéder commercialement des binaires, une concession de brevet moderne et libre de redevance, et la possibilité pour les œuvres liées d’utiliser d’autres licences, y compris commerciales. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +eupl-1.1: + description: |- + La « Licence publique de l’Union européenne » (EUPL) est une licence de logiciel libre/open source à copyleft, créée à l’initiative de la Commission européenne et approuvée par elle, en 22 langues officielles de l’Union européenne. + how: |- + Créez un fichier texte (généralement nommé COPYING ou LICENCE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Commission européenne recommande d’ajouter en outre une <a href="https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%201_1%20Guidelines%20EN%20Joinup.pdf#page=17">mention type</a> en haut de chaque fichier. + +eupl-1.2: + description: |- + La Licence publique de l’Union européenne (EUPL) est une licence de logiciel libre/open source à copyleft, créée à l’initiative de la Commission européenne et approuvée par elle, en <a href="https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12">23 langues officielles</a> de l’Union européenne. + how: |- + Indiquez « Licensed under the EUPL » à la suite de la mention de droit d’auteur de votre code source, par exemple dans un fichier README ou directement dans un fichier de code source sous forme de commentaire. + +gfdl-1.3: + description: |- + Une licence copyleft pour la documentation logicielle. + how: |- + Créez un fichier texte (généralement nommé COPYING, selon les conventions GNU) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type après le titre d’un document sous licence. Cette mention figure dans la partie « addendum » de la licence. + +gpl-2.0: + nickname: |- + GNU GPLv2 + description: |- + La GNU GPL est la licence de logiciel libre la plus répandue et impose un copyleft fort. Lors de la distribution d’œuvres dérivées, le code source de l’œuvre doit être rendu disponible sous la même licence. Il existe plusieurs variantes de la GNU GPL, chacune ayant des exigences différentes. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence. + +isc: + description: |- + Une licence permissive qui permet à quiconque de tout faire avec votre code, moyennant une attribution correcte et sans garantie. La licence ISC est fonctionnellement équivalente aux licences <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> et <a href="/licenses/mit/">MIT</a>, en supprimant certaines formulations devenues inutiles. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +lgpl-2.1: + nickname: |- + GNU LGPLv2.1 + description: |- + Principalement utilisée pour les bibliothèques logicielles, la GNU LGPL impose que les œuvres dérivées soient placées sous la même licence, mais les œuvres qui se contentent de s’y lier ne sont pas soumises à cette restriction. Il existe deux versions couramment utilisées de la GNU LGPL. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + La Free Software Foundation recommande d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence. + +lppl-1.3c: + description: |- + La LaTeX Project Public License (LPPL) est la licence principale sous laquelle sont distribués le noyau LaTeX et les paquets LaTeX de base. + how: |- + Placez dans chacun des composants de votre œuvre une mention de droit d’auteur explicite incluant votre nom et l’année où l’œuvre a été créée et/ou modifiée en dernier de façon substantielle. Incluez aussi une déclaration indiquant que la distribution et/ou la modification de ce composant est encadrée par les conditions de cette licence. + note: |- + Un exemple de mention type et davantage d’informations sur l’utilisation de la licence figurent à la fin de la licence. + +mit-0: + description: |- + Une licence permissive courte et simple, sans aucune condition, n’imposant même pas de conserver les mentions de droit d’auteur et de licence. Les œuvres sous licence, leurs modifications et les œuvres plus larges peuvent être distribuées sous des conditions différentes et sans code source. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +ms-pl: + description: |- + Une licence open source assortie d’une concession de brevet. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +ms-rl: + description: |- + Une licence open source assortie d’une concession de brevet, semblable à la <a href="/licenses/ms-pl/">Microsoft Public License</a>, avec la condition supplémentaire que le code source de tout fichier dérivé soit fourni sous cette même licence. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +mulanpsl-2.0: + nickname: |- + Mulan PSL v2 + description: |- + Une licence permissive semblable à la <a href="/licenses/apache-2.0/">licence Apache</a>, mais qui déclare explicitement ne pas accorder de droits sur les marques. La Mulan Permissive Software License est la première licence open source approuvée par l’OSI à être rédigée à la fois en chinois et en anglais. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + note: |- + Il est suggéré d’ajouter en outre une mention type en haut de chaque fichier. Cette mention figure à la fin de la licence. + +ncsa: + nickname: |- + UIUC/NCSA + description: |- + La University of Illinois/NCSA Open Source License, ou licence UIUC, est une licence de logiciel libre permissive, fondée sur la <a href="/licenses/mit/">licence MIT/X11</a> et la <a href="/licenses/bsd-3-clause/">licence BSD 3-Clause</a>. Ses conditions imposent de conserver les mentions de droit d’auteur et de licence, tant dans les distributions sous forme de source que de binaire, et interdisent d’utiliser le nom des auteurs ou de l’organisation du projet pour promouvoir ou recommander des produits dérivés. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. Remplacez [project] par l’organisation du projet, le cas échéant, qui parraine ce travail. + +odbl-1.0: + nickname: |- + ODbL + description: |- + L’Open Database License (ODbL) est un contrat de licence destiné à permettre aux utilisateurs de partager, modifier et utiliser librement une base de données, tout en préservant cette même liberté pour autrui. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +ofl-1.1: + description: |- + L’Open Font License (OFL) est maintenue par SIL International. Elle cherche à être un compromis entre les valeurs des communautés du logiciel libre et de la création typographique. Elle est utilisée pour la quasi-totalité des projets de polices open source, y compris ceux d’Adobe, Google et Mozilla. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine du code source de votre police et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] ([email]) par le nom et l’adresse e-mail de contact de chaque titulaire du droit d’auteur. Vous pouvez aussi, en option, ajouter une mention de nom de police réservé (« Reserved Font Name »). Cette option oblige toute personne effectuant des modifications à changer le nom de la police ; elle n’est pas idéale pour les polices web (que tous les utilisateurs modifient en changeant de format et en sous-ensemblant selon leurs besoins). + note: |- + Cette licence n’impose pas la fourniture des sources, mais la recommande. Tous les fichiers dérivés de fichiers OFL doivent rester sous licence OFL. + +osl-3.0: + description: |- + Les permissions de cette licence copyleft sont conditionnées à la distribution du code source des œuvres sous licence et de leurs modifications sous la même licence. Les mentions de droit d’auteur et de licence doivent être conservées. Les contributeurs accordent expressément des droits de brevet. Utiliser l’œuvre ou ses modifications pour fournir des services à des utilisateurs externes est assimilé à une distribution et impose aussi de mettre le code source à disposition. Les œuvres qui se contentent de se lier à une œuvre sous licence sont considérées comme des œuvres collectives et ne sont pas soumises aux exigences de réciprocité de la licence. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Les fichiers placés sous OSL 3.0 doivent aussi comporter la mention « Licensed under the Open Software License version 3.0 » à côté de la mention de droit d’auteur. + note: |- + L’auteur de l’OSL 3.0 a <a href="https://rosenlaw.com/OSL3.0-explained.htm">fourni une explication</a> sur les raisons de la création de la licence. + +postgresql: + description: |- + Une licence de style BSD très courte, utilisée spécifiquement pour PostgreSQL. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + +upl-1.0: + description: |- + Une licence permissive, approuvée par l’OSI et la FSF, compatible GPL, qui autorise expressément l’attribution au moyen d’une simple mention de droit d’auteur et d’un lien court plutôt que du texte intégral de la licence. Inclut une concession expresse de droits de brevet. Les œuvres sous licence et leurs modifications peuvent être distribuées sous des conditions différentes et sans code source, et la concession de brevet peut aussi, en option, être étendue aux œuvres plus larges afin de permettre son usage comme accord de licence de contributeur. + how: |- + Insérez la licence, ou un lien vers celle-ci, accompagnée d’une mention de droit d’auteur dans vos fichiers source, et/ou créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence, en remplaçant [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. + note: |- + Il est recommandé d’ajouter un lien vers la licence et une mention de droit d’auteur en haut de chaque fichier source ; un exemple de texte est disponible sur https://oss.oracle.com/licenses/upl/. + +vim: + description: |- + Il n’y a aucune restriction à l’utilisation ou à la distribution d’une copie non modifiée du logiciel. Des parties du logiciel peuvent aussi être distribuées, mais le texte de la licence doit toujours être inclus. Pour les versions modifiées, quelques restrictions s’appliquent. La licence est compatible GPL : vous pouvez compiler le logiciel avec des bibliothèques GPL et le distribuer. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [project] par le nom du projet. + +wtfpl: + description: |- + La licence la plus simple qui soit. Elle donne à l’utilisateur la permission de faire absolument ce qu’il veut de votre code. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. + +zlib: + description: |- + Une licence permissive courte, compatible GPL. Elle impose que les versions de source modifiées soient documentées comme telles. + how: |- + Créez un fichier texte (généralement nommé LICENSE ou LICENSE.txt) à la racine de votre code source et copiez-y le texte de la licence. Remplacez [year] par l’année en cours et [fullname] par le nom (ou les noms) des titulaires du droit d’auteur. diff --git a/_data/i18n/fr/rules.yml b/_data/i18n/fr/rules.yml new file mode 100644 index 000000000..ba2196867 --- /dev/null +++ b/_data/i18n/fr/rules.yml @@ -0,0 +1,61 @@ +# Libellés et descriptions français des règles (permissions / conditions / +# limitations). La source de vérité reste _data/rules.yml (anglais) : l’ordre et +# les identifiants en viennent, et toute entrée absente ici retombe sur l’anglais. +# Structure : <groupe> → <tag> → { label, description }. + +permissions: + commercial-use: + label: "Usage commercial" + description: "Le contenu sous licence et ses dérivés peuvent être utilisés à des fins commerciales." + modifications: + label: "Modification" + description: "Le contenu sous licence peut être modifié." + distribution: + label: "Distribution" + description: "Le contenu sous licence peut être distribué." + private-use: + label: "Usage privé" + description: "Le contenu sous licence peut être utilisé et modifié de façon privée." + patent-use: + label: "Usage des brevets" + description: "Cette licence accorde expressément des droits de brevet de la part des contributeurs." + +conditions: + include-copyright: + label: "Citer auteur et licence" + description: "Une copie de la licence et de la mention de droit d’auteur doit être incluse avec le contenu sous licence." + include-copyright--source: + label: "Citer auteur et licence (source)" + description: "Une copie de la licence et de la mention de droit d’auteur doit être incluse avec le contenu sous licence sous forme de code source, mais n’est pas requise pour les binaires." + document-changes: + label: "Indiquer les modifications" + description: "Les modifications apportées au contenu sous licence doivent être documentées." + disclose-source: + label: "Fournir le code source" + description: "Le code source doit être rendu disponible lors de la distribution du contenu sous licence." + network-use-disclose: + label: "L’usage réseau vaut distribution" + description: "Les utilisateurs qui interagissent avec le contenu sous licence via un réseau ont le droit d’en recevoir le code source." + same-license: + label: "Même licence" + description: "Les modifications doivent être publiées sous la même licence lors de la distribution du contenu sous licence. Dans certains cas, une licence similaire ou apparentée peut être utilisée." + same-license--file: + label: "Même licence (fichier)" + description: "Les modifications des fichiers existants doivent être publiées sous la même licence lors de la distribution du contenu sous licence. Dans certains cas, une licence similaire ou apparentée peut être utilisée." + same-license--library: + label: "Même licence (bibliothèque)" + description: "Les modifications doivent être publiées sous la même licence lors de la distribution du contenu sous licence. Dans certains cas, une licence similaire ou apparentée peut être utilisée, ou cette condition peut ne pas s’appliquer aux œuvres qui utilisent le contenu sous licence comme bibliothèque." + +limitations: + trademark-use: + label: "Usage des marques" + description: "Cette licence déclare explicitement qu’elle n’accorde PAS de droits sur les marques, même si les licences dépourvues d’une telle mention n’accordent probablement aucun droit implicite sur les marques." + liability: + label: "Responsabilité" + description: "Cette licence comporte une limitation de responsabilité." + patent-use: + label: "Usage des brevets" + description: "Cette licence déclare explicitement qu’elle n’accorde aucun droit sur les brevets des contributeurs." + warranty: + label: "Garantie" + description: "Cette licence déclare explicitement qu’elle ne fournit aucune garantie." diff --git a/_data/i18n/fr/ui.yml b/_data/i18n/fr/ui.yml new file mode 100644 index 000000000..d57729361 --- /dev/null +++ b/_data/i18n/fr/ui.yml @@ -0,0 +1,135 @@ +# Traduction française des chaînes d’interface et de la prose des pages. +# Toute clé absente ici retombe automatiquement sur l’anglais (_data/i18n/en/ui.yml). +# Les clés en _html contiennent du HTML brut ; les autres valeurs multilignes sont +# du Markdown. Les synthèses de licences sont dans licenses.yml et les libellés de +# règles dans rules.yml. Les textes juridiques des licences ne sont jamais traduits. + +# --- Métadonnées de langue --------------------------------------------------- +language_name: "Français" +language_selector_label: "Langue" + +# --- Navigation & pied de page ----------------------------------------------- +nav_about: "À propos" +nav_terms: "Conditions d’utilisation" +nav_improve: "Aidez à améliorer cette page" +footer_license_notice_html: |- + Le contenu de ce site est placé sous licence <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 (non transposé)</a>. +footer_curated_html: |- + Réalisé avec ❤️ par <a href="https://github.com">GitHub, Inc.</a> et <a href="https://github.com/github/choosealicense.com">vous !</a> + +# --- Fil d’Ariane ------------------------------------------------------------ +breadcrumb_home: "Accueil" +breadcrumb_licenses: "Licences" + +# --- Intitulés des groupes de règles ---------------------------------------- +rules_permissions: "Permissions" +rules_conditions: "Conditions" +rules_limitations: "Limitations" + +# --- Infobulles des règles (assemblées dans assets/js/app.js) ---------------- +# Gabarit réordonnable : %label%, %category% et %description% sont remplacés pour +# chaque règle. L’ordre français place la catégorie en tête : « Permission Titre : description ». +tooltip_format: "%category% %label% : %description%" +tooltip_cat_permissions: "Permission" +tooltip_cat_conditions: "Condition" +tooltip_cat_limitations: "Limitation" + +# --- Barre latérale des pages de licence ------------------------------------ +sidebar_copy: "Copier le texte de la licence" +sidebar_copied: "Copié !" +sidebar_suggest_heading: "Suggérer cette licence" +sidebar_suggest_body_md: |- + Ouvrez une pull request pour suggérer cette licence à un projet qui n’est [pas sous licence](/no-permission/). Restez courtois : vérifiez qu’une licence n’a pas déjà été suggérée, essayez d’en proposer une adaptée à la [communauté](/community/) du projet, et gardez des échanges cordiaux avec les mainteneurs. +sidebar_repo_placeholder: "Saisissez l’URL d’un dépôt GitHub" +sidebar_how_heading: "Comment appliquer cette licence" +sidebar_optional_heading: "Étapes facultatives" +sidebar_source: "Source" +sidebar_using_heading: "Qui utilise cette licence ?" +# Note pour les gestionnaires de paquets. %id% (identifiant SPDX en <code>), +# %languages% (liens des langages) et %clauses% restent non traduits ; seule la +# prose ci-dessous est traduite. +sidebar_pkg_html: |- + Ajoutez %id%%clauses% aux métadonnées de paquet de votre projet, le cas échéant (par ex. %languages%). La licence sera ainsi affichée dans les annuaires de paquets. +sidebar_pkg_only_html: " (ou %id% pour interdire les versions futures)" +sidebar_pkg_ofl_html: " (ou %id% si un nom de police réservé est indiqué après la mention de droit d’auteur)" +sidebar_gplcc_html: |- + Si vous souhaitez que votre projet adopte la clause de régularisation de la GPL-3.0, ajoutez le <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">texte</a> du <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> dans un fichier nommé <code>COMMITMENT</code>, dans le même répertoire que votre fichier de licence %id%. + +# --- Cartes de présentation des licences (/licenses/) ----------------------- +overview_view_full: "Texte intégral : %title% »" + +# --- Phrase « qui l’utilise » (page d’accueil) ------------------------------ +# Séparateurs de la liste de projets ; en français, pas de virgule avant « et ». +using_separator: ", " +using_last_separator: " et " +using_sentence_plural: "%projects% utilisent la licence %license%." +using_sentence_singular: "%projects% utilise la licence %license%." + +# --- Titres de pages --------------------------------------------------------- +page_title_home: "Choisir une licence open source" +page_title_licenses: "Licences" +page_title_appendix: "Annexe" +page_title_404: "404 — Page introuvable" + +# --- Page d’accueil ---------------------------------------------------------- +home_intro: |- + Une licence open source protège les contributeurs et les utilisateurs. Les entreprises et les développeurs avertis ne toucheront pas à un projet dépourvu de cette protection. +home_situations_question: "Laquelle de ces situations décrit le mieux la vôtre ?" +home_community_title: "Je dois travailler au sein d’une communauté." +home_community_content: |- + Utilisez la [licence privilégiée par la communauté](community/) à laquelle vous contribuez ou dont vous dépendez. Votre projet s’y intégrera naturellement. + + Si l’une de vos dépendances n’a pas de licence, demandez à ses mainteneurs d’en [ajouter une](no-permission/#for-users). +home_permissive_title: "Je veux quelque chose de simple et permissif." +home_permissive_content: |- + La [licence MIT](licenses/mit/) est courte et va à l’essentiel. Elle permet à quiconque de faire presque tout ce qu’il veut avec votre projet, y compris en créer et en distribuer des versions à code source fermé. +home_copyleft_title: "Je tiens au partage des améliorations." +home_copyleft_content: |- + La [GNU GPLv3](licenses/gpl-3.0/) permet elle aussi de faire presque tout ce que l’on veut avec votre projet, *sauf* en distribuer des versions à code source fermé. +home_more_question: "Et si aucune ne me convient ?" +home_nonsoftware_title: "Mon projet n’est pas un logiciel." +home_nonsoftware_content: |- + [Il existe des licences pour cela](non-software/). +home_morechoices_title: "Je veux plus de choix." +home_morechoices_content: |- + [D’autres licences sont disponibles](licenses/). +home_nolicense_title: "Je ne veux pas choisir de licence." +home_nolicense_content: |- + [Voici ce qui se passe si vous ne le faites pas](no-permission/). + +# --- Page des licences (/licenses/) ----------------------------------------- +licenses_intro_html: |- + Les licences open source accordent à toute personne la permission d’utiliser, de modifier et de partager un logiciel sous licence, à toutes fins, sous réserve de conditions préservant la provenance et l’ouverture du logiciel. Les licences ci-dessous sont classées par nombre de conditions, de la plus exigeante (GNU AGPLv3) à aucune (Unlicense). Remarquez que les licences populaires mises en avant sur la <a href="/">page d’accueil</a> (GNU GPLv3 et MIT) s’inscrivent dans ce spectre. +licenses_appendix_note_html: |- + Si vous cherchez un tableau de référence de toutes les licences de choosealicense.com, consultez l’<a href="/appendix">annexe</a>. +licenses_outro_html: |- + Les licences ci-dessus représentent l’ensemble du spectre des licences open source, des plus protectrices aux plus inconditionnelles. L’une d’elles devrait convenir à la plupart des nouveaux projets open source. Il existe de nombreuses autres licences open source, y compris d’anciennes versions et de proches équivalents de certaines des précédentes. Consultez les ressources listées sur notre <a href="/about/">page « à propos »</a> si vous souhaitez en savoir plus. + + Si vous savez déjà ce que vous faites et avez une licence que vous préférez utiliser, c’est parfait ! Nous ne sommes pas là pour vous faire changer d’avis. Mais si le grand nombre de choix vous déconcerte, nous pouvons peut-être vous aider. + +# --- Annexe (/appendix/) ----------------------------------------------------- +appendix_intro: |- + À titre de référence, voici un tableau de toutes les licences décrites dans le [dépôt choosealicense.com](https://github.com/github/choosealicense.com). + + Si vous êtes ici pour choisir une licence, **[commencez par la page d’accueil](/)** pour découvrir quelques licences qui conviendront à la plupart des cas. +appendix_col_license: "Licence" +appendix_legend_heading: "Légende" +appendix_legend_permissions_html: |- + Les licences open source accordent au public des <span class="license-permissions"><span class="license-marker">✓</span></span> <b>permissions</b> de faire, avec les œuvres sous licence, des choses que le droit d’auteur ou d’autres lois de « propriété intellectuelle » pourraient sinon interdire. +appendix_legend_conditions_html: |- + L’octroi des permissions par la plupart des licences open source est subordonné au respect de <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>conditions</b>. +appendix_legend_limitations_html: |- + La plupart des licences open source comportent aussi des <span class="license-limitations"><span class="license-marker">✕</span></span> <b>limitations</b> qui, généralement, excluent toute garantie et toute responsabilité, et parfois excluent expressément les brevets ou les marques de l’octroi de la licence. + +# --- Page 404 ---------------------------------------------------------------- +notfound_p1: |- + Désolé ! Nous n’avons pas trouvé la page que vous cherchiez. +notfound_p2: |- + Si vous vouliez consulter une licence, rendez-vous sur les [licences](/licenses). + +# --- Bandeau JavaScript de suggestion de langue (assets/js/i18n.js) ---------- +# %language% (banner_switch) = nom de la langue suggérée ; banner_suggest intègre +# directement le nom pour respecter la grammaire et la casse de chaque langue. +banner_suggest: "Cette page est aussi disponible en **français**." +banner_switch: "Voir en **français**" +banner_dismiss: "Ignorer" diff --git a/_data/i18n/ko/licenses.yml b/_data/i18n/ko/licenses.yml new file mode 100644 index 000000000..2a0ef8afb --- /dev/null +++ b/_data/i18n/ko/licenses.yml @@ -0,0 +1,97 @@ +# 라이선스 요약의 한국어 번역(법적 효력 없음). 키 = 소문자 SPDX 식별자. +# 설명 관련 필드만 번역하며, 없는 필드는 _licenses/<id>.txt의 영어 프런트매터로 +# 대체됩니다. 라이선스의 법률 원문은 절대 번역하지 않습니다. + +agpl-3.0: + description: |- + 가장 강력한 이 카피레프트 라이선스의 허용은, 라이선스가 부여된 저작물과 그 수정본(라이선스 저작물을 사용하는 더 큰 저작물 포함)의 완전한 소스 코드를 동일한 라이선스로 제공하는 것을 전제로 합니다. 저작권 및 라이선스 표시는 보존되어야 합니다. 기여자는 명시적인 특허권을 부여합니다. 수정된 버전이 네트워크를 통해 서비스를 제공하는 데 사용될 경우, 그 수정 버전의 완전한 소스 코드를 제공해야 합니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Free Software Foundation은 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 라이선스 끝부분에서 찾을 수 있습니다. + +apache-2.0: + description: |- + 저작권 및 라이선스 표시의 보존을 주요 조건으로 하는 관대형 라이선스입니다. 기여자는 명시적인 특허권을 부여합니다. 라이선스가 부여된 저작물, 수정본, 더 큰 저작물은 다른 조건으로, 소스 코드 없이 배포할 수 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Apache Software Foundation은 각 소스 파일의 헤더에 상용구 표기를 추가하는 단계를 더할 것을 <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">권장합니다</a>. 이 표기는 라이선스 텍스트의 맨 끝 부록에서 찾을 수 있습니다. + +bsd-2-clause: + description: |- + <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a>와 <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a> 두 가지 변형으로 존재하는 관대형 라이선스입니다. 둘 다 MIT 라이선스와는 아주 미세한 차이만 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. [year]를 현재 연도로, [fullname]을 저작권자의 이름(또는 이름들)으로 바꾸세요. + +bsd-3-clause: + description: |- + <a href="/licenses/bsd-2-clause/">BSD 2-Clause License</a>와 유사한 관대형 라이선스이지만, 서면 동의 없이 저작권자 또는 그 기여자의 이름을 파생 제품 홍보에 사용하는 것을 금지하는 세 번째 조항이 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. [year]를 현재 연도로, [fullname]을 저작권자의 이름(또는 이름들)으로 바꾸세요. + +bsl-1.0: + description: |- + 소스(바이너리가 아닌) 형태로 배포할 때만 저작권 및 라이선스 표시의 보존을 요구하는 단순한 관대형 라이선스입니다. 라이선스가 부여된 저작물, 수정본, 더 큰 저작물은 다른 조건으로, 소스 코드 없이 배포할 수 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Boost는 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 <a href="https://www.boost.org/users/license.html#FAQ">Boost Software License FAQ</a>에서 찾을 수 있습니다. + +cc0-1.0: + description: |- + <a href="https://creativecommons.org/publicdomain/zero/1.0/">크리에이티브 커먼즈 CC0 퍼블릭 도메인 헌정</a>은 당신이 창작한 저작물에 대한 저작권상의 이익을 포기하고 이를 전 세계 퍼블릭 도메인에 헌정합니다. 저작권을 완전히 포기하고 저작물이 가장 널리 도달하도록 하려면 CC0을 사용하세요. Unlicense나 일반적인 소프트웨어 라이선스와 마찬가지로, CC0은 보증을 부인합니다. CC0은 Unlicense와 매우 유사합니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + 크리에이티브 커먼즈는 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 <a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">그들의 웹사이트에서 찾을 수 있습니다</a>. + +epl-2.0: + description: |- + 상업적으로 친화적인 이 카피레프트 라이선스는 바이너리를 상업적으로 라이선스할 수 있는 기능, 현대적인 무로열티 특허 라이선스 부여, 그리고 링크된 저작물이 상업적 라이선스를 포함한 다른 라이선스를 사용할 수 있는 기능을 제공합니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + +gpl-2.0: + description: |- + GNU GPL은 가장 널리 사용되는 자유 소프트웨어 라이선스이며 강력한 카피레프트 요건을 갖습니다. 파생 저작물을 배포할 때, 해당 저작물의 소스 코드를 동일한 라이선스로 제공해야 합니다. GNU GPL에는 여러 변형이 있으며, 각각 요건이 다릅니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Free Software Foundation은 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 라이선스 끝부분에서 찾을 수 있습니다. + +gpl-3.0: + description: |- + 강력한 이 카피레프트 라이선스의 허용은, 라이선스가 부여된 저작물과 그 수정본(라이선스 저작물을 사용하는 더 큰 저작물 포함)의 완전한 소스 코드를 동일한 라이선스로 제공하는 것을 전제로 합니다. 저작권 및 라이선스 표시는 보존되어야 합니다. 기여자는 명시적인 특허권을 부여합니다. + how: |- + 소스 코드의 루트에 텍스트 파일(GNU 관례에 따라 보통 COPYING)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Free Software Foundation은 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 라이선스 끝부분에서 찾을 수 있습니다. + +lgpl-2.1: + description: |- + 주로 소프트웨어 라이브러리에 사용되는 GNU LGPL은 파생 저작물을 동일한 라이선스로 배포하도록 요구하지만, 단지 링크만 하는 저작물은 이 제한을 받지 않습니다. 흔히 사용되는 GNU LGPL에는 두 가지 버전이 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Free Software Foundation은 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 라이선스 끝부분에서 찾을 수 있습니다. + +mit: + description: |- + 저작권 및 라이선스 표시의 보존만을 조건으로 하는 짧고 단순한 관대형 라이선스입니다. 라이선스가 부여된 저작물, 수정본, 더 큰 저작물은 다른 조건으로, 소스 코드 없이 배포할 수 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. [year]를 현재 연도로, [fullname]을 저작권자의 이름(또는 이름들)으로 바꾸세요. + +mpl-2.0: + description: |- + 약한 이 카피레프트 라이선스의 허용은, 라이선스가 부여된 파일과 그 파일의 수정본의 소스 코드를 동일한 라이선스(또는 특정 경우 GNU 라이선스 중 하나)로 제공하는 것을 전제로 합니다. 저작권 및 라이선스 표시는 보존되어야 합니다. 기여자는 명시적인 특허권을 부여합니다. 다만 라이선스 저작물을 사용하는 더 큰 저작물은 다른 조건으로, 더 큰 저작물에 추가된 파일의 소스 코드 없이 배포할 수 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 LICENSE 또는 LICENSE.txt)을 만들고 라이선스 텍스트를 그 파일에 복사하세요. + note: |- + Mozilla Foundation은 각 파일 상단에 상용구 표기를 추가하는 단계를 더할 것을 권장합니다. 상용구는 라이선스 끝부분(Exhibit A)에서 찾을 수 있습니다. + +unlicense: + description: |- + 어떠한 조건도 없이 저작물을 퍼블릭 도메인에 헌정하는 라이선스입니다. 이렇게 헌정된 저작물, 수정본, 더 큰 저작물은 다른 조건으로, 소스 코드 없이 배포할 수 있습니다. + how: |- + 소스 코드의 루트에 텍스트 파일(보통 UNLICENSE 또는 UNLICENSE.txt)을 만들고 라이선스 권리포기 텍스트를 그 파일에 복사하세요. diff --git a/_data/i18n/ko/rules.yml b/_data/i18n/ko/rules.yml new file mode 100644 index 000000000..27c010a0d --- /dev/null +++ b/_data/i18n/ko/rules.yml @@ -0,0 +1,61 @@ +# 규칙(허용 / 조건 / 제한)의 한국어 라벨과 설명. +# 진실의 원천은 _data/rules.yml(영어)입니다. 순서와 식별자는 거기서 가져오며, +# 여기에 없는 항목은 영어로 대체됩니다. +# 구조: <그룹> → <tag> → { label, description }. + +permissions: + commercial-use: + label: "상업적 이용" + description: "라이선스가 부여된 자료와 그 파생물을 상업적 목적으로 사용할 수 있습니다." + modifications: + label: "수정" + description: "라이선스가 부여된 자료를 수정할 수 있습니다." + distribution: + label: "배포" + description: "라이선스가 부여된 자료를 배포할 수 있습니다." + private-use: + label: "사적 이용" + description: "라이선스가 부여된 자료를 사적으로 사용하고 수정할 수 있습니다." + patent-use: + label: "특허 이용" + description: "이 라이선스는 기여자로부터 명시적인 특허권 부여를 제공합니다." + +conditions: + include-copyright: + label: "라이선스·저작권 표시" + description: "라이선스와 저작권 표시의 사본을 라이선스가 부여된 자료와 함께 포함해야 합니다." + include-copyright--source: + label: "라이선스·저작권 표시(소스)" + description: "라이선스와 저작권 표시의 사본을 소스 형태의 라이선스 자료와 함께 포함해야 하지만, 바이너리에는 요구되지 않습니다." + document-changes: + label: "변경 사항 명시" + description: "라이선스가 부여된 자료에 가한 변경 사항을 문서로 남겨야 합니다." + disclose-source: + label: "소스 공개" + description: "라이선스가 부여된 자료를 배포할 때 소스 코드를 제공해야 합니다." + network-use-disclose: + label: "네트워크 이용은 배포" + description: "네트워크를 통해 라이선스가 부여된 자료와 상호작용하는 사용자에게 소스 코드 사본을 받을 권리가 주어집니다." + same-license: + label: "동일 라이선스" + description: "라이선스가 부여된 자료를 배포할 때 수정 사항을 동일한 라이선스로 공개해야 합니다. 경우에 따라 유사하거나 관련된 라이선스를 사용할 수 있습니다." + same-license--file: + label: "동일 라이선스(파일)" + description: "라이선스가 부여된 자료를 배포할 때 기존 파일의 수정 사항을 동일한 라이선스로 공개해야 합니다. 경우에 따라 유사하거나 관련된 라이선스를 사용할 수 있습니다." + same-license--library: + label: "동일 라이선스(라이브러리)" + description: "라이선스가 부여된 자료를 배포할 때 수정 사항을 동일한 라이선스로 공개해야 합니다. 경우에 따라 유사하거나 관련된 라이선스를 사용할 수 있으며, 라이선스 자료를 라이브러리로 사용하는 저작물에는 이 조건이 적용되지 않을 수도 있습니다." + +limitations: + trademark-use: + label: "상표 이용" + description: "이 라이선스는 상표권을 부여하지 않음을 명시적으로 밝힙니다. 다만 그러한 명시가 없는 라이선스도 묵시적인 상표권을 부여하지 않는 것이 보통입니다." + liability: + label: "책임" + description: "이 라이선스에는 책임의 제한이 포함되어 있습니다." + patent-use: + label: "특허 이용" + description: "이 라이선스는 기여자의 특허에 대한 어떠한 권리도 부여하지 않음을 명시적으로 밝힙니다." + warranty: + label: "보증" + description: "이 라이선스는 어떠한 보증도 제공하지 않음을 명시적으로 밝힙니다." diff --git a/_data/i18n/ko/ui.yml b/_data/i18n/ko/ui.yml new file mode 100644 index 000000000..be04dbf56 --- /dev/null +++ b/_data/i18n/ko/ui.yml @@ -0,0 +1,135 @@ +# 인터페이스 문자열과 페이지 본문의 한국어 번역. +# 여기에 없는 키는 자동으로 영어(_data/i18n/en/ui.yml)로 대체됩니다. +# _html로 끝나는 키는 원시 HTML을 담으며, 그 외 여러 줄 값은 Markdown입니다. +# 라이선스 요약은 licenses.yml에, 규칙 라벨은 rules.yml에 있습니다. +# 라이선스의 법률 원문은 절대 번역하지 않습니다. + +# --- 언어 메타데이터 --------------------------------------------------------- +language_name: "한국어" +language_selector_label: "언어" + +# --- 내비게이션 및 푸터 ------------------------------------------------------ +nav_about: "소개" +nav_terms: "서비스 약관" +nav_improve: "이 페이지 개선에 참여하기" +footer_license_notice_html: |- + 이 사이트의 콘텐츠는 <a href="https://creativecommons.org/licenses/by/3.0/">크리에이티브 커먼즈 저작자표시 3.0 비이식 라이선스</a>에 따라 이용이 허락됩니다. +footer_curated_html: |- + <a href="https://github.com">GitHub, Inc.</a>와 <a href="https://github.com/github/choosealicense.com">여러분!</a>이 ❤️을 담아 정리했습니다. + +# --- 이동 경로 --------------------------------------------------------------- +breadcrumb_home: "홈" +breadcrumb_licenses: "라이선스" + +# --- 규칙 그룹 제목 ---------------------------------------------------------- +rules_permissions: "허용" +rules_conditions: "조건" +rules_limitations: "제한" + +# --- 규칙 툴팁(assets/js/app.js에서 조합됨) ---------------------------------- +# 재배치 가능한 서식: %label%, %category%, %description%가 규칙별로 채워집니다. +# 한국어는 범주를 앞에 둡니다: "허용 제목: 설명". +tooltip_format: "%category% %label%: %description%" +tooltip_cat_permissions: "허용" +tooltip_cat_conditions: "조건" +tooltip_cat_limitations: "제한" + +# --- 라이선스 페이지 사이드바 ------------------------------------------------ +sidebar_copy: "라이선스 텍스트를 클립보드에 복사" +sidebar_copied: "복사됨!" +sidebar_suggest_heading: "이 라이선스 제안하기" +sidebar_suggest_body_md: |- + [라이선스가 없는](/no-permission/) 프로젝트에 이 라이선스를 제안하려면 풀 리퀘스트를 보내세요. 정중하게 진행해 주세요. 이미 라이선스가 제안되었는지 확인하고, 프로젝트의 [커뮤니티](/community/)에 맞는 라이선스를 제안하려고 노력하며, 프로젝트 메인테이너와 우호적으로 소통하세요. +sidebar_repo_placeholder: "GitHub 저장소 URL을 입력하세요" +sidebar_how_heading: "이 라이선스를 적용하는 방법" +sidebar_optional_heading: "선택 단계" +sidebar_source: "출처" +sidebar_using_heading: "누가 이 라이선스를 사용하나요?" +# 패키지 관리자 안내. %id%(SPDX 식별자, <code>), %languages%(언어 링크), +# %clauses%(선택적 괄호 문구)는 번역하지 않고 그대로 채워집니다. +# 아래의 주변 문장만 번역합니다. +sidebar_pkg_html: |- + 해당되는 경우 프로젝트의 패키지 설명에 %id%%clauses%을(를) 추가하세요(예: %languages%). 이렇게 하면 패키지 디렉터리에 라이선스가 표시됩니다. +sidebar_pkg_only_html: " (또는 향후 버전을 허용하지 않으려면 %id%)" +sidebar_pkg_ofl_html: " (또는 저작권 표시 뒤에 예약 글꼴 이름이 지정된 경우 %id%)" +sidebar_gplcc_html: |- + 프로젝트에 GPL-3.0의 치유 조항을 채택하려면 <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a>의 <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">텍스트</a>를 %id% 라이선스 파일과 같은 디렉터리에 있는 <code>COMMITMENT</code>라는 이름의 파일에 추가하세요. + +# --- 라이선스 개요 카드(/licenses/) ------------------------------------------ +overview_view_full: "%title% 전문 보기 »" + +# --- "누가 사용하나" 문장(홈페이지) ------------------------------------------ +# 프로젝트 목록 구분자. 한국어는 항목 사이에 쉼표를 쓰고 마지막 항목은 "및"으로 잇습니다. +using_separator: ", " +using_last_separator: " 및 " +using_sentence_plural: "%projects%이(가) %license%을(를) 사용합니다." +using_sentence_singular: "%projects%이(가) %license%을(를) 사용합니다." + +# --- 페이지 제목 ------------------------------------------------------------- +page_title_home: "오픈 소스 라이선스 선택하기" +page_title_licenses: "라이선스" +page_title_appendix: "부록" +page_title_404: "404 페이지를 찾을 수 없음" + +# --- 홈페이지 ---------------------------------------------------------------- +home_intro: |- + 오픈 소스 라이선스는 기여자와 사용자를 보호합니다. 기업과 노련한 개발자는 이러한 보호가 없는 프로젝트에는 손대지 않습니다. +home_situations_question: "다음 중 당신의 상황을 가장 잘 설명하는 것은 무엇인가요?" +home_community_title: "저는 커뮤니티 안에서 작업해야 합니다." +home_community_content: |- + 당신이 기여하거나 의존하는 [커뮤니티가 선호하는 라이선스](community/)를 사용하세요. 당신의 프로젝트가 자연스럽게 어울릴 것입니다. + + 라이선스가 없는 의존성이 있다면, 그 메인테이너에게 [라이선스를 추가](no-permission/#for-users)해 달라고 요청하세요. +home_permissive_title: "간단하고 관대한 라이선스를 원합니다." +home_permissive_content: |- + [MIT 라이선스](licenses/mit/)는 짧고 명료합니다. 비공개 소스 버전을 만들고 배포하는 것을 포함해, 사람들이 당신의 프로젝트로 거의 무엇이든 할 수 있게 해 줍니다. +home_copyleft_title: "개선 사항을 공유하는 것이 중요합니다." +home_copyleft_content: |- + [GNU GPLv3](licenses/gpl-3.0/) 역시 사람들이 당신의 프로젝트로 거의 무엇이든 할 수 있게 해 주지만, 비공개 소스 버전을 배포하는 것은 *예외*입니다. +home_more_question: "이 중 어느 것도 제게 맞지 않으면 어떻게 하나요?" +home_nonsoftware_title: "제 프로젝트는 소프트웨어가 아닙니다." +home_nonsoftware_content: |- + [그런 경우를 위한 라이선스가 있습니다](non-software/). +home_morechoices_title: "더 많은 선택지를 원합니다." +home_morechoices_content: |- + [더 많은 라이선스가 있습니다](licenses/). +home_nolicense_title: "라이선스를 선택하고 싶지 않습니다." +home_nolicense_content: |- + [선택하지 않으면 어떻게 되는지 알려드립니다](no-permission/). + +# --- 라이선스 페이지(/licenses/) --------------------------------------------- +licenses_intro_html: |- + 오픈 소스 라이선스는 소프트웨어의 출처와 개방성을 보존하는 조건을 전제로, 누구나 라이선스가 부여된 소프트웨어를 어떤 목적으로든 사용, 수정, 공유할 수 있도록 허용합니다. 아래 라이선스는 조건의 수에 따라 가장 많은 것(GNU AGPLv3)부터 전혀 없는 것(Unlicense)까지 정렬되어 있습니다. <a href="/">홈페이지</a>에서 소개하는 인기 라이선스(GNU GPLv3와 MIT)도 이 범위 안에 들어 있다는 점에 유의하세요. +licenses_appendix_note_html: |- + choosealicense.com의 모든 라이선스 참조 표를 찾고 있다면 <a href="/appendix">부록</a>을 참고하세요. +licenses_outro_html: |- + 위 라이선스들은 매우 보호적인 것부터 무조건적인 것까지 오픈 소스 라이선스의 전체 범위를 나타냅니다. 이 중 하나면 대부분의 새 오픈 소스 프로젝트에 적합할 것입니다. 위 라이선스의 이전 버전이나 가까운 대체 라이선스를 포함해, 다른 많은 오픈 소스 라이선스가 존재합니다. 더 자세히 알고 싶다면 <a href="/about/">소개 페이지</a>에 나열된 자료를 참고하세요. + + 이미 잘 알고 있고 선호하는 라이선스가 있다면 더할 나위 없이 좋습니다! 우리는 당신의 생각을 바꾸려는 것이 아닙니다. 하지만 너무 많은 선택지에 어리둥절하다면, 우리가 도움이 될 수 있을지도 모릅니다. + +# --- 부록(/appendix/) -------------------------------------------------------- +appendix_intro: |- + 참고를 위해, [choosealicense.com 저장소](https://github.com/github/choosealicense.com)에 설명된 모든 라이선스의 표를 아래에 정리했습니다. + + 라이선스를 선택하려고 오셨다면, **[홈페이지에서 시작하세요](/)**. 대부분의 경우에 적합한 몇 가지 라이선스를 볼 수 있습니다. +appendix_col_license: "라이선스" +appendix_legend_heading: "범례" +appendix_legend_permissions_html: |- + 오픈 소스 라이선스는, 저작권법이나 그 밖의 "지식 재산권" 법이 금지할 수도 있는 일을 라이선스가 부여된 저작물로 할 수 있도록 대중에게 <span class="license-permissions"><span class="license-marker">✓</span></span> <b>허용</b>을 부여합니다. +appendix_legend_conditions_html: |- + 대부분의 오픈 소스 라이선스가 부여하는 허용은 <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>조건</b>의 준수를 전제로 합니다. +appendix_legend_limitations_html: |- + 대부분의 오픈 소스 라이선스에는 보통 보증과 책임을 부인하고, 때로는 라이선스의 부여 대상에서 특허나 상표를 명시적으로 제외하는 <span class="license-limitations"><span class="license-marker">✕</span></span> <b>제한</b>도 있습니다. + +# --- 404 페이지 -------------------------------------------------------------- +notfound_p1: |- + 죄송합니다! 찾고 계신 페이지를 찾을 수 없었습니다. +notfound_p2: |- + 라이선스를 보려던 것이라면 [라이선스](/licenses)로 이동하세요. + +# --- 자바스크립트 언어 제안 배너(assets/js/i18n.js) -------------------------- +# banner_switch의 %language%는 제안된 언어의 이름입니다. banner_suggest는 이름을 +# 직접 포함하므로 언어마다 문법과 표기를 스스로 제어합니다. +banner_suggest: "이 페이지는 **한국어**로도 제공됩니다." +banner_switch: "**한국어**로 전환" +banner_dismiss: "닫기" diff --git a/_data/i18n/pt/licenses.yml b/_data/i18n/pt/licenses.yml new file mode 100644 index 000000000..da2a7876f --- /dev/null +++ b/_data/i18n/pt/licenses.yml @@ -0,0 +1,112 @@ +# Sínteses em português das licenças (valor NÃO jurídico). Chave = identificador +# SPDX em minúsculas. Apenas os campos descritivos são traduzidos; cada campo +# ausente recai no front matter inglês do arquivo _licenses/<id>.txt, e o TEXTO +# JURÍDICO da licença nunca é traduzido. +# +# Esta cobertura abrange as licenças do "espectro" da página /licenses/. As demais +# licenças exibirão sua síntese em inglês até serem traduzidas. + +agpl-3.0: + description: |- + As permissões desta licença copyleft, a mais forte, estão condicionadas à disponibilização do código-fonte completo das obras licenciadas e das modificações — incluindo obras maiores que usam uma obra licenciada — sob a mesma licença. Os avisos de direitos autorais e de licença devem ser preservados. Quem contribui concede expressamente direitos de patente. Quando uma versão modificada é usada para fornecer um serviço por meio de uma rede, o código-fonte completo dessa versão modificada deve ser disponibilizado. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Free Software Foundation recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no final da licença. + +apache-2.0: + description: |- + Uma licença permissiva cujas principais condições exigem a preservação dos avisos de direitos autorais e de licença. Quem contribui concede expressamente direitos de patente. As obras licenciadas, suas modificações e obras maiores podem ser distribuídas sob termos diferentes e sem código-fonte. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Apache Software Foundation <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">recomenda</a> dar o passo adicional de adicionar um aviso padrão ao cabeçalho de cada arquivo de código-fonte. Você encontra o aviso no apêndice, bem no final do texto da licença. + +bsd-2-clause: + description: |- + Uma licença permissiva que vem em duas variantes, a <a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> e a <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>. Ambas têm diferenças mínimas em relação à licença MIT. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. Substitua [year] pelo ano atual e [fullname] pelo nome (ou nomes) de quem detém os direitos autorais. + +bsd-3-clause: + nickname: |- + Licença BSD Modificada + description: |- + Uma licença permissiva semelhante à <a href="/licenses/bsd-2-clause/">Licença BSD 2-Clause</a>, mas com uma 3ª cláusula que proíbe outras pessoas de usar o nome de quem detém os direitos autorais ou de quem contribui para promover produtos derivados sem consentimento por escrito. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. Substitua [year] pelo ano atual e [fullname] pelo nome (ou nomes) de quem detém os direitos autorais. + +bsl-1.0: + description: |- + Uma licença permissiva simples que exige apenas a preservação dos avisos de direitos autorais e de licença para a distribuição na forma de código-fonte (e não na forma binária). As obras licenciadas, suas modificações e obras maiores podem ser distribuídas sob termos diferentes e sem código-fonte. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Boost recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no <a href="https://www.boost.org/users/license.html#FAQ">FAQ da Boost Software License</a>. + +cc0-1.0: + description: |- + A <a href="https://creativecommons.org/publicdomain/zero/1.0/">Dedicação ao Domínio Público Creative Commons CC0</a> renuncia ao interesse de direitos autorais sobre uma obra que você criou e a dedica ao domínio público de todo o mundo. Use a CC0 para abrir mão totalmente dos direitos autorais e garantir que sua obra tenha o maior alcance possível. Assim como a Unlicense e as licenças de software típicas, a CC0 isenta de garantias. A CC0 é muito semelhante à Unlicense. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Creative Commons recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser <a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">encontrado no site deles</a>. + +epl-2.0: + description: |- + Esta licença copyleft, favorável ao uso comercial, oferece a capacidade de licenciar binários comercialmente; uma concessão de licença de patente moderna e livre de royalties; e a possibilidade de obras vinculadas usarem outras licenças, incluindo comerciais. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + +gpl-2.0: + nickname: |- + GNU GPLv2 + description: |- + A GNU GPL é a licença de software livre mais usada e tem uma forte exigência de copyleft. Ao distribuir obras derivadas, o código-fonte da obra deve ser disponibilizado sob a mesma licença. Existem várias variantes da GNU GPL, cada uma com exigências diferentes. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Free Software Foundation recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no final da licença. + +gpl-3.0: + nickname: |- + GNU GPLv3 + description: |- + As permissões desta forte licença copyleft estão condicionadas à disponibilização do código-fonte completo das obras licenciadas e das modificações — incluindo obras maiores que usam uma obra licenciada — sob a mesma licença. Os avisos de direitos autorais e de licença devem ser preservados. Quem contribui concede expressamente direitos de patente. + how: |- + Crie um arquivo de texto (normalmente chamado COPYING, conforme as convenções da GNU) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Free Software Foundation recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no final da licença. + +lgpl-2.1: + nickname: |- + GNU LGPLv2.1 + description: |- + Usada principalmente para bibliotecas de software, a GNU LGPL exige que as obras derivadas sejam licenciadas sob a mesma licença, mas as obras que apenas se vinculam a ela não se enquadram nessa restrição. Existem duas versões comumente usadas da GNU LGPL. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Free Software Foundation recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no final da licença. + +mit: + # Nome curto de exibição usado na frase "quem usa" da página inicial ("a MIT"). + # Apenas essa frase lê loc.nickname; o título da licença continua "MIT License" nos demais lugares. + nickname: "MIT" + description: |- + Uma licença permissiva curta e simples, com condições que exigem apenas a preservação dos avisos de direitos autorais e de licença. As obras licenciadas, suas modificações e obras maiores podem ser distribuídas sob termos diferentes e sem código-fonte. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. Substitua [year] pelo ano atual e [fullname] pelo nome (ou nomes) de quem detém os direitos autorais. + +mpl-2.0: + description: |- + As permissões desta licença copyleft fraca estão condicionadas à disponibilização do código-fonte dos arquivos licenciados e das modificações desses arquivos sob a mesma licença (ou, em certos casos, uma das licenças GNU). Os avisos de direitos autorais e de licença devem ser preservados. Quem contribui concede expressamente direitos de patente. No entanto, uma obra maior que usa a obra licenciada pode ser distribuída sob termos diferentes e sem o código-fonte dos arquivos adicionados na obra maior. + how: |- + Crie um arquivo de texto (normalmente chamado LICENSE ou LICENSE.txt) na raiz do seu código-fonte e copie o texto da licença para o arquivo. + note: |- + A Mozilla Foundation recomenda dar o passo adicional de adicionar um aviso padrão ao topo de cada arquivo. O aviso padrão pode ser encontrado no final da licença ("Exhibit A"). + +unlicense: + description: |- + Uma licença sem condição alguma, que dedica as obras ao domínio público. As obras assim liberadas, suas modificações e obras maiores podem ser distribuídas sob termos diferentes e sem código-fonte. + how: |- + Crie um arquivo de texto (normalmente chamado UNLICENSE ou UNLICENSE.txt) na raiz do seu código-fonte e copie o texto da declaração de licença para o arquivo. diff --git a/_data/i18n/pt/rules.yml b/_data/i18n/pt/rules.yml new file mode 100644 index 000000000..b55c92cea --- /dev/null +++ b/_data/i18n/pt/rules.yml @@ -0,0 +1,61 @@ +# Rótulos e descrições em português das regras (permissões / condições / +# limitações). A fonte da verdade continua sendo _data/rules.yml (inglês): a ordem +# e os identificadores vêm de lá, e qualquer entrada ausente aqui recai no inglês. +# Estrutura: <grupo> → <tag> → { label, description }. + +permissions: + commercial-use: + label: "Uso comercial" + description: "O material licenciado e seus derivados podem ser usados para fins comerciais." + modifications: + label: "Modificação" + description: "O material licenciado pode ser modificado." + distribution: + label: "Distribuição" + description: "O material licenciado pode ser distribuído." + private-use: + label: "Uso privado" + description: "O material licenciado pode ser usado e modificado de forma privada." + patent-use: + label: "Uso de patentes" + description: "Esta licença concede expressamente direitos de patente de quem contribui." + +conditions: + include-copyright: + label: "Citar autoria e licença" + description: "Uma cópia da licença e do aviso de direitos autorais deve ser incluída com o material licenciado." + include-copyright--source: + label: "Citar autoria e licença (fonte)" + description: "Uma cópia da licença e do aviso de direitos autorais deve ser incluída com o material licenciado na forma de código-fonte, mas não é exigida para os binários." + document-changes: + label: "Indicar as alterações" + description: "As alterações feitas no material licenciado devem ser documentadas." + disclose-source: + label: "Disponibilizar o código-fonte" + description: "O código-fonte deve ser disponibilizado quando o material licenciado for distribuído." + network-use-disclose: + label: "Uso em rede equivale a distribuição" + description: "Quem interage com o material licenciado por meio de uma rede tem o direito de receber uma cópia do código-fonte." + same-license: + label: "Mesma licença" + description: "As modificações devem ser publicadas sob a mesma licença ao distribuir o material licenciado. Em alguns casos, uma licença similar ou relacionada pode ser usada." + same-license--file: + label: "Mesma licença (arquivo)" + description: "As modificações de arquivos existentes devem ser publicadas sob a mesma licença ao distribuir o material licenciado. Em alguns casos, uma licença similar ou relacionada pode ser usada." + same-license--library: + label: "Mesma licença (biblioteca)" + description: "As modificações devem ser publicadas sob a mesma licença ao distribuir o material licenciado. Em alguns casos, uma licença similar ou relacionada pode ser usada, ou esta condição pode não se aplicar a obras que usam o material licenciado como biblioteca." + +limitations: + trademark-use: + label: "Uso de marcas" + description: "Esta licença declara explicitamente que NÃO concede direitos sobre marcas, ainda que licenças sem tal declaração provavelmente não concedam nenhum direito implícito sobre marcas." + liability: + label: "Responsabilidade" + description: "Esta licença inclui uma limitação de responsabilidade." + patent-use: + label: "Uso de patentes" + description: "Esta licença declara explicitamente que NÃO concede nenhum direito sobre as patentes de quem contribui." + warranty: + label: "Garantia" + description: "Esta licença declara explicitamente que NÃO fornece nenhuma garantia." diff --git a/_data/i18n/pt/ui.yml b/_data/i18n/pt/ui.yml new file mode 100644 index 000000000..f05bc9597 --- /dev/null +++ b/_data/i18n/pt/ui.yml @@ -0,0 +1,135 @@ +# Tradução em português (Brasil) das strings de interface e do texto das páginas. +# Toda chave ausente aqui recai automaticamente no inglês (_data/i18n/en/ui.yml). +# As chaves em _html contêm HTML bruto; os demais valores de várias linhas são +# Markdown. As sínteses das licenças ficam em licenses.yml e os rótulos das +# regras em rules.yml. Os textos jurídicos das licenças nunca são traduzidos. + +# --- Metadados de idioma ----------------------------------------------------- +language_name: "Português" +language_selector_label: "Idioma" + +# --- Navegação e rodapé ------------------------------------------------------ +nav_about: "Sobre" +nav_terms: "Termos de Serviço" +nav_improve: "Ajude a melhorar esta página" +footer_license_notice_html: |- + O conteúdo deste site está licenciado sob a <a href="https://creativecommons.org/licenses/by/3.0/">Licença Creative Commons Atribuição 3.0 Não Adaptada</a>. +footer_curated_html: |- + Organizado com ❤️ por <a href="https://github.com">GitHub, Inc.</a> e <a href="https://github.com/github/choosealicense.com">você!</a> + +# --- Trilha de navegação ----------------------------------------------------- +breadcrumb_home: "Início" +breadcrumb_licenses: "Licenças" + +# --- Títulos dos grupos de regras -------------------------------------------- +rules_permissions: "Permissões" +rules_conditions: "Condições" +rules_limitations: "Limitações" + +# --- Dicas de regra (montadas em assets/js/app.js) --------------------------- +# Modelo reordenável: %label%, %category% e %description% são preenchidos por regra. +# A ordem em português coloca a categoria primeiro: "Permissão Título: descrição". +tooltip_format: "%category% %label%: %description%" +tooltip_cat_permissions: "Permissão" +tooltip_cat_conditions: "Condição" +tooltip_cat_limitations: "Limitação" + +# --- Barra lateral das páginas de licença ------------------------------------ +sidebar_copy: "Copiar o texto da licença para a área de transferência" +sidebar_copied: "Copiado!" +sidebar_suggest_heading: "Sugerir esta licença" +sidebar_suggest_body_md: |- + Abra um pull request para sugerir esta licença a um projeto que [não tem licença](/no-permission/). Seja gentil: verifique se uma licença já foi sugerida, tente sugerir uma adequada à [comunidade](/community/) do projeto e mantenha uma comunicação cordial com as pessoas que mantêm o projeto. +sidebar_repo_placeholder: "Digite a URL do repositório no GitHub" +sidebar_how_heading: "Como aplicar esta licença" +sidebar_optional_heading: "Etapas opcionais" +sidebar_source: "Fonte" +sidebar_using_heading: "Quem está usando esta licença?" +# Nota para gerenciadores de pacotes. %id% (identificador SPDX em <code>), +# %languages% (links dos idiomas) e %clauses% permanecem sem tradução; apenas o +# texto ao redor abaixo é traduzido. +sidebar_pkg_html: |- + Adicione %id%%clauses% à descrição do pacote do seu projeto, se aplicável (por ex., %languages%). Isso garantirá que a licença seja exibida nos diretórios de pacotes. +sidebar_pkg_only_html: " (ou %id% para proibir versões futuras)" +sidebar_pkg_ofl_html: " (ou %id% se um Nome de Fonte Reservado for especificado após a declaração de direitos autorais)" +sidebar_gplcc_html: |- + Se você quiser que seu projeto adote a cláusula de regularização da GPL-3.0, adicione o <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">texto</a> do <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> em um arquivo chamado <code>COMMITMENT</code>, no mesmo diretório do seu arquivo de licença %id%. + +# --- Cartões de visão geral das licenças (/licenses/) ------------------------ +overview_view_full: "Ver %title% na íntegra »" + +# --- Frase "quem usa" (página inicial) --------------------------------------- +# Separadores da lista de projetos; em português, sem vírgula antes do "e". +using_separator: ", " +using_last_separator: " e " +using_sentence_plural: "%projects% usam a %license%." +using_sentence_singular: "%projects% usa a %license%." + +# --- Títulos das páginas ----------------------------------------------------- +page_title_home: "Escolha uma licença de código aberto" +page_title_licenses: "Licenças" +page_title_appendix: "Apêndice" +page_title_404: "404 — Página não encontrada" + +# --- Página inicial ---------------------------------------------------------- +home_intro: |- + Uma licença de código aberto protege quem contribui e quem usa. Empresas e pessoas desenvolvedoras experientes não chegam perto de um projeto sem essa proteção. +home_situations_question: "Qual das opções a seguir descreve melhor a sua situação?" +home_community_title: "Preciso trabalhar em uma comunidade." +home_community_content: |- + Use a [licença preferida pela comunidade](community/) para a qual você está contribuindo ou da qual você depende. Seu projeto se encaixará perfeitamente. + + Se você tiver uma dependência sem licença, peça a quem a mantém para [adicionar uma licença](no-permission/#for-users). +home_permissive_title: "Quero algo simples e permissivo." +home_permissive_content: |- + A [Licença MIT](licenses/mit/) é curta e direta. Ela permite que as pessoas façam quase tudo o que quiserem com o seu projeto, como criar e distribuir versões de código fechado. +home_copyleft_title: "Importo-me em compartilhar melhorias." +home_copyleft_content: |- + A [GNU GPLv3](licenses/gpl-3.0/) também permite que as pessoas façam quase tudo o que quiserem com o seu projeto, *exceto* distribuir versões de código fechado. +home_more_question: "E se nenhuma dessas opções servir para mim?" +home_nonsoftware_title: "Meu projeto não é software." +home_nonsoftware_content: |- + [Existem licenças para isso](non-software/). +home_morechoices_title: "Quero mais opções." +home_morechoices_content: |- + [Há mais licenças disponíveis](licenses/). +home_nolicense_title: "Não quero escolher uma licença." +home_nolicense_content: |- + [Veja o que acontece se você não escolher](no-permission/). + +# --- Página de licenças (/licenses/) ----------------------------------------- +licenses_intro_html: |- + As licenças de código aberto concedem a qualquer pessoa permissão para usar, modificar e compartilhar o software licenciado para qualquer finalidade, sujeita a condições que preservam a origem e a abertura do software. As licenças a seguir estão ordenadas pelo número de condições, da que tem mais (GNU AGPLv3) à que não tem nenhuma (Unlicense). Observe que as licenças populares destacadas na <a href="/">página inicial</a> (GNU GPLv3 e MIT) se enquadram nesse espectro. +licenses_appendix_note_html: |- + Se você procura uma tabela de referência com todas as licenças do choosealicense.com, consulte o <a href="/appendix">apêndice</a>. +licenses_outro_html: |- + As licenças acima representam todo o espectro das licenças de código aberto, das mais protetoras às mais incondicionais. Uma delas deve servir para a maioria dos novos projetos de código aberto. Existem muitas outras licenças de código aberto, incluindo versões mais antigas e substitutas próximas de algumas das anteriores. Consulte os recursos listados na nossa <a href="/about/">página "sobre"</a> se quiser saber mais. + + Se você já sabe o que está fazendo e tem uma licença que prefere usar, ótimo! Não estamos aqui para fazer você mudar de ideia. Mas se o grande número de opções deixa você confuso, talvez possamos ajudar. + +# --- Apêndice (/appendix/) --------------------------------------------------- +appendix_intro: |- + Para referência, aqui está uma tabela com todas as licenças descritas no [repositório do choosealicense.com](https://github.com/github/choosealicense.com). + + Se você está aqui para escolher uma licença, **[comece pela página inicial](/)** para ver algumas licenças que servirão para a maioria dos casos. +appendix_col_license: "Licença" +appendix_legend_heading: "Legenda" +appendix_legend_permissions_html: |- + As licenças de código aberto concedem ao público <span class="license-permissions"><span class="license-marker">✓</span></span> <b>permissões</b> para fazer com as obras licenciadas coisas que os direitos autorais ou outras leis de "propriedade intelectual" poderiam, de outra forma, proibir. +appendix_legend_conditions_html: |- + A concessão de permissões pela maioria das licenças de código aberto está sujeita ao cumprimento de <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>condições</b>. +appendix_legend_limitations_html: |- + A maioria das licenças de código aberto também tem <span class="license-limitations"><span class="license-marker">✕</span></span> <b>limitações</b> que geralmente isentam de garantia e responsabilidade e, às vezes, excluem expressamente patentes ou marcas das concessões das licenças. + +# --- Página 404 -------------------------------------------------------------- +notfound_p1: |- + Desculpe! Não conseguimos encontrar a página que você procurava. +notfound_p2: |- + Se você estava tentando ver uma licença, vá para [licenças](/licenses). + +# --- Faixa JavaScript de sugestão de idioma (assets/js/i18n.js) -------------- +# %language% (banner_switch) = nome do idioma sugerido; banner_suggest inclui +# diretamente o nome para respeitar a gramática e a grafia de cada idioma. +banner_suggest: "Esta página também está disponível em **português**." +banner_switch: "Mudar para **português**" +banner_dismiss: "Dispensar" diff --git a/_data/i18n/zh/licenses.yml b/_data/i18n/zh/licenses.yml new file mode 100644 index 000000000..87507d6fc --- /dev/null +++ b/_data/i18n/zh/licenses.yml @@ -0,0 +1,100 @@ +# 许可证摘要的简体中文翻译(非法律文本)。键 = 小写的 SPDX 标识。 +# 仅翻译描述性字段;缺失的字段会回退到 _licenses/<id>.txt 的英文 front matter, +# 而许可证的法律正文永不翻译。 + +agpl-3.0: + description: |- + 这一最强的 copyleft 许可证,其授予的许可以如下条件为前提:必须以相同的许可证提供被许可作品及其修改(包括使用了被许可作品的更大作品)的完整源代码。必须保留版权和许可声明。贡献者明确授予专利权。当某个修改版本被用于通过网络提供服务时,必须提供该修改版本的完整源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + 自由软件基金会建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在许可证末尾找到。 + +apache-2.0: + description: |- + 一种宽松的许可证,其主要条件要求保留版权和许可声明。贡献者明确授予专利权。被许可作品、修改及更大的作品可以在不同的条款下分发,且无需提供源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + Apache Software Foundation <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">建议</a>额外采取一个步骤:在每个源文件的文件头添加一段样板声明。你可以在许可证文本最末尾的附录中找到该声明。 + +bsd-2-clause: + description: |- + 一种宽松的许可证,有两种变体:<a href="/licenses/bsd-2-clause/">BSD 2-Clause</a> 和 <a href="/licenses/bsd-3-clause/">BSD 3-Clause</a>。二者与 MIT 许可证都只有极其细微的差别。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。将 [year] 替换为当前年份,将 [fullname] 替换为版权持有者的姓名(或多个姓名)。 + +bsd-3-clause: + description: |- + 一种宽松的许可证,与 <a href="/licenses/bsd-2-clause/">BSD 2-Clause 许可证</a>类似,但增加了第三条条款,禁止他人未经书面同意使用版权持有者或其贡献者的名义来推广衍生产品。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。将 [year] 替换为当前年份,将 [fullname] 替换为版权持有者的姓名(或多个姓名)。 + +bsl-1.0: + description: |- + 一种简单的宽松许可证,仅要求在以源代码形式(而非二进制形式)分发时保留版权和许可声明。被许可作品、修改及更大的作品可以在不同的条款下分发,且无需提供源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + Boost 建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在 <a href="https://www.boost.org/users/license.html#FAQ">Boost Software License 常见问题解答</a>中找到。 + +cc0-1.0: + description: |- + <a href="https://creativecommons.org/publicdomain/zero/1.0/">知识共享 CC0 公共领域贡献声明</a>放弃对你所创作作品的版权权益,并将其贡献给全球公共领域。使用 CC0 可彻底放弃版权,确保你的作品拥有最广泛的传播范围。与 Unlicense 及常见的软件许可证一样,CC0 免除担保。CC0 与 Unlicense 非常相似。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + 知识共享组织建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可<a href="https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC0_to_computer_software.3F_If_so.2C_is_there_a_recommended_implementation.3F">在其网站上找到</a>。 + +epl-2.0: + description: |- + 这一对商业友好的 copyleft 许可证提供以下能力:对二进制文件进行商业授权;现代化的免版税专利授权;以及让被链接的作品使用其他许可证(包括商业许可证)的能力。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + +gpl-2.0: + description: |- + GNU GPL 是使用最为广泛的自由软件许可证,具有强 copyleft 要求。分发衍生作品时,必须以相同的许可证提供该作品的源代码。GNU GPL 有多个变体,各有不同的要求。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + 自由软件基金会建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在许可证末尾找到。 + +gpl-3.0: + description: |- + 这一强 copyleft 许可证,其授予的许可以如下条件为前提:必须以相同的许可证提供被许可作品及其修改(包括使用了被许可作品的更大作品)的完整源代码。必须保留版权和许可声明。贡献者明确授予专利权。 + how: |- + 在源代码的根目录下创建一个文本文件(按照 GNU 惯例通常命名为 COPYING),并将许可证文本复制到该文件中。 + note: |- + 自由软件基金会建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在许可证末尾找到。 + +lgpl-2.1: + description: |- + GNU LGPL 主要用于软件库,它要求衍生作品以相同的许可证授权,但仅与其链接的作品不受此限制。GNU LGPL 有两个常用的版本。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + 自由软件基金会建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在许可证末尾找到。 + +mit: + # 首页「谁在使用」句子中使用的简短显示名称(「使用 MIT」)。 + # 仅该句子读取 loc.nickname;其他位置标题仍为「MIT License」。 + nickname: "MIT" + description: |- + 一种简短而简单的宽松许可证,其条件仅要求保留版权和许可声明。被许可作品、修改及更大的作品可以在不同的条款下分发,且无需提供源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。将 [year] 替换为当前年份,将 [fullname] 替换为版权持有者的姓名(或多个姓名)。 + +mpl-2.0: + description: |- + 这一弱 copyleft 许可证,其授予的许可以如下条件为前提:必须以相同的许可证(或在某些情况下使用 GNU 许可证之一)提供被许可文件及其修改的源代码。必须保留版权和许可声明。贡献者明确授予专利权。不过,使用了被许可作品的更大作品可以在不同的条款下分发,且无需为更大作品中新增的文件提供源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 LICENSE 或 LICENSE.txt),并将许可证文本复制到该文件中。 + note: |- + Mozilla Foundation 建议额外采取一个步骤:在每个文件的顶部添加一段样板声明。该样板可在许可证末尾(Exhibit A)找到。 + +unlicense: + description: |- + 一种不带任何条件的许可证,它将作品贡献给公共领域。已解除许可的作品、修改及更大的作品可以在不同的条款下分发,且无需提供源代码。 + how: |- + 在源代码的根目录下创建一个文本文件(通常命名为 UNLICENSE 或 UNLICENSE.txt),并将许可证免责声明的文本复制到该文件中。 diff --git a/_data/i18n/zh/rules.yml b/_data/i18n/zh/rules.yml new file mode 100644 index 000000000..46f69dcbe --- /dev/null +++ b/_data/i18n/zh/rules.yml @@ -0,0 +1,61 @@ +# 规则(许可 / 条件 / 限制)的简体中文标签与描述。 +# 真正的来源仍是 _data/rules.yml(英文):顺序与标识符均源于此, +# 此处缺失的任意条目都会回退到英文。 +# 结构:<分组> → <tag> → { label, description }。 + +permissions: + commercial-use: + label: "商业使用" + description: "被许可的材料及其衍生物可用于商业目的。" + modifications: + label: "修改" + description: "被许可的材料可以被修改。" + distribution: + label: "分发" + description: "被许可的材料可以被分发。" + private-use: + label: "私人使用" + description: "被许可的材料可以私下使用和修改。" + patent-use: + label: "专利使用" + description: "本许可证明确授予来自贡献者的专利权。" + +conditions: + include-copyright: + label: "保留版权与许可声明" + description: "分发被许可的材料时,必须随附一份许可证和版权声明的副本。" + include-copyright--source: + label: "保留声明(源代码)" + description: "以源代码形式分发被许可的材料时,必须随附一份许可证和版权声明的副本,但二进制形式无此要求。" + document-changes: + label: "声明改动" + description: "对被许可材料所做的改动必须予以记录。" + disclose-source: + label: "公开源代码" + description: "分发被许可的材料时,必须提供其源代码。" + network-use-disclose: + label: "网络使用即分发" + description: "通过网络与被许可材料交互的用户有权获得一份源代码副本。" + same-license: + label: "相同许可证" + description: "分发被许可的材料时,修改必须以相同的许可证发布。在某些情况下,可使用相似或相关的许可证。" + same-license--file: + label: "相同许可证(文件)" + description: "分发被许可的材料时,对现有文件的修改必须以相同的许可证发布。在某些情况下,可使用相似或相关的许可证。" + same-license--library: + label: "相同许可证(库)" + description: "分发被许可的材料时,修改必须以相同的许可证发布。在某些情况下,可使用相似或相关的许可证,或者此条件可能不适用于将被许可材料作为库使用的作品。" + +limitations: + trademark-use: + label: "商标使用" + description: "本许可证明确声明其不授予商标权,尽管没有此类声明的许可证可能也不会授予任何隐含的商标权。" + liability: + label: "责任" + description: "本许可证包含责任限制条款。" + patent-use: + label: "专利使用" + description: "本许可证明确声明其不授予对贡献者专利的任何权利。" + warranty: + label: "担保" + description: "本许可证明确声明其不提供任何担保。" diff --git a/_data/i18n/zh/ui.yml b/_data/i18n/zh/ui.yml new file mode 100644 index 000000000..c89859d5c --- /dev/null +++ b/_data/i18n/zh/ui.yml @@ -0,0 +1,133 @@ +# 界面字符串与页面正文的简体中文翻译。 +# 此处缺失的任意键会自动回退到英文(_data/i18n/en/ui.yml)。 +# 以 _html 结尾的键包含原始 HTML;其余多行值为 Markdown。许可证摘要位于 +# licenses.yml,规则标签位于 rules.yml。许可证的法律正文永不翻译。 + +# --- 语言元数据 -------------------------------------------------------------- +language_name: "中文" +language_selector_label: "语言" + +# --- 导航与页脚 -------------------------------------------------------------- +nav_about: "关于" +nav_terms: "服务条款" +nav_improve: "帮助改进此页面" +footer_license_notice_html: |- + 本站内容采用 <a href="https://creativecommons.org/licenses/by/3.0/">知识共享署名 3.0 未本地化版本许可协议</a> 授权。 +footer_curated_html: |- + 由 <a href="https://github.com">GitHub, Inc.</a> 和 <a href="https://github.com/github/choosealicense.com">你!</a> 用 ❤️ 精心整理 + +# --- 面包屑导航 -------------------------------------------------------------- +breadcrumb_home: "首页" +breadcrumb_licenses: "许可证" + +# --- 规则分组标题 ------------------------------------------------------------ +rules_permissions: "许可" +rules_conditions: "条件" +rules_limitations: "限制" + +# --- 规则提示气泡(在 assets/js/app.js 中组装)------------------------------- +# 可重排的模板:%label%、%category% 和 %description% 会按每条规则填充。 +# 中文将类别置于开头,例如「许可 商业使用:……」。 +tooltip_format: "%category% %label%:%description%" +tooltip_cat_permissions: "许可" +tooltip_cat_conditions: "条件" +tooltip_cat_limitations: "限制" + +# --- 许可证页面侧边栏 -------------------------------------------------------- +sidebar_copy: "将许可证文本复制到剪贴板" +sidebar_copied: "已复制!" +sidebar_suggest_heading: "推荐此许可证" +sidebar_suggest_body_md: |- + 提交一个 pull request,为某个[尚未授权](/no-permission/)的项目推荐此许可证。请保持礼貌:先看看是否已经有人推荐过许可证,尽量推荐适合该项目[社区](/community/)的许可证,并与项目维护者保持友好沟通。 +sidebar_repo_placeholder: "请输入 GitHub 仓库 URL" +sidebar_how_heading: "如何应用此许可证" +sidebar_optional_heading: "可选步骤" +sidebar_source: "来源" +sidebar_using_heading: "谁在使用此许可证?" +# 包管理器提示。占位符会被填充并保持不译:%id% 是 SPDX 标识(以 <code> 显示), +# %languages% 是语言链接,%clauses% 是可选的括号补充内容。此处仅翻译周边正文。 +sidebar_pkg_html: |- + 如适用,请将 %id%%clauses% 添加到项目的包描述信息中(例如 %languages%)。这样可确保许可证显示在各包目录中。 +sidebar_pkg_only_html: " (或使用 %id% 以禁止未来的版本)" +sidebar_pkg_ofl_html: " (或者,若在版权声明之后指定了保留字体名称,则使用 %id%)" +sidebar_gplcc_html: |- + 如果你希望项目采用 GPL-3.0 的补救条款,请将 <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> 的<a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">文本</a>添加到一个名为 <code>COMMITMENT</code> 的文件中,并将其放在与 %id% 许可证文件相同的目录下。 + +# --- 许可证概览卡片(/licenses/)-------------------------------------------- +overview_view_full: "查看完整的 %title% »" + +# --- 「谁在使用」句子(首页)------------------------------------------------ +# 项目列表分隔符;中文使用顿号,最后一项前无单独的「和」字。 +using_separator: "、" +using_last_separator: "、" +using_sentence_plural: "%projects% 使用 %license%。" +using_sentence_singular: "%projects% 使用 %license%。" + +# --- 页面标题 ---------------------------------------------------------------- +page_title_home: "选择一个开源许可证" +page_title_licenses: "许可证" +page_title_appendix: "附录" +page_title_404: "404 未找到" + +# --- 首页 -------------------------------------------------------------------- +home_intro: |- + 开源许可证保护着贡献者和用户。没有这层保护,企业和资深开发者都不会碰你的项目。 +home_situations_question: "以下哪一项最能描述你的情况?" +home_community_title: "我需要在一个社区中工作。" +home_community_content: |- + 使用你所贡献或所依赖的[社区偏好的许可证](community/),你的项目就能完美融入其中。 + + 如果你的某个依赖没有许可证,请请求其维护者[添加一个许可证](no-permission/#for-users)。 +home_permissive_title: "我想要简单而宽松的许可证。" +home_permissive_content: |- + [MIT 许可证](licenses/mit/)简短而直接。它允许人们对你的项目做几乎任何想做的事,比如制作并发布闭源版本。 +home_copyleft_title: "我在意改进成果能被共享。" +home_copyleft_content: |- + [GNU GPLv3](licenses/gpl-3.0/) 同样允许人们对你的项目做几乎任何想做的事,*但唯独不能*发布闭源版本。 +home_more_question: "如果这些都不适合我怎么办?" +home_nonsoftware_title: "我的项目不是软件。" +home_nonsoftware_content: |- + [有适用于这种情况的许可证](non-software/)。 +home_morechoices_title: "我想要更多选择。" +home_morechoices_content: |- + [还有更多许可证可供选用](licenses/)。 +home_nolicense_title: "我不想选择任何许可证。" +home_nolicense_content: |- + [看看不选会发生什么](no-permission/)。 + +# --- 许可证页面(/licenses/)------------------------------------------------ +licenses_intro_html: |- + 开源许可证授予任何人以任何目的使用、修改和分享被许可软件的权利,但须遵守一些用以保留软件来源和开放性的条件。以下许可证按条件数量排序,从最多(GNU AGPLv3)到没有任何条件(Unlicense)。请注意,<a href="/">首页</a>上重点推荐的热门许可证(GNU GPLv3 和 MIT)也都落在这一区间之内。 +licenses_appendix_note_html: |- + 如果你想要一张涵盖 choosealicense.com 上所有许可证的参考表,请查看<a href="/appendix">附录</a>。 +licenses_outro_html: |- + 上述许可证代表了开源许可证的整个区间,从高度保护性到完全无条件。其中之一应当适用于大多数新的开源项目。还存在许多其他开源许可证,包括上述某些许可证的旧版本和相近替代品。如果你想进一步了解,请查阅我们<a href="/about/">关于页面</a>所列出的资源。 + + 如果你已经心中有数,并且有偏好使用的许可证,那很好!我们无意改变你的想法。但如果你被众多的选择弄得不知所措,也许我们能帮上忙。 + +# --- 附录(/appendix/)------------------------------------------------------ +appendix_intro: |- + 以下是 [choosealicense.com 仓库](https://github.com/github/choosealicense.com)中描述的所有许可证的表格,供参考。 + + 如果你来这里是为了选择许可证,**[请从首页开始](/)**,了解几个适用于大多数情况的许可证。 +appendix_col_license: "许可证" +appendix_legend_heading: "图例" +appendix_legend_permissions_html: |- + 开源许可证向公众授予 <span class="license-permissions"><span class="license-marker">✓</span></span> <b>许可</b>,准许对被许可作品做一些版权或其他「知识产权」法律本可能禁止的事情。 +appendix_legend_conditions_html: |- + 大多数开源许可证授予的许可,都以遵守一些 <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>条件</b>为前提。 +appendix_legend_limitations_html: |- + 大多数开源许可证还设有一些 <span class="license-limitations"><span class="license-marker">✕</span></span> <b>限制</b>,通常用以免除担保和责任,有时还明确将专利或商标排除在许可的授予之外。 + +# --- 404 页面 ---------------------------------------------------------------- +notfound_p1: |- + 抱歉!我们找不到你要查找的页面。 +notfound_p2: |- + 如果你想查看某个许可证,请前往[许可证](/licenses)页面。 + +# --- JavaScript 语言建议横幅(assets/js/i18n.js)--------------------------- +# banner_switch 的 %language% 是被建议语言的名称;banner_suggest 直接嵌入 +# 名称,以便每种语言自行控制其语法和大小写。 +banner_suggest: "本页面也提供**中文**版本。" +banner_switch: "切换到**中文**" +banner_dismiss: "忽略" diff --git a/_includes/breadcrumbs.html b/_includes/breadcrumbs.html index 1cc6bdc78..ccd8b558e 100644 --- a/_includes/breadcrumbs.html +++ b/_includes/breadcrumbs.html @@ -1,10 +1,13 @@ {% unless page.hide_breadcrumbs == true %} + {% capture bc_home %}{% include t.html key="breadcrumb_home" %}{% endcapture %} + {% capture bc_licenses %}{% include t.html key="breadcrumb_licenses" %}{% endcapture %} + {% if page.title_key %}{% capture bc_page %}{% include t.html key=page.title_key %}{% endcapture %}{% else %}{% assign bc_page = page.title %}{% endif %} <ol> <li> {% if page.layout == "license" %} - <a href="/">Home</a> / <a href="/licenses/">Licenses</a> + <a href="{{ '/' | relative_url }}">{{ bc_home }}</a> / <a href="{{ '/licenses/' | relative_url }}">{{ bc_licenses }}</a> {% else %} - <a href="/">Home</a> + <a href="{{ '/' | relative_url }}">{{ bc_home }}</a> {% endif %} </li> </ol> @@ -17,21 +20,21 @@ "position": 1, "item": { "@id": "{{ site.github.url }}/", - "name": "Home" + "name": {{ bc_home | strip | jsonify }} } },{% if page.layout == "license" %}{ "@type": "ListItem", "position": 2, "item": { "@id": "{{ site.github.url }}/licenses", - "name": "Licenses" + "name": {{ bc_licenses | strip | jsonify }} } },{% endif %}{ "@type": "ListItem", "position": {% if page.layout == "license" %}3{% else %}2{% endif %}, "item": { "@id": "{{ site.github.url }}{{ page.url }}", - "name": {{ page.title | jsonify }} + "name": {{ bc_page | strip | jsonify }} } }] } diff --git a/_includes/footer.html b/_includes/footer.html index a4a549107..2d14c6a91 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,15 +1,19 @@ <footer class="site-footer clearfix"> <nav> - <a href="/about/">About</a> - <a href="/terms-of-service/">Terms of Service</a> - {% github_edit_link "Help improve this page" %} + <a href="{{ '/about/' | relative_url }}">{% include t.html key="nav_about" %}</a> + <a href="{{ '/terms-of-service/' | relative_url }}">{% include t.html key="nav_terms" %}</a> + {% comment %} + Built by hand (rather than the {% github_edit_link %} tag) so the link + text can be localized. Produces the same URL the tag would, so HTML + Proofer treats it identically. + {% endcomment %} + <a href="{{ site.github.repository_url }}/edit/{{ site.github.source.branch }}/{{ page.path }}">{% include t.html key="nav_improve" %}</a> </nav> <p> - The content of this site is licensed under the <a href="https://creativecommons.org/licenses/by/3.0/"> - Creative Commons Attribution 3.0 Unported License</a>. + {% include t.html key="footer_license_notice_html" %} </p> <div class="with-love"> - Curated with ❤️ by <a href="https://github.com">GitHub, Inc.</a> and <a href="https://github.com/github/choosealicense.com">You!</a> + {% include t.html key="footer_curated_html" %} </div> </footer> @@ -17,7 +21,16 @@ {% if page.collection == "licenses" or page.class == "license-types" %} <script> - window.annotations = {{ site.data.rules | jsonify }}; + {%- assign i18n_lang = site.active_lang | default: site.default_lang -%} + {%- assign loc_rules = site.data.i18n[i18n_lang].rules -%} + window.annotations = { + {%- assign types = "permissions|conditions|limitations" | split: "|" -%} + {% for type in types %}"{{ type }}": [{% for r in site.data.rules[type] %}{% assign lr = loc_rules[type][r.tag] %}{"tag": {{ r.tag | jsonify }}, "label": {{ lr.label | default: r.label | jsonify }}, "description": {{ lr.description | default: r.description | jsonify }}}{% unless forloop.last %}, {% endunless %}{% endfor %}]{% unless forloop.last %}, {% endunless %}{% endfor %} + }; + {%- assign i18n_ui = site.data.i18n[i18n_lang].ui -%} + {%- assign i18n_uidef = site.data.i18n[site.default_lang].ui -%} + window.tooltipFormat = {{ i18n_ui.tooltip_format | default: i18n_uidef.tooltip_format | jsonify }}; + window.tooltipCategory = { "permissions": {{ i18n_ui.tooltip_cat_permissions | default: i18n_uidef.tooltip_cat_permissions | jsonify }}, "conditions": {{ i18n_ui.tooltip_cat_conditions | default: i18n_uidef.tooltip_cat_conditions | jsonify }}, "limitations": {{ i18n_ui.tooltip_cat_limitations | default: i18n_uidef.tooltip_cat_limitations | jsonify }} }; {% if page.collection == "licenses" %} window.licenses = [ {% for license in site.licenses %} @@ -29,7 +42,15 @@ ]; {% endif %} </script> - <script src="{{ 'assets/js/app.js' | relative_url }}"></script> + <script src="{{ 'assets/js/app.js' | relative_url }}?v={{ site.github.build_revision }}"></script> {% endif %} + <script> + window.choosealicenseI18n = { + current: {{ site.active_lang | default: site.default_lang | jsonify }}, + default: {{ site.default_lang | default: "en" | jsonify }}, + languages: { {% for lang in site.languages %}{{ lang | jsonify }}: { "name": {{ site.data.i18n[lang].ui.language_name | default: lang | jsonify }}, "suggest": {{ site.data.i18n[lang].ui.banner_suggest | jsonify }}, "switch": {{ site.data.i18n[lang].ui.banner_switch | jsonify }}, "dismiss": {{ site.data.i18n[lang].ui.banner_dismiss | jsonify }} }{% unless forloop.last %}, {% endunless %}{% endfor %} } + }; + </script> + <script src="{{ 'assets/js/i18n.js' | relative_url }}?v={{ site.github.build_revision }}"></script> </body> </html> diff --git a/_includes/header.html b/_includes/header.html index 7e2b10d2e..da93edc38 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -1,5 +1,6 @@ <!DOCTYPE html> -<html lang="en"> +{%- assign text_dir = site.data.i18n[site.active_lang].ui.text_direction | default: site.data.i18n[site.default_lang].ui.text_direction | default: 'ltr' -%} +<html lang="{{ site.active_lang | default: site.default_lang | default: 'en' }}" dir="{{ text_dir }}"> <head itemscope itemtype="http://schema.org/WebSite"> <meta charset="utf-8"> @@ -8,13 +9,32 @@ <link rel="shortcut icon" href="{{ 'favicon.ico' | relative_url }}" type="image/x-icon"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> + {% comment %} + Tell search engines about every language version of this page. static_href + stops polyglot from re-prefixing the URLs we build explicitly here, and also + feeds the JavaScript language suggestion (assets/js/i18n.js). + {% endcomment %} + {% comment %} + href is placed before hreflang on purpose: polyglot's URL corrector skips a + link matching `hreflang="<default_lang>" href=…`, so the default language's + alternate would keep static_href's placeholder if the order were reversed. + {% endcomment %} + {% for lang in site.languages %} + {% if lang == site.default_lang %}{% capture alt_href %}{{ site.url }}{{ site.baseurl }}{{ page.url }}{% endcapture %}{% else %}{% capture alt_href %}{{ site.url }}{{ site.baseurl }}/{{ lang }}{{ page.url }}{% endcapture %}{% endif %} + <link rel="alternate" {% static_href %}href="{{ alt_href }}"{% endstatic_href %} hreflang="{{ lang }}"> + {% endfor %} + <link rel="alternate" {% static_href %}href="{{ site.url }}{{ site.baseurl }}{{ page.url }}"{% endstatic_href %} hreflang="x-default"> + {% seo %} </head> <body class="{{ page.layout }}{% if page.class %} {{ page.class }}{% endif %}"> <div class="container"> - {% include breadcrumbs.html %} + <div class="topbar"> + {% include breadcrumbs.html %} + {% include language-selector.html %} + </div> {% if page.title %} - <h1>{{ page.title | markdownify | strip_html | strip_newlines }}</h1> + <h1>{% if page.title_key %}{% include t.html key=page.title_key %}{% else %}{{ page.title | markdownify | strip_html | strip_newlines }}{% endif %}</h1> {% endif %} diff --git a/_includes/language-icon.svg b/_includes/language-icon.svg new file mode 100644 index 000000000..0d01360cd --- /dev/null +++ b/_includes/language-icon.svg @@ -0,0 +1,2 @@ +{%- comment -%}Language glyph from g1vote / g1-migrator (libre-licensed), reused here.{%- endcomment -%} +<svg width="20" height="20" viewBox="0 0 256 256" fill="currentColor"><path d="M62.4,101c-1.5-2.1-2.1-3.4-1.8-3.9c0.2-0.5,1.6-0.7,3.9-0.5c2.3,0.2,4.2,0.5,5.8,0.9c1.5,0.4,2.8,1,3.8,1.7c1,0.7,1.8,1.5,2.3,2.6c0.6,1,1,2.3,1.4,3.7c0.7,2.8,0.5,4.7-0.5,5.7c-1.1,1-2.6,0.8-4.6-0.6c-2.1-1.4-3.9-2.8-5.5-4.2C65.5,105.1,63.9,103.2,62.4,101z M40.7,190.1c4.8-2.1,9-4.2,12.6-6.4c3.5-2.1,6.6-4.4,9.3-6.8c2.6-2.3,5-4.9,7-7.7c2-2.7,3.8-5.8,5.4-9.2c1.3,1.2,2.5,2.4,3.8,3.5c1.2,1.1,2.5,2.2,3.8,3.4c1.3,1.2,2.8,2.4,4.3,3.8c1.5,1.4,3.3,2.8,5.3,4.5c0.7,0.5,1.4,0.9,2.1,1c0.7,0.1,1.7,0,3.1-0.6c1.3-0.5,3-1.4,5.1-2.8c2.1-1.3,4.7-3.1,7.9-5.4c1.6-1.1,2.4-2,2.3-2.7c-0.1-0.7-1-1-2.7-0.9c-3.1,0.1-5.9,0.1-8.3-0.1c-2.5-0.2-5-0.6-7.4-1.4c-2.4-0.8-4.9-1.9-7.5-3.4c-2.6-1.5-5.6-3.6-9.1-6.2c1-3.9,1.8-8,2.4-12.4c0.3-2.5,0.6-4.3,0.8-5.6c0.2-1.2,0.5-2.4,0.9-3.3c0.3-0.8,0.4-1.4,0.5-1.9c0.1-0.5-0.1-1-0.4-1.6c-0.4-0.5-1-1.1-1.9-1.7c-0.9-0.6-2.2-1.4-3.9-2.3c2.4-0.9,5.1-1.7,7.9-2.6c2.7-0.9,5.7-1.8,8.8-2.7c3-0.9,4.5-1.9,4.6-3.1c0.1-1.2-0.9-2.3-3.2-3.5c-1.5-0.8-2.9-1.1-4.3-0.9c-1.4,0.2-3.2,0.9-5.4,2.2c-0.6,0.4-1.8,0.9-3.4,1.6c-1.7,0.7-3.6,1.5-6,2.5c-2.4,1-5,2-7.8,3.1c-2.9,1.1-5.8,2.2-8.7,3.2c-2.9,1.1-5.7,2-8.2,2.8c-2.6,0.8-4.6,1.4-6.1,1.6c-3.8,0.8-5.8,1.6-5.9,2.4c0,0.8,1.5,1.6,4.4,2.4c1.2,0.3,2.3,0.6,3.1,0.6c0.8,0.1,1.7,0.1,2.5,0c0.8-0.1,1.6-0.3,2.4-0.5c0.8-0.3,1.7-0.7,2.8-1.1c1.6-0.8,3.9-1.7,6.9-2.8c2.9-1,6.6-2.4,11.2-4c0.9,2.7,1.4,6,1.4,9.8c0,3.8-0.4,8.1-1.4,13c-1.3-1.1-2.7-2.3-4.2-3.6c-1.5-1.3-2.9-2.6-4.3-3.9c-1.6-1.5-3.2-2.5-4.7-3c-1.6-0.5-3.4-0.5-5.5,0c-3.3,0.9-5,1.9-4.9,3.1c0,1.2,1.3,1.8,3.8,1.9c0.9,0.1,1.8,0.3,2.7,0.6c0.9,0.3,1.9,0.9,3.2,1.8c1.3,0.9,2.9,2.2,4.7,3.8c1.8,1.6,4.2,3.7,7,6.3c-1.2,2.9-2.6,5.6-4.1,8c-1.5,2.5-3.4,5-5.5,7.3c-2.2,2.4-4.7,4.8-7.7,7.2c-3,2.5-6.6,5.1-10.8,7.8c-4.3,2.8-6.5,4.7-6.5,5.6C35,192.1,37,191.7,40.7,190.1z M250.5,81.8v165.3l-111.6-36.4L10.5,253.4V76.1l29.9-10V10.4l81.2,28.7L231.3,2.6v73.1L250.5,81.8z M124.2,50.6L22.3,84.6v152.2l101.9-33.9V50.6L124.2,50.6z M219.4,71.9V19L138.1,46L219.4,71.9z M227,201.9L196.5,92L176,85.6l-30.9,90.8l18.9,5.9l5.8-18.7l31.9,10l5.7,22.3L227,201.9z M174.8,147.7l22.2,6.9l-10.9-42.9L174.8,147.7z"/></svg> diff --git a/_includes/language-selector.html b/_includes/language-selector.html new file mode 100644 index 000000000..5480fe13e --- /dev/null +++ b/_includes/language-selector.html @@ -0,0 +1,34 @@ +{%- comment -%} + Language selector — a native <details> disclosure dropdown. It needs no + JavaScript (works when JS is disabled) and scales to many languages: each entry + is a real link to that language's version of the current page. static_href keeps + polyglot from re-prefixing the URLs we build here. assets/js/i18n.js only adds + conveniences (remembering the choice, the suggestion banner) on top. +{%- endcomment -%} +{%- assign current_lang = site.active_lang | default: site.default_lang -%} +{%- if site.languages.size > 1 -%} +{%- assign current_name = site.data.i18n[current_lang].ui.language_name | default: current_lang -%} +<div class="lang-cluster"> +<div class="language-suggestion" hidden aria-live="polite"></div> +<details class="language-selector"> + <summary aria-label="{% include t.html key='language_selector_label' %}" title="{% include t.html key='language_selector_label' %}"> + <span class="language-selector-icon" aria-hidden="true">{% include language-icon.svg %}</span> + <span class="language-selector-current">{{ current_name }}</span> + <span class="language-selector-caret" aria-hidden="true">▾</span> + </summary> + <ul class="language-menu"> + {%- for lang in site.languages -%} + {%- if lang == site.default_lang -%}{%- capture lang_href -%}{{ site.baseurl }}{{ page.url }}{%- endcapture -%}{%- else -%}{%- capture lang_href -%}{{ site.baseurl }}/{{ lang }}{{ page.url }}{%- endcapture -%}{%- endif -%} + {%- assign lang_name = site.data.i18n[lang].ui.language_name | default: lang -%} + <li> + {%- if lang == current_lang -%} + <a {% static_href %}href="{{ lang_href }}"{% endstatic_href %} lang="{{ lang }}" hreflang="{{ lang }}" rel="alternate" aria-current="true">{{ lang_name }}<span class="checkmark" aria-hidden="true">✓</span></a> + {%- else -%} + <a {% static_href %}href="{{ lang_href }}"{% endstatic_href %} lang="{{ lang }}" hreflang="{{ lang }}" rel="alternate">{{ lang_name }}</a> + {%- endif -%} + </li> + {%- endfor -%} + </ul> +</details> +</div> +{%- endif -%} diff --git a/_includes/license-overview.html b/_includes/license-overview.html index c810fe2f0..507c0bd30 100644 --- a/_includes/license-overview.html +++ b/_includes/license-overview.html @@ -1,49 +1,28 @@ +{% assign i18n_lang = site.active_lang | default: site.default_lang %} {% assign id = "/licenses/" | append: include.license-id %} {% assign licenses = site.licenses | where:"id", id %} {% for license in licenses %} +{% assign spdx_key = license.spdx-id | downcase %} +{% assign loc = site.data.i18n[i18n_lang].licenses[spdx_key] %} <div class="license-overview clearfix" id="{{ include.license-id | slugify }}"> <div class="license-overview-heading"> <h3 class="license-overview-name"> <a href="{{ license.url }}"> {% if license.nickname %} - {{ license.nickname }} + {{ loc.nickname | default: license.nickname }} {% else %} {{ license.title }} {% endif %} </a> </h3> - <p class="license-overview-description">{{ license.description }}</p> + <p class="license-overview-description">{{ loc.description | default: license.description }}</p> </div> <div class="license-details"> - <table class="license-rules"> - <tr> - {% assign types = "permissions|conditions|limitations" | split: "|" %} - {% for type in types %} - <th class="label">{{ type | capitalize }}</th> - {% endfor %} - </tr> - <tr> - {% for type in types %} - <td> - <ul class="license-{{ type }}"> - {% assign rules = site.data.rules[type] | sort: "label" %} - {% for rule_obj in rules %} - {% assign req = rule_obj.tag %} - {% if license[type] contains req %} - <li class="{{ req }}"> - <span class="license-marker">{% if type == "permissions" %}✓{% elsif type == "conditions" %}ⓘ{% else %}✕{% endif %}</span> - {{ rule_obj.label }} - </li> - {% endif %} - {% endfor %} - </ul> - </td> - {% endfor %} - </tr> - </table> - <p class="small"><a href="{{ license.url }}">View full {{ license.title }} »</a></p> + {% include rules-table.html license=license %} + {% capture view_full %}{% include t.html key="overview_view_full" %}{% endcapture %} + <p class="small"><a href="{{ license.url }}">{{ view_full | replace: '%title%', license.title }}</a></p> </div> </div> {% endfor %} diff --git a/_includes/rules-table.html b/_includes/rules-table.html new file mode 100644 index 000000000..b7f158183 --- /dev/null +++ b/_includes/rules-table.html @@ -0,0 +1,40 @@ +{%- comment -%} + Renders the permissions / conditions / limitations table for a single license. + Parameter: include.license — the license document (the page itself on a license + page, or a collection item in overviews). + + Rule order and tags come from the canonical English _data/rules.yml; the visible + labels are localized via _data/i18n/<lang>/rules.yml, falling back to English. + Factored out of _layouts/license.html and _includes/license-overview.html so the + table lives in one place. +{%- endcomment -%} +{%- assign i18n_lang = site.active_lang | default: site.default_lang | default: "en" -%} +{%- assign loc_rules = site.data.i18n[i18n_lang].rules -%} +<table class="license-rules"> + <tr> + {% assign types = "permissions|conditions|limitations" | split: "|" %} + {% for type in types %} + {% capture type_key %}rules_{{ type }}{% endcapture %} + <th class="label">{% include t.html key=type_key %}</th> + {% endfor %} + </tr> + <tr> + {% for type in types %} + <td> + <ul class="license-{{ type }}"> + {% assign rules = site.data.rules[type] | sort: "label" %} + {% for rule_obj in rules %} + {% assign req = rule_obj.tag %} + {% if include.license[type] contains req %} + {% assign loc = loc_rules[type][req] %} + <li class="{{ req }}"> + <span class="license-marker">{% if type == "permissions" %}✓{% elsif type == "conditions" %}ⓘ{% else %}✕{% endif %}</span> + {{ loc.label | default: rule_obj.label }} + </li> + {% endif %} + {% endfor %} + </ul> + </td> + {% endfor %} + </tr> +</table> diff --git a/_includes/sidebar.html b/_includes/sidebar.html index 414c19106..7440147a1 100644 --- a/_includes/sidebar.html +++ b/_includes/sidebar.html @@ -1,27 +1,33 @@ <div class="sidebar"> - <a href="#" data-clipboard-target="#license-text" data-proofer-ignore="true" class="js-clipboard-button button">Copy license text to clipboard</a> + {% comment %} Localized summary overlay (also set by the license layout; re-derived here to be self-contained). {% endcomment %} + {% assign i18n_lang = site.active_lang | default: site.default_lang %} + {% assign spdx_key = page.spdx-id | downcase %} + {% assign loc = site.data.i18n[i18n_lang].licenses[spdx_key] %} + {% assign bu_href = 'href="' | append: site.baseurl | append: '/' %} + + <a href="#" data-clipboard-target="#license-text" data-proofer-ignore="true" data-copied-label="{% include t.html key='sidebar_copied' %}" class="js-clipboard-button button">{% include t.html key="sidebar_copy" %}</a> {% unless page.spdx-id == 'LGPL-3.0' %} - <h3 id="suggest-this-license">Suggest this license</h3> + <h3 id="suggest-this-license">{% include t.html key="sidebar_suggest_heading" %}</h3> <div class="repository-suggestion"> - <p>Make a pull request to suggest this license for a project that is <a href="/no-permission/">not licensed</a>. Please be polite: see if a license has already been suggested, try to suggest a license fitting for the project’s <a href="/community/">community</a>, and keep your communication with project maintainers friendly.</p> + {% capture suggest_body %}{% include tmd.html key="sidebar_suggest_body_md" %}{% endcapture %}{{ suggest_body | replace: 'href="/', bu_href }} <div class="input-wrapper"> - <input type="text" data-license-id="{{ page.spdx-id }}" placeholder="Enter GitHub repository URL" id="repository-url" title="status" /> + <input type="text" data-license-id="{{ page.spdx-id }}" placeholder="{% include t.html key='sidebar_repo_placeholder' %}" id="repository-url" title="status" /> <div class="status-indicator"></div> </div> </div> {% endunless %} <div class="how-to-apply"> - <h3 id="how-to-apply">How to apply this license</h3> + <h3 id="how-to-apply">{% include t.html key="sidebar_how_heading" %}</h3> <p> - {{ page.how }} + {{ loc.how | default: page.how | replace: 'href="/', bu_href }} </p> <div class="note"> - <h4 id="optional-steps">Optional steps</h4> + <h4 id="optional-steps">{% include t.html key="sidebar_optional_heading" %}</h4> {% if page.note %} <p> - {{ page.note }} + {{ loc.note | default: page.note | replace: 'href="/', bu_href }} </p> {% endif %} {% assign lateronly = false %} @@ -29,9 +35,21 @@ <h4 id="optional-steps">Optional steps</h4> {% elsif page.spdx-id contains 'GFDL' %}{% assign lateronly = true %}{% endif %} {% assign ofl = false %} {% if page.spdx-id contains 'OFL-1' %}{% assign ofl = true %}{% endif %} - <p id="package-metadata">Add <strong><code>{{ page.spdx-id }}{% if lateronly %}-or-later{% endif %}{% if ofl %}-no-RFN{% endif %}</code></strong>{% if lateronly %} (or <strong><code>{{ page.spdx-id }}-only</code></strong> to disallow future versions){% endif %}{% if ofl %} (or <strong><code>{{ page.spdx-id }}-RFN</code></strong> if a Reserved Font Name is specified after the copyright statement){% endif %} to your project’s package description, if applicable (e.g., <a href="https://docs.npmjs.com/cli/v7/configuring-npm/package-json#license">Node.js</a>, <a href="https://guides.rubygems.org/specification-reference/#license=">Ruby</a>, and <a href="https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields">Rust</a>). This will ensure the license is displayed in package directories.</p> + {% comment %} + Package-manager note. The bold tokens stay untranslated: the SPDX ids + (built here as <code>) and the language names/links. Only the prose comes + from the translations, via %id% / %clauses% / %languages% placeholders. + {% endcomment %} + {%- capture pkg_id -%}<strong><code>{{ page.spdx-id }}{% if lateronly %}-or-later{% endif %}{% if ofl %}-no-RFN{% endif %}</code></strong>{%- endcapture -%} + {%- capture pkg_only -%}{% if lateronly %}{% capture pkg_only_id %}<strong><code>{{ page.spdx-id }}-only</code></strong>{% endcapture %}{% capture pkg_only_tpl %}{% include t.html key="sidebar_pkg_only_html" %}{% endcapture %}{{ pkg_only_tpl | replace: '%id%', pkg_only_id }}{% endif %}{%- endcapture -%} + {%- capture pkg_ofl -%}{% if ofl %}{% capture pkg_ofl_id %}<strong><code>{{ page.spdx-id }}-RFN</code></strong>{% endcapture %}{% capture pkg_ofl_tpl %}{% include t.html key="sidebar_pkg_ofl_html" %}{% endcapture %}{{ pkg_ofl_tpl | replace: '%id%', pkg_ofl_id }}{% endif %}{%- endcapture -%} + {%- assign pkg_clauses = pkg_only | append: pkg_ofl -%} + {%- capture pkg_langs -%}<a href="https://docs.npmjs.com/cli/v7/configuring-npm/package-json#license">Node.js</a>{% include t.html key="using_separator" %}<a href="https://guides.rubygems.org/specification-reference/#license=">Ruby</a>{% include t.html key="using_last_separator" %}<a href="https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields">Rust</a>{%- endcapture -%} + {%- capture pkg_html -%}{% include t.html key="sidebar_pkg_html" %}{%- endcapture -%} + <p id="package-metadata">{{ pkg_html | replace: '%id%', pkg_id | replace: '%clauses%', pkg_clauses | replace: '%languages%', pkg_langs }}</p> {% if page.spdx-id contains 'GPL-2' %} - <p id="gplcc">If you would like your project to adopt the GPL-3.0’s cure provision, add the <a href="https://github.com/gplcc/gplcc/blob/master/Project/COMMITMENT">text</a> of the <a href="https://gplcc.github.io/gplcc/">GPL Cooperation Commitment</a> to a file named <code>COMMITMENT</code> in the same directory as your {{ page.spdx-id }} license file.</p> + {%- capture gplcc_html -%}{% include t.html key="sidebar_gplcc_html" %}{%- endcapture -%} + <p id="gplcc">{{ gplcc_html | replace: '%id%', page.spdx-id }}</p> {% endif %} </div> </div> @@ -39,13 +57,13 @@ <h4 id="optional-steps">Optional steps</h4> <div class="source"> <a href="https://spdx.org/licenses/{{ page.spdx-id }}{% if lateronly %}-or-later{% endif %}.html"> <span class="source-marker" aria-hidden="true">↗</span> - Source + {% include t.html key="sidebar_source" %} </a> </div> {% if page.using %} <div class="projects-with-license"> - <h3>Who’s using this license?</h3> + <h3>{% include t.html key="sidebar_using_heading" %}</h3> <ul> {% for using in page.using %} <li><a href="{{ using[1] }}" target="_blank">{{ using[0] }}</a></li> diff --git a/_includes/t.html b/_includes/t.html new file mode 100644 index 000000000..8039c5f8e --- /dev/null +++ b/_includes/t.html @@ -0,0 +1,11 @@ +{%- comment -%} + Inline UI string lookup. + Usage: {% include t.html key="nav_about" %} + Resolves against the active language, falling back to the default language and + finally to the key itself (so a missing translation is visible, never blank). +{%- endcomment -%} +{%- assign i18n_lang = site.active_lang | default: site.default_lang | default: "en" -%} +{%- assign i18n_val = site.data.i18n[i18n_lang].ui[include.key] -%} +{%- if i18n_val == nil or i18n_val == "" -%}{%- assign i18n_val = site.data.i18n[site.default_lang].ui[include.key] -%}{%- endif -%} +{%- if i18n_val == nil -%}{%- assign i18n_val = include.key -%}{%- endif -%} +{{- i18n_val -}} diff --git a/_includes/tmd.html b/_includes/tmd.html new file mode 100644 index 000000000..8ffc8ab8b --- /dev/null +++ b/_includes/tmd.html @@ -0,0 +1,10 @@ +{%- comment -%} + Block UI string lookup, rendered as Markdown. + Usage: {% include tmd.html key="home_intro" %} + Same active-language → default-language → key fallback as t.html. +{%- endcomment -%} +{%- assign i18n_lang = site.active_lang | default: site.default_lang | default: "en" -%} +{%- assign i18n_md = site.data.i18n[i18n_lang].ui[include.key] -%} +{%- if i18n_md == nil or i18n_md == "" -%}{%- assign i18n_md = site.data.i18n[site.default_lang].ui[include.key] -%}{%- endif -%} +{%- if i18n_md == nil -%}{%- assign i18n_md = include.key -%}{%- endif -%} +{{ i18n_md | markdownify }} diff --git a/_includes/using-sentence.html b/_includes/using-sentence.html index a609b5c08..e56115bb2 100644 --- a/_includes/using-sentence.html +++ b/_includes/using-sentence.html @@ -1,15 +1,24 @@ -{% assign id = "/licenses/" | append: include.license-id %} -{% assign licenses = site.licenses | where:"id", id %} -{% for license in licenses %} - {% assign using = license.using %} - {% if using.size > 0 %} - {% for used in using limit: 3 %} - {% assign last = forloop.last %} - {% if last and using.size > 1 %} - and - {% endif %} - <a href="{{ used[1] }}">{{ used[0] }}</a>{% if last == false %},{% endif %} - {% endfor %} - use{% if using.size == 1 %}s{% endif %} the {% if license.nickname %}{{ license.nickname }}{% else %}{{ license.title }}{% endif %}. - {% endif %} -{% endfor %} +{%- assign i18n_lang = site.active_lang | default: site.default_lang -%} +{%- assign id = "/licenses/" | append: include.license-id -%} +{%- assign licenses = site.licenses | where:"id", id -%} +{%- for license in licenses -%} + {%- assign using = license.using -%} + {%- if using.size > 0 -%} + {%- comment -%} + Join the project names with a localized separator. The separator before the + LAST item differs per language (English keeps a serial comma, "X, Y, and Z"; + French drops it, "X, Y et Z"). + {%- endcomment -%} + {%- capture projects -%} + {%- for used in using limit: 3 -%} + {%- unless forloop.first -%}{%- if forloop.last -%}{% include t.html key="using_last_separator" %}{%- else -%}{% include t.html key="using_separator" %}{%- endif -%}{%- endunless -%} + <a href="{{ used[1] }}">{{ used[0] }}</a> + {%- endfor -%} + {%- endcapture -%} + {%- assign spdx_key = license.spdx-id | downcase -%} + {%- assign loc = site.data.i18n[i18n_lang].licenses[spdx_key] -%} + {%- assign lic_name = loc.nickname | default: license.nickname | default: license.title -%} + {%- if using.size == 1 -%}{%- capture sentence -%}{% include t.html key="using_sentence_singular" %}{%- endcapture -%}{%- else -%}{%- capture sentence -%}{% include t.html key="using_sentence_plural" %}{%- endcapture -%}{%- endif -%} + {{ sentence | replace: '%projects%', projects | replace: '%license%', lic_name | strip }} + {%- endif -%} +{%- endfor -%} diff --git a/_layouts/default.html b/_layouts/default.html index 7ee00ac36..936c5aeda 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,5 +1,12 @@ {% include header.html %} -{{ content }} +{% comment %} + Prefix root-relative links in the page body with site.baseurl so every page + works when the site is served under a subpath (e.g. a project page). polyglot + then adds the language prefix for non-default languages. A no-op at a site root + (baseurl empty). Single injection point — content sources keep plain "/…" links. +{% endcomment %} +{% assign bu_href = 'href="' | append: site.baseurl | append: '/' %} +{{ content | replace: 'href="/', bu_href }} {% include footer.html %} diff --git a/_layouts/license.html b/_layouts/license.html index 602089dd3..535bf44fb 100644 --- a/_layouts/license.html +++ b/_layouts/license.html @@ -1,51 +1,38 @@ {% include header.html %} +{% comment %} + Localized summary overlay for this license. The legal text (rendered untouched + from the .txt body below) is never translated; only the human-readable summary + fields (nickname/description/how/note) are, via _data/i18n/<lang>/licenses.yml, + falling back to the canonical English front matter. +{% endcomment %} +{% assign i18n_lang = site.active_lang | default: site.default_lang %} +{% assign spdx_key = page.spdx-id | downcase %} +{% assign loc = site.data.i18n[i18n_lang].licenses[spdx_key] %} +{% comment %}Prefix root-relative links in summaries with baseurl (no-op when empty).{% endcomment %} +{% assign bu_href = 'href="' | append: site.baseurl | append: '/' %} + <div class="clearfix"> <div class="license-body"> {% if page.nickname %} <p class="license-nickname"> - {{ page.nickname }} + {{ loc.nickname | default: page.nickname }} </p> {% endif %} <p> - {{ page.description }} + {{ loc.description | default: page.description | replace: 'href="/', bu_href }} </p> <div class="license-page-details"> - <table class="license-rules"> - <tr> - {% assign types = "permissions|conditions|limitations" | split: "|" %} - {% for type in types %} - <th class="label">{{ type | capitalize }}</th> - {% endfor %} - </tr> - <tr> - {% for type in types %} - <td> - <ul class="license-{{ type }}"> - {% assign rules = site.data.rules[type] | sort: "label" %} - {% for rule_obj in rules %} - {% assign req = rule_obj.tag %} - {% if page[type] contains req %} - <li class="{{ req }}"> - <span class="license-marker">{% if type == "permissions" %}✓{% elsif type == "conditions" %}ⓘ{% else %}✕{% endif %}</span> - {{ rule_obj.label }} - </li> - {% endif %} - {% endfor %} - </ul> - </td> - {% endfor %} - </tr> - </table> + {% include rules-table.html license=page %} </div> - <pre id="license-text">{{ content | replace:"<", "<" | replace:">", ">" }}</pre> + <pre id="license-text" dir="ltr">{{ content | replace:"<", "<" | replace:">", ">" }}</pre> </div> <!-- /license-body --> diff --git a/about.md b/about.md index 169caff36..29a726270 100644 --- a/about.md +++ b/about.md @@ -1,12 +1,11 @@ --- layout: default permalink: /about/ -title: "What's this about?" +title: "What’s this about?" --- - GitHub wants to help developers choose an open source license for their source code. -If you already know what you're doing and have a license you prefer to use, that's great! We're not here to change your mind. But if you are bewildered by the large number of choices, maybe we can help. +If you already know what you’re doing and have a license you prefer to use, that’s great! We’re not here to change your mind. But if you are bewildered by the large number of choices, maybe we can help. ## Not comprehensive @@ -25,8 +24,8 @@ See our [appendix](/appendix/) for a table of every license cataloged in the [ch ## Help us improve it -Choosealicense.com isn't just about open source; the site itself is open source as well. See something you think could be done better? Feel free to [fork the project](https://github.com/github/choosealicense.com) on GitHub and submit a pull request. We welcome your improvements. +Choosealicense.com isn’t just about open source; the site itself is open source as well. See something you think could be done better? Feel free to [fork the project](https://github.com/github/choosealicense.com) on GitHub and submit a pull request. We welcome your improvements. ## Disclaimer -We are not lawyers. Well, most of us anyway. It is not the goal of this site to provide legal advice. The goal of this site is to provide a starting point to help you make an informed choice by providing information on popular open source licenses in a simplified fashion. If you have any questions regarding the best license for your code or any other legal issues relating to it, it's your responsibility to do further research or consult with a professional. +We are not lawyers. Well, most of us anyway. It is not the goal of this site to provide legal advice. The goal of this site is to provide a starting point to help you make an informed choice by providing information on popular open source licenses in a simplified fashion. If you have any questions regarding the best license for your code or any other legal issues relating to it, it’s your responsibility to do further research or consult with a professional. diff --git a/appendix.md b/appendix.md index 62c119d98..217ab3073 100644 --- a/appendix.md +++ b/appendix.md @@ -2,17 +2,18 @@ layout: default permalink: /appendix/ title: Appendix +title_key: page_title_appendix class: license-types --- -For reference, here is a table of every license described in the [choosealicense.com repository](https://github.com/github/choosealicense.com). - -If you're here to choose a license, **[start from the home page](/)** to see a few licenses that will work for most cases. +{% include t.html key="appendix_intro" %} +{% assign i18n_lang = site.active_lang | default: site.default_lang %} +{% assign loc_rules = site.data.i18n[i18n_lang].rules %} <table border style="font-size: xx-small; position: relative"> {% assign types = "permissions|conditions|limitations" | split: "|" %} <tr style="position: sticky; top: 0; z-index: 1000001; background: color-mix(in srgb, var(--backgroundColor) 70%, transparent);"> - <th scope="col" style="text-align: center">License</th> + <th scope="col" style="text-align: center">{% include t.html key="appendix_col_license" %}</th> {% assign seen_tags = '' %} {% for type in types %} {% assign rules = site.data.rules[type] | sort: "label" %} @@ -21,7 +22,8 @@ If you're here to choose a license, **[start from the home page](/)** to see a f {% continue %} {% endif %} {% capture seen_tags %}{{ seen_tags | append:rule_obj.tag }}{% endcapture %} - <th scope="col" style="text-align: center; width:7%"><a href="#{{ rule_obj.tag }}">{{ rule_obj.label }}</a></th> + {% assign lrule = loc_rules[type][rule_obj.tag] %} + <th scope="col" style="text-align: center; width:7%"><a href="#{{ rule_obj.tag }}">{{ lrule.label | default: rule_obj.label }}</a></th> {% endfor %} {% endfor %} </tr> @@ -64,21 +66,22 @@ If you're here to choose a license, **[start from the home page](/)** to see a f {% endfor %} </table> -## Legend +## {% include t.html key="appendix_legend_heading" %} -<p>Open source licenses grant to the public <span class="license-permissions"><span class="license-marker">✓</span></span> <b>permissions</b> to do things with licensed works which copyright or other "intellectual property" laws might otherwise disallow.</p> +<p>{% include t.html key="appendix_legend_permissions_html" %}</p> -<p>Most open source licenses' grants of permissions are subject to compliance with <span class="license-conditions"><span class="license-marker">ⓘ</span></span> <b>conditions</b>.</p> +<p>{% include t.html key="appendix_legend_conditions_html" %}</p> -<p>Most open source licenses also have <span class="license-limitations"><span class="license-marker">✕</span></span> <b>limitations</b> that usually disclaim warranty and liability, and sometimes expressly exclude patents or trademarks from licenses' grants.</p> +<p>{% include t.html key="appendix_legend_limitations_html" %}</p> {% for type in types %} -### {% if type == "permissions" %}Permissions{% elsif type == "conditions" %}Conditions{% else %}Limitations{% endif %} +### {% if type == "permissions" %}{% include t.html key="rules_permissions" %}{% elsif type == "conditions" %}{% include t.html key="rules_conditions" %}{% else %}{% include t.html key="rules_limitations" %}{% endif %} <dl> {% assign rules = site.data.rules[type] | sort: "label" %} {% for rule_obj in rules %} {% assign req = rule_obj.tag %} - <dt id="{{ req }}">{{ rule_obj.label }}</dt> + {% assign lrule = loc_rules[type][req] %} + <dt id="{{ req }}">{{ lrule.label | default: rule_obj.label }}</dt> <dd class="license-{{ type }}"> {% if req contains "--" %} {% assign lite = " lite" %} @@ -88,7 +91,7 @@ If you're here to choose a license, **[start from the home page](/)** to see a f <span class="{{ lite | strip }}"> <span class="license-marker {{ req }}">{% if type == "permissions" %}✓{% elsif type == "conditions" %}ⓘ{% else %}✕{% endif %}</span> </span> - {{ rule_obj.description }} + {{ lrule.description | default: rule_obj.description }} </dd> {% endfor %} </dl> diff --git a/assets/css/application.scss b/assets/css/application.scss index 11df9809e..b2cb7a798 100644 --- a/assets/css/application.scss +++ b/assets/css/application.scss @@ -145,6 +145,9 @@ strong { .home h1 { font-size: 3.75rem; + /* Drop below the floated language selector so the home title stays full-width + and centered (the selector sits above it, top-right) instead of being crowded. */ + clear: both; } .home h2 { @@ -583,4 +586,205 @@ strong { } +/* Top bar: breadcrumb on the leading side, the language cluster (suggestion + + selector) on the trailing side, all vertically centered on one row. */ +.topbar { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 6px 12px; + margin-bottom: 12px; +} + +.topbar > ol { margin: 0; } + +/* The cluster sits at the trailing edge (right in LTR, left in RTL) and keeps the + suggestion and the selector on a single, vertically centered row, so the + suggestion arrow lines up with the middle of the selector button. */ +.lang-cluster { + margin-inline-start: auto; + display: flex; + align-items: center; + gap: 8px; +} + +/* Language selector — native <details> dropdown (works without JavaScript) */ +.language-selector { + position: relative; + font-size: 0.75rem; +} + +.language-selector > summary { + list-style: none; + cursor: pointer; + display: inline-flex; + align-items: center; + gap: 5px; + padding: 4px 8px; + border: 1px solid #ccc; + border-radius: 3px; + background: #fff; + color: #444; + user-select: none; +} + +.language-selector > summary::-webkit-details-marker { display: none; } +.language-selector > summary::marker { content: ""; } + +.language-selector-icon svg { + display: block; + width: 16px; + height: 16px; +} + +.language-selector-caret { font-size: 0.7rem; } + +.language-menu { + position: absolute; + right: 0; + margin-top: 4px; + min-width: 170px; + max-height: 60vh; + overflow-y: auto; + background: #fff; + border: 1px solid #ccc; + border-radius: 3px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18); + z-index: 1000003; + padding: 4px 0; +} + +.language-menu li { + display: block; + margin: 0; +} + +.language-menu a { + display: flex; + justify-content: space-between; + gap: 16px; + padding: 6px 12px; + color: #444; + font-weight: normal; + white-space: nowrap; +} + +.language-menu a:hover, +.language-menu a:focus { + background: #f0f0f0; + text-decoration: none; +} + +.language-menu a[aria-current="true"] { font-weight: bold; } +.language-menu .checkmark { color: #149ad4; } + +/* Language suggestion: a plain blue "switch to <lang>" text link shown beside the + selector by assets/js/i18n.js, followed by an arrow pointing at the selector, + when the browser's preferred language differs from the displayed one and no + choice has been stored yet. Floats just to the left of the selector (same row). */ +.language-suggestion { + display: flex; + align-items: center; + gap: 4px; + font-size: 0.75rem; + white-space: nowrap; +} + +/* The class rule above outweighs the [hidden] UA rule, so the empty placeholder + would show before the script fills it; keep it hidden until then. */ +.language-suggestion[hidden] { display: none; } + +/* Mobile-first: show the short label by default and swap to the long sentence + once the viewport is wide enough. Both are in the link; CSS picks one. */ +.language-suggestion-long { display: none; } + +@media (min-width: 48rem) { + .language-suggestion-short { display: none; } + .language-suggestion-long { display: inline; } +} + +/* Site links are bold by default, so bolding the language name alone would not + stand out. Drop the bold on this link only (without touching other links) and + keep just the language name bold, in the link colour, for contrast. */ +.language-suggestion-link { font-weight: normal; } +.language-suggestion-link strong { color: inherit; font-weight: bold; } + +/* The link inherits the site's blue, hover-underlined link style. The arrow is a + separate element (outside the link) so the underline stays under the text only. + Its direction follows the page: → in LTR, ← in RTL (selector on the left). */ +.language-suggestion-arrow { + color: #149ad4; + font-weight: bold; +} + +.language-suggestion-arrow::after { content: "→"; } +[dir="rtl"] .language-suggestion-arrow::after { content: "←"; } + +@media (prefers-color-scheme: dark) { + .language-selector > summary { + background: #2a2a2a; + border-color: #555; + color: #dadada; + } + + .language-menu { + background: #2a2a2a; + border-color: #555; + } + + .language-menu a { + color: #dadada; + } + + .language-menu a:hover, + .language-menu a:focus { + background: #3a3a3a; + } +} + +/* Right-to-left languages (e.g. Arabic): mirror the floated layout. The default + layout uses physical floats/margins, so flip the main structural pieces here. */ +[dir="rtl"] { + text-align: right; +} + +[dir="rtl"] .sidebar { float: left; } +[dir="rtl"] .license-body { float: right; } +[dir="rtl"] .license-overview-heading, +[dir="rtl"] .license-details { float: right; } +[dir="rtl"] .license-details { padding-left: 0; padding-right: 20px; } + +[dir="rtl"] .triptych li { float: right; margin-left: 0; margin-right: 27px; } +[dir="rtl"] .triptych li:first-child { margin-right: 0; } + +[dir="rtl"] .site-footer nav { float: left; } +[dir="rtl"] .site-footer p { float: right; } +[dir="rtl"] .site-footer nav a { margin-left: 0; margin-right: 20px; } +[dir="rtl"] .with-love { float: left; clear: left; } + +[dir="rtl"] .language-menu { right: auto; left: 0; } + +[dir="rtl"] th, +[dir="rtl"] td { text-align: right; } + +[dir="rtl"] .license-rules li { + padding-left: 0; + padding-right: 18px; + margin-right: 0; + margin-left: 15px; +} +[dir="rtl"] .license-rules li .license-marker { left: auto; right: 0; } +[dir="rtl"] .bullets > li { margin-left: 0; margin-right: 2em; } +[dir="rtl"] .source-marker { margin-right: 0; margin-left: 4px; } + +[dir="rtl"] .home { text-align: center; } + +/* English / code / legal text stays left-to-right inside an RTL page. */ +[dir="rtl"] #license-text, +[dir="rtl"] pre, +[dir="rtl"] code { + direction: ltr; + text-align: left; +} + {% include css/responsive.css %} diff --git a/assets/js/app.js b/assets/js/app.js index e8706dde1..548668eda 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -40,21 +40,30 @@ class Choosealicense { // Init tooltip action initTooltips() { const annotations = window.annotations || {}; + // Localized, reorderable tooltip template (see _data/i18n/<lang>/ui.yml). + // Falls back to the English word order if the page didn't provide them. + const format = window.tooltipFormat || '%label% %category%: %description%'; + const categories = window.tooltipCategory || {}; Object.entries(annotations).forEach(([ruletype, rules]) => { - rules.forEach((rule) => { - const tooltipAttr = TOOLTIP_ATTRIBUTES_BY_RULE[ruletype]; - if (!tooltipAttr) return; + const tooltipAttr = TOOLTIP_ATTRIBUTES_BY_RULE[ruletype]; + if (!tooltipAttr) return; + + const category = categories[ruletype] || tooltipAttr.heading.toLowerCase(); + rules.forEach((rule) => { const elements = Array.from( document.querySelectorAll(`.license-${ruletype} .${rule.tag}`) ).filter((el) => !el.closest(`dd.license-${ruletype}`)); + // Function replacers avoid `$` being treated as a special pattern. + const ariaLabel = format + .replace('%category%', () => category) + .replace('%label%', () => rule.label) + .replace('%description%', () => rule.description); + elements.forEach((el) => { - el.setAttribute( - 'aria-label', - `${rule.label} ${tooltipAttr.heading.toLowerCase()}: ${rule.description}` - ); + el.setAttribute('aria-label', ariaLabel); el.classList.add(...TOOLTIP_CLASSES, tooltipAttr.color); }); }); @@ -82,7 +91,7 @@ class Choosealicense { this.copyText(textToCopy) .then(() => { - button.textContent = 'Copied!'; + button.textContent = button.dataset.copiedLabel || 'Copied!'; }) .catch(() => { // If copying fails, leave the prompt unchanged. diff --git a/assets/js/i18n.js b/assets/js/i18n.js new file mode 100644 index 000000000..f00cd7b05 --- /dev/null +++ b/assets/js/i18n.js @@ -0,0 +1,185 @@ +// Progressive language help. The site is fully usable without this file: the +// language selector is plain links and every page exists at its own URL. On top +// of that, this script: +// 1. honours an explicit prior choice (stored when the visitor uses the +// selector) by sending them to that language's URL, and +// 2. when there is no stored choice and the browser's preferred available +// language differs from the one shown, surfaces a visible, clickable +// suggestion next to the language selector (never an automatic redirect, so +// it stays friendly to users and search-engine crawlers alike). +// +// Language URLs are read from the <link rel="alternate" hreflang> tags already +// in the page, so this file needs no list of pages. +(function () { + 'use strict'; + + var cfg = window.choosealicenseI18n; + if (!cfg || !cfg.languages) { + return; + } + + var STORAGE_KEY = 'preferredLanguage'; + + function storage() { + try { + return window.localStorage; + } catch (e) { + return null; + } + } + + function getStored() { + var s = storage(); + if (!s) { + return null; + } + try { + return s.getItem(STORAGE_KEY); + } catch (e) { + return null; + } + } + + function setStored(lang) { + var s = storage(); + if (!s) { + return; + } + try { + s.setItem(STORAGE_KEY, lang); + } catch (e) { + // Ignore storage failures (private mode, quota, etc.). + } + } + + // Map of language code -> same-origin path, from the hreflang alternates. + function alternates() { + var map = {}; + var links = document.querySelectorAll('link[rel="alternate"][hreflang]'); + for (var i = 0; i < links.length; i++) { + var hreflang = links[i].getAttribute('hreflang'); + if (!hreflang || hreflang === 'x-default') { + continue; + } + try { + var url = new URL(links[i].href, window.location.origin); + map[hreflang] = url.pathname + url.search + url.hash; + } catch (e) { + // Skip malformed URLs. + } + } + return map; + } + + function detectFromBrowser() { + var langs = navigator.languages || (navigator.language ? [navigator.language] : []); + for (var i = 0; i < langs.length; i++) { + var base = String(langs[i]).toLowerCase().split('-')[0]; + if (cfg.languages[base]) { + return base; + } + } + return null; + } + + // Remember the visitor's choice when they use the language selector. + function wireSelector() { + var links = document.querySelectorAll('.language-selector a[hreflang]'); + for (var i = 0; i < links.length; i++) { + links[i].addEventListener('click', function () { + setStored(this.getAttribute('hreflang')); + }); + } + } + + // Render a string into el using a tiny **bold** mini-markup: text wrapped in + // double asterisks becomes <strong>. This lets each translation bold its own + // language name (the word differs and even its position differs per language) + // without the script having to guess where the name sits in the sentence. + function renderInto(el, template) { + var parts = String(template == null ? '' : template).split('**'); + for (var i = 0; i < parts.length; i++) { + if (!parts[i]) { + continue; + } + if (i % 2 === 1) { + var strong = document.createElement('strong'); + strong.textContent = parts[i]; + el.appendChild(strong); + } else { + el.appendChild(document.createTextNode(parts[i])); + } + } + } + + // Surface a visible, clickable suggestion beside the language selector: a plain + // blue text link plus a separate arrow pointing at the selector. The arrow is + // kept out of the link so the hover underline stays under the text only; its + // direction (→ / ←) is set in CSS so it follows the page direction (LTR/RTL). + // Both a short and a long label are rendered; CSS shows whichever fits the + // viewport (mobile-first: short by default, long once there is room). + function showSuggestion(lang, path) { + var container = document.querySelector('.language-suggestion'); + if (!container) { + return; + } + var strings = cfg.languages[lang] || {}; + + var link = document.createElement('a'); + link.className = 'language-suggestion-link'; + link.href = path; + link.setAttribute('hreflang', lang); + link.setAttribute('lang', lang); + link.setAttribute('rel', 'alternate'); + + var shortLabel = document.createElement('span'); + shortLabel.className = 'language-suggestion-short'; + renderInto(shortLabel, strings.switch || strings.suggest || lang); + link.appendChild(shortLabel); + + var longLabel = document.createElement('span'); + longLabel.className = 'language-suggestion-long'; + renderInto(longLabel, strings.suggest || strings.switch || lang); + link.appendChild(longLabel); + + link.addEventListener('click', function () { + setStored(lang); + }); + + var arrow = document.createElement('span'); + arrow.className = 'language-suggestion-arrow'; + arrow.setAttribute('aria-hidden', 'true'); + + container.appendChild(link); + container.appendChild(arrow); + container.hidden = false; + } + + function run() { + wireSelector(); + + var alts = alternates(); + var stored = getStored(); + + // An explicit prior choice wins: honour it (and don't suggest anything). + if (stored) { + if (cfg.languages[stored] && stored !== cfg.current && alts[stored]) { + window.location.replace(alts[stored]); + } + return; + } + + // No stored choice: if the browser's preferred available language differs + // from the one shown, suggest it next to the selector. + var detected = detectFromBrowser(); + if (detected && detected !== cfg.current && alts[detected]) { + showSuggestion(detected, alts[detected]); + } + } + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', run); + } else { + run(); + } +})(); diff --git a/community.md b/community.md index adb632b2b..0cd90db53 100644 --- a/community.md +++ b/community.md @@ -4,12 +4,11 @@ permalink: /community/ redirect_from: /existing/ title: Existing projects and communities --- +If you’re contributing to or extending an existing project, it’s almost always easiest to continue using that project’s license. To find its license, look for a file called `LICENSE` or `COPYING`, and skim the project’s `README`. If you can’t find a license, [ask the maintainers](/no-permission/#for-users). -If you're contributing to or extending an existing project, it's almost always easiest to continue using that project's license. To find its license, look for a file called `LICENSE` or `COPYING`, and skim the project's `README`. If you can't find a license, [ask the maintainers](/no-permission/#for-users). +Depending on the original project’s license, using the same license might be a requirement, not just the easiest thing to do. (See the "same license" condition of [some licenses](/licenses/).) -Depending on the original project's license, using the same license might be a requirement, not just the easiest thing to do. (See the "same license" condition of [some licenses](/licenses/).) - -Some communities have strong preferences for particular licenses. If you want to participate in one of these, it will be easier to use their preferred license, even if you're starting a brand new project with no existing dependencies. Some examples include: +Some communities have strong preferences for particular licenses. If you want to participate in one of these, it will be easier to use their preferred license, even if you’re starting a brand new project with no existing dependencies. Some examples include: {: .bullets} @@ -22,4 +21,4 @@ Some communities have strong preferences for particular licenses. If you want to * [WordPress](https://wordpress.org/about/license/) plugins and themes must be [GNU GPLv2](/licenses/gpl-2.0/) (or later) * [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) extensions and templates must be [GNU GPLv2](/licenses/gpl-2.0/) for the PHP code. -Communities come in all shapes and sizes, and more than one community might be pertinent (e.g., keep in mind [your company](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) if you work for one). The examples above are *very* well established. If the community you're building a project for doesn't have set-in-stone licensing traditions, or you don't see your project as part of any particular community, that's fine: [make your own choice of an open source license](/). +Communities come in all shapes and sizes, and more than one community might be pertinent (e.g., keep in mind [your company](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) if you work for one). The examples above are *very* well established. If the community you’re building a project for doesn’t have set-in-stone licensing traditions, or you don’t see your project as part of any particular community, that’s fine: [make your own choice of an open source license](/). diff --git a/i18n/README.md b/i18n/README.md new file mode 100644 index 000000000..f826c163c --- /dev/null +++ b/i18n/README.md @@ -0,0 +1,12 @@ +# Translations live in two trees + +To work with Jekyll (which separates *data* from rendered *pages*), each language's +translation is split across two mirrored trees: + +- `_data/i18n/<lang>/` — interface strings, rule labels and license summaries + (keyed YAML: `ui.yml`, `rules.yml`, `licenses.yml`). +- `i18n/<lang>/` — the translated prose pages (About, Community, No License, + Non-Software), one Markdown file per page. + +English is the single source of truth; anything untranslated falls back to English. +See `TRANSLATING.md` and `WEBLATE.md` at the repository root. diff --git a/i18n/ar/about.md b/i18n/ar/about.md new file mode 100644 index 000000000..f7e8562b5 --- /dev/null +++ b/i18n/ar/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: ar +title: "ما هذا الموقع؟" +--- +يريد GitHub مساعدة المطوّرين على اختيار ترخيص مفتوح المصدر لشيفرتهم المصدرية. + +إذا كنت تعرف بالفعل ما تفعله ولديك ترخيص تفضّل استخدامه، فهذا رائع! لسنا هنا لتغيير رأيك. لكن إذا حيّرك العدد الكبير من الخيارات، فربما يمكننا مساعدتك. + +## ليست شاملة + +هذا الموقع ليس دليلًا شاملًا للتراخيص مفتوحة المصدر. فالغالبية العظمى من المشاريع ستُخدَم على الأرجح بأحد الخيارات الثلاثة المعروضة في [الصفحة الرئيسية](/) — اختيار الترخيص [المفضّل](/community/) لدى مشاريع شبيهة بمشروعك، أو أشهر ترخيص متساهل ([MIT](/licenses/mit/))، أو أشهر ترخيص حقوق متروكة ([GNU GPLv3](/licenses/gpl-3.0/)). وتحسّبًا لاحتياجات خاصة لا تغطّيها هذه الخيارات، نعرض أيضًا [بضعة تراخيص أخرى للنظر فيها](/licenses/) ولدينا صفحة عن [تراخيص المشاريع غير البرمجية](/non-software/). + +راجع [الملحق](/appendix/) لجدول بكل ترخيص مفهرس في [مستودع choosealicense.com](https://github.com/github/choosealicense.com)، والروابط أدناه لـ*مزيد* من التراخيص التي **لا تحتاج** إلى معرفتها لتظل قادرًا على اختيار ترخيص ممتاز لمشروعك. + +### مصادر إضافية + +{: .bullets} + +* الأسئلة الشائعة لمبادرة المصدر المفتوح حول [أيُّ ترخيص مفتوح المصدر ينبغي أن أختاره لإصدار برمجياتي؟](https://opensource.org/faq#which-license) +* [نصيحة مؤسسة البرمجيات الحرة حول كيفية اختيار ترخيص](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla)، أداة تفاعلية لاختيار الترخيص من المفوضية الأوروبية +* [The Legal Side of Open Source](https://opensource.guide/legal/)، دليل مصدر مفتوح يغطّي الترخيص والمسائل المتصلة به + +## ساعدنا على تحسينه + +لا يقتصر choosealicense.com على المصدر المفتوح؛ فالموقع نفسه مفتوح المصدر كذلك. أرأيت شيئًا تعتقد أنه يمكن تحسينه؟ لا تتردد في [عمل نسخة معدّلة (fork) للمشروع](https://github.com/github/choosealicense.com) على GitHub وتقديم طلب سحب (pull request). نرحّب بتحسيناتك. + +## إخلاء مسؤولية + +نحن لسنا محامين. حسنًا، معظمنا على أي حال. ليس هدف هذا الموقع تقديم استشارة قانونية. هدفه أن يوفّر نقطة انطلاق تساعدك على اتخاذ قرار مستنير، بتقديم معلومات عن التراخيص الشائعة مفتوحة المصدر بأسلوب مبسّط. إذا كانت لديك أي أسئلة بخصوص أفضل ترخيص لشيفرتك أو أي مسائل قانونية أخرى متعلقة بها، فمن مسؤوليتك إجراء مزيد من البحث أو استشارة مختص. diff --git a/i18n/ar/community.md b/i18n/ar/community.md new file mode 100644 index 000000000..3a30bf5e5 --- /dev/null +++ b/i18n/ar/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: ar +title: "المشاريع والمجتمعات القائمة" +--- +إذا كنت تساهم في مشروع قائم أو توسّعه، فإن الأسهل دائمًا تقريبًا الاستمرار في استخدام ترخيص ذلك المشروع. للعثور على ترخيصه، ابحث عن ملف باسم `LICENSE` أو `COPYING`، وتصفّح ملف `README` للمشروع. وإن لم تجد ترخيصًا، [اسأل القائمين عليه](/no-permission/#for-users). + +تبعًا لترخيص المشروع الأصلي، قد يكون استخدام الترخيص نفسه متطلَّبًا لا مجرد الحل الأسهل. (راجع شرط «الترخيص نفسه» في [بعض التراخيص](/licenses/).) + +لدى بعض المجتمعات تفضيلات قوية لتراخيص بعينها. وإذا أردت المشاركة في أحدها، فسيكون من الأسهل استخدام ترخيصها المفضّل، حتى لو كنت تبدأ مشروعًا جديدًا تمامًا بلا تبعيات قائمة. ومن الأمثلة على ذلك: + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/) تتطلب [Apache License 2.0](/licenses/apache-2.0/) +* [Cloud Native Computing Foundation](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy) تتطلب [Apache License 2.0](/licenses/apache-2.0/) +* [GNU](https://www.gnu.org/licenses/license-recommendations.html) توصي بـ[GNU GPLv3](/licenses/gpl-3.0/) لمعظم البرامج +* [حزم npm](https://libraries.io/search?platforms=npm) تستخدم على نحو ساحق ترخيص [MIT](/licenses/mit/) أو ترخيص [ISC](/licenses/isc) المماثل جدًا +* [OpenBSD](https://www.openbsd.org/policy.html) يفضّل [ترخيص ISC](/licenses/isc/) +* صناديق [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) مرخّصة على نحو ساحق بـ[MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/) +* إضافات وقوالب [WordPress](https://wordpress.org/about/license/) يجب أن تكون بترخيص [GNU GPLv2](/licenses/gpl-2.0/) (أو أحدث) +* إضافات وقوالب [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) يجب أن تكون بترخيص [GNU GPLv2](/licenses/gpl-2.0/) لشيفرة PHP. + +تأتي المجتمعات بأشكال وأحجام متنوّعة، وقد يكون أكثر من مجتمع وثيق الصلة (مثلًا، ضع في حسبانك [شركتك](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) إن كنت تعمل لدى واحدة). الأمثلة أعلاه راسخة *جدًا*. وإذا لم يكن للمجتمع الذي تبني له مشروعًا تقاليد ترخيص ثابتة، أو إن كنت لا ترى مشروعك جزءًا من أي مجتمع بعينه، فلا بأس بذلك: [اتخذ قرارك الخاص باختيار ترخيص مفتوح المصدر](/). diff --git a/i18n/ar/no-permission.md b/i18n/ar/no-permission.md new file mode 100644 index 000000000..5019868a8 --- /dev/null +++ b/i18n/ar/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: ar +title: "بلا ترخيص" +description: "لست ملزمًا باختيار ترخيص، ومن حقك ألا تضمّن أي ترخيص مع شيفرتك أو مشروعك. لكن لاحظ أن التخلي عن تراخيص المصادر المفتوحة لا يعني التخلي عن قانون حقوق التأليف والنشر." +--- +عندما تنشئ عملًا إبداعيًا (وهو يشمل الشيفرة)، يكون العمل بحكم الأصل خاضعًا لحقوق نشر حصرية. وما لم تُضمّن ترخيصًا ينصّ على خلاف ذلك، لا يستطيع أحد غيرك نسخ عملك أو توزيعه أو تعديله دون التعرّض لطلبات الإزالة أو الابتزاز أو التقاضي. وحالما يكون للعمل مساهمون آخرون (كلٌّ منهم صاحب حقوق نشر)، يبدأ «لا أحد» في تضمينك أنت. + +حتى في غياب ملف ترخيص، قد تمنح بعض الحقوق في حالات تنشر فيها شيفرتك المصدرية على موقع يشترط قبول شروط الخدمة. فمثلًا، إذا نشرت شيفرتك المصدرية في مستودع عام على GitHub، فقد قبلت [شروط الخدمة](https://help.github.com/articles/github-terms-of-service)، التي تسمح بموجبها للآخرين بعرض مستودعك وعمل نسخة معدّلة (fork) منه. وقد لا يحتاج الآخرون إلى إذنك إذا انطبقت على وضعهم الخاص [قيود واستثناءات حقوق النشر](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright). ولا شروط الموقع ولا قيود حقوق النشر الخاصة بولاية قضائية تكفي لأنواع التعاون التي يسعى إليها الناس عادةً على مستضيف شيفرة عام، مثل التجريب والتعديل والمشاركة التي يعزّزها الترخيص المفتوح المصدر. + +لا يلزمك فعل أي شيء لكي *لا* تقدّم ترخيصًا. ومع ذلك، قد ترغب في إضافة إشعار حقوق نشر وبيان بأنك لا تقدّم أي ترخيص في مكان بارز (مثل ملف README الخاص بمشروعك) حتى لا يفترض [المستخدمون](#for-users) أنك أغفلت ذلك سهوًا. وإذا كنت ستقبل مساهمات الآخرين في مشروعك غير المرخّص، فقد ترغب في استكشاف إضافة اتفاقية مساهم إلى مشروعك بمساعدة محاميك حتى تحتفظ بإذن حقوق النشر من المساهمين، حتى وإن كنت لا تمنح المثل. + +قد لا يكون منع استخدام شيفرتك هو ما تقصده بـ«بلا ترخيص». فالترخيص [المفتوح المصدر](/) يتيح إعادة استخدام شيفرتك مع الاحتفاظ بحقوق النشر. وإذا كان هدفك التخلّي تمامًا عن قيود حقوق النشر، فجرّب بدلًا من ذلك [إهداءً إلى الملك العام](/licenses/#unlicense). + +## للمستخدمين +{: #for-users } + +إذا عثرت على برمجيات بلا ترخيص، فهذا يعني عمومًا أنه ليس لديك إذن من منشئي البرمجيات باستخدامها أو تعديلها أو مشاركتها. ورغم أن مستضيف شيفرة مثل GitHub قد يتيح لك عرض الشيفرة وعمل نسخة معدّلة (fork) منها، فإن هذا لا يعني أنه مسموح لك باستخدام البرمجيات أو تعديلها أو مشاركتها لأي غرض. + +خياراتك: + +{: .bullets} + +- **اطلب من القائمين عليه بلطف إضافة ترخيص.** ما لم تتضمّن البرمجيات مؤشرات قوية على خلاف ذلك، فإن غياب الترخيص على الأرجح سهو. وإذا كانت البرمجيات مستضافة على موقع مثل GitHub، فافتح مشكلة (issue) تطلب فيها ترخيصًا وأرفق رابطًا لهذا الموقع. وإذا كنت جريئًا وكان واضحًا إلى حدٍّ ما أيُّ ترخيص هو الأنسب، فافتح طلب سحب (pull request) لإضافة ترخيص — راجع «اقترح هذا الترخيص» في الشريط الجانبي لصفحة كل ترخيص على هذا الموقع (مثل [MIT](/licenses/mit/#suggest-this-license)). +- **لا تستخدم البرمجيات.** ابحث عن بديل مرخّص بترخيص مفتوح المصدر أو أنشئه. +- **تفاوض على ترخيص خاص.** استعن بمحاميك. diff --git a/i18n/ar/non-software.md b/i18n/ar/non-software.md new file mode 100644 index 000000000..7592e9259 --- /dev/null +++ b/i18n/ar/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: ar +title: "تراخيص لغير البرمجيات" +--- +يمكن استخدام تراخيص البرمجيات مفتوحة المصدر أيضًا للأعمال غير البرمجية، وكثيرًا ما تكون الخيار الأفضل، خصوصًا عندما يمكن تحرير الأعمال المعنية وإصدار نسخ منها كمصدر. [اختر ترخيصًا مفتوح المصدر](/). + +### البيانات والوسائط وغيرها +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/) و[CC-BY-4.0](/licenses/cc-by-4.0/) و[CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) تراخيص [مفتوحة](https://opendefinition.org) تُستخدم لمواد غير برمجية تتراوح من مجموعات البيانات إلى مقاطع الفيديو. لاحظ أن المشاع الإبداعي [لا يوصي باستخدام تراخيصه للبرمجيات](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software) أو العتاد. + +### التوثيق + +أي ترخيص برمجيات مفتوح المصدر أو ترخيص مفتوح للوسائط (انظر [أعلاه](#data-media-etc)) ينطبق أيضًا على توثيق البرمجيات. وإذا استخدمت تراخيص مختلفة لبرمجياتك وتوثيقها، فاحرص على توضيح أن أمثلة الشيفرة المصدرية في التوثيق مرخّصة أيضًا بموجب ترخيص البرمجيات. + +### الخطوط + +يُبقي [SIL Open Font License 1.1](/licenses/ofl-1.1/) الخطوط مفتوحة، بما يتيح استخدامها بحرية في أعمال أخرى. + +### العتاد + +تصاميم [العتاد مفتوح المصدر](https://oshwa.org/resources/open-source-hardware-definition/) التي تتراوح من الأثاث إلى [مصفوفات البوابات القابلة للبرمجة (FPGA)](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/) تغطّيها تراخيص CERN Open Hardware: [CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/) (متساهلة) و[CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/) (تبادلية ضعيفة) و[CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/) (تبادلية قوية). + +### المشاريع المختلطة + +إذا كان مشروعك يضم مزيجًا من أنواع مختلفة من المواد، فيمكنك تضمين عدة تراخيص، ما دمت تحدّد بوضوح أيّ ترخيص ينطبق على كل جزء من المشروع. انظر [إشعار الترخيص الخاص بهذا الموقع](https://github.com/github/choosealicense.com#license) كمثال. diff --git a/i18n/es/about.md b/i18n/es/about.md new file mode 100644 index 000000000..9868a2ba5 --- /dev/null +++ b/i18n/es/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: es +title: "¿De qué va esto?" +--- +GitHub quiere ayudar a las personas desarrolladoras a elegir una licencia de código abierto para su código fuente. + +Si ya sabes lo que haces y tienes una licencia que prefieres usar, ¡estupendo! No estamos aquí para hacerte cambiar de idea. Pero si el gran número de opciones te abruma, quizá podamos ayudarte. + +## No es exhaustivo + +Este sitio no es un directorio exhaustivo de las licencias de código abierto. A la gran mayoría de los proyectos probablemente les servirá bien una de las tres opciones destacadas en la [página de inicio](/): elegir la licencia [preferida](/community/) por proyectos similares al tuyo, o la licencia permisiva más popular ([MIT](/licenses/mit/)), o la licencia copyleft más popular ([GNU GPLv3](/licenses/gpl-3.0/)). Por si tienes necesidades concretas no cubiertas por estas, también destacamos [algunas otras licencias que considerar](/licenses/) y tenemos una página sobre [licencias para proyectos no informáticos](/non-software/). + +Consulta nuestro [apéndice](/appendix/) para ver una tabla de todas las licencias catalogadas en el [repositorio de choosealicense.com](https://github.com/github/choosealicense.com) y los enlaces de abajo para *aún más* licencias que **no necesitas** conocer para elegir igualmente una licencia excelente para tu proyecto. + +### Recursos adicionales + +{: .bullets} + +* La FAQ de la Open Source Initiative: [¿Qué licencia de código abierto debería elegir para publicar mi software?](https://opensource.org/faq#which-license) +* Los [consejos de la Free Software Foundation sobre cómo elegir una licencia](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla), un selector de licencias interactivo de la Comisión Europea +* [The Legal Side of Open Source](https://opensource.guide/legal/), una Open Source Guide que cubre las licencias y cuestiones relacionadas + +## Ayúdanos a mejorarlo + +Choosealicense.com no trata solo del código abierto; el propio sitio también es código abierto. ¿Ves algo que crees que podría hacerse mejor? No dudes en [hacer un fork del proyecto](https://github.com/github/choosealicense.com) en GitHub y enviar una pull request. Tus mejoras son bienvenidas. + +## Aviso legal + +No somos abogados. Bueno, la mayoría de nosotros. El objetivo de este sitio no es ofrecer asesoramiento jurídico. El objetivo de este sitio es ofrecer un punto de partida que te ayude a tomar una decisión informada, presentando de forma simplificada información sobre las licencias de código abierto populares. Si tienes alguna duda sobre cuál es la mejor licencia para tu código, o sobre cualquier otra cuestión jurídica relacionada con él, es tu responsabilidad investigar más o consultar a un profesional. diff --git a/i18n/es/community.md b/i18n/es/community.md new file mode 100644 index 000000000..2d005ec8e --- /dev/null +++ b/i18n/es/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: es +title: "Proyectos y comunidades existentes" +--- +Si contribuyes a un proyecto existente o lo amplías, casi siempre es más fácil seguir usando la licencia de ese proyecto. Para encontrarla, busca un archivo llamado `LICENSE` o `COPYING`, y echa un vistazo al `README` del proyecto. Si no encuentras una licencia, [pregunta a los mantenedores](/no-permission/#for-users). + +Según la licencia del proyecto original, usar la misma licencia puede ser un requisito, y no solo lo más fácil. (Consulta la condición «misma licencia» de [algunas licencias](/licenses/).) + +Algunas comunidades tienen fuertes preferencias por licencias concretas. Si quieres participar en alguna de ellas, será más fácil usar su licencia preferida, aunque empieces un proyecto totalmente nuevo sin dependencias existentes. Algunos ejemplos: + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/) exige la [Apache License 2.0](/licenses/apache-2.0/) +* La [Cloud Native Computing Foundation](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy) exige la [Apache License 2.0](/licenses/apache-2.0/) +* [GNU](https://www.gnu.org/licenses/license-recommendations.html) recomienda la [GNU GPLv3](/licenses/gpl-3.0/) para la mayoría de los programas +* Los [paquetes de npm](https://libraries.io/search?platforms=npm) usan de forma abrumadora las licencias [MIT](/licenses/mit/) o la muy similar [ISC](/licenses/isc) +* [OpenBSD](https://www.openbsd.org/policy.html) prefiere la [licencia ISC](/licenses/isc/) +* Los crates de [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) se publican de forma abrumadora bajo [MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/) +* Los plugins y temas de [WordPress](https://wordpress.org/about/license/) deben ser [GNU GPLv2](/licenses/gpl-2.0/) (o posterior) +* Las extensiones y plantillas de [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) deben ser [GNU GPLv2](/licenses/gpl-2.0/) para el código PHP. + +Las comunidades son de todas las formas y tamaños, y más de una comunidad podría ser pertinente (por ejemplo, ten en cuenta a [tu empresa](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) si trabajas para una). Los ejemplos anteriores están *muy* asentados. Si la comunidad para la que construyes un proyecto no tiene tradiciones de licencia grabadas en piedra, o si no consideras que tu proyecto forme parte de ninguna comunidad en concreto, no pasa nada: [haz tu propia elección de una licencia de código abierto](/). diff --git a/i18n/es/no-permission.md b/i18n/es/no-permission.md new file mode 100644 index 000000000..84b19ee04 --- /dev/null +++ b/i18n/es/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: es +title: "Sin licencia" +description: "No tienes ninguna obligación de elegir una licencia y estás en tu derecho de no incluir ninguna con tu código o proyecto. Pero ten en cuenta que renunciar a las licencias de código abierto no significa renunciar a la ley de derechos de autor." +--- +Cuando creas una obra creativa (lo que incluye el código), la obra está por defecto bajo copyright exclusivo. A menos que incluyas una licencia que indique lo contrario, nadie más puede copiar, distribuir ni modificar tu obra sin arriesgarse a retiradas, requerimientos o litigios. Una vez que la obra tiene otros colaboradores (cada uno titular de copyright), ese «nadie» empieza a incluirte a ti. + +Incluso sin un archivo de licencia, puedes conceder algunos derechos en los casos en que publicas tu código fuente en un sitio que exige aceptar unas condiciones del servicio. Por ejemplo, si publicas tu código fuente en un repositorio público de GitHub, has aceptado las [Condiciones del servicio](https://help.github.com/articles/github-terms-of-service), por las que permites a otros ver y hacer fork de tu repositorio. Es posible que otras personas no necesiten tu permiso si las [limitaciones y excepciones al copyright](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright) se aplican a su situación particular. Ni las condiciones de un sitio ni las limitaciones del copyright propias de una jurisdicción bastan para el tipo de colaboración que la gente suele buscar en un servicio público de alojamiento de código, como la experimentación, la modificación y el intercambio que fomenta una licencia de código abierto. + +No tienes que hacer nada para *no* ofrecer una licencia. No obstante, quizá quieras añadir un aviso de copyright y una declaración de que no ofreces ninguna licencia en un lugar bien visible (por ejemplo, el README de tu proyecto) para que los [usuarios](#for-users) no den por hecho que se trata de un descuido. Si vas a aceptar las contribuciones de otros a tu proyecto sin licencia, quizá quieras estudiar, junto con tu abogado, la posibilidad de añadir a tu proyecto un acuerdo de colaboración para conservar el permiso de copyright de quienes contribuyen, aunque tú no concedas lo mismo. + +Prohibir el uso de tu código quizá no sea lo que pretendes con «sin licencia». Una [licencia de código abierto](/) permite reutilizar tu código conservando el copyright. Si tu objetivo es renunciar por completo a las restricciones del copyright, prueba en su lugar una [dedicación al dominio público](/licenses/#unlicense). + +## Para los usuarios +{: #for-users } + +Si encuentras un software que no tiene licencia, eso suele significar que no tienes permiso de sus creadores para usar, modificar o compartir el software. Aunque un servicio de alojamiento de código como GitHub te permita ver el código y hacer fork de él, esto no implica que tengas permiso para usar, modificar o compartir el software con cualquier fin. + +Tus opciones: + +{: .bullets} + +- **Pide amablemente a los mantenedores que añadan una licencia.** Salvo que el software incluya fuertes indicios de lo contrario, la ausencia de licencia es probablemente un descuido. Si el software está alojado en un sitio como GitHub, abre una incidencia solicitando una licencia e incluye un enlace a este sitio. Si eres valiente y resulta bastante evidente qué licencia es la más adecuada, abre una pull request para añadir una licencia: consulta «sugerir esta licencia» en la barra lateral de la página de cada licencia de este sitio (por ejemplo, [MIT](/licenses/mit/#suggest-this-license)). +- **No uses el software.** Busca o crea una alternativa que esté bajo una licencia de código abierto. +- **Negocia una licencia privada.** Lleva a tu abogado. diff --git a/i18n/es/non-software.md b/i18n/es/non-software.md new file mode 100644 index 000000000..31cbfc443 --- /dev/null +++ b/i18n/es/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: es +title: "Licencias para obras no informáticas" +--- +Las licencias de software de código abierto también pueden usarse para obras no informáticas y a menudo son la mejor opción, sobre todo cuando las obras en cuestión pueden editarse y versionarse como código fuente. [Elige una licencia de código abierto](/). + +### Datos, contenido multimedia, etc. +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/), [CC-BY-4.0](/licenses/cc-by-4.0/) y [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) son licencias [abiertas](https://opendefinition.org) usadas para material no informático que va desde conjuntos de datos hasta vídeos. Ten en cuenta que Creative Commons [no recomienda usar sus licencias para software](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software) ni para hardware. + +### Documentación + +Cualquier licencia de software de código abierto o licencia abierta para contenido multimedia (consulta [más arriba](#data-media-etc)) también es válida para la documentación de software. Si usas licencias distintas para tu software y su documentación, asegúrate de indicar que los ejemplos de código fuente de la documentación también están bajo la licencia del software. + +### Tipografías + +La [SIL Open Font License 1.1](/licenses/ofl-1.1/) mantiene abiertas las tipografías, permitiendo que se usen libremente en otras obras. + +### Hardware + +Los diseños de [hardware de código abierto](https://oshwa.org/resources/open-source-hardware-definition/), desde mobiliario hasta [FPGA](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/), están cubiertos por las licencias CERN Open Hardware: [CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/) (permisiva), [CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/) (débilmente recíproca) y [CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/) (fuertemente recíproca). + +### Proyectos mixtos + +Si tu proyecto contiene una mezcla de distintos tipos de material, puedes incluir varias licencias, siempre que indiques de forma explícita qué licencia se aplica a cada parte del proyecto. Consulta [el aviso de licencia de este sitio](https://github.com/github/choosealicense.com#license) como ejemplo. diff --git a/i18n/fr/about.md b/i18n/fr/about.md new file mode 100644 index 000000000..a9d636b50 --- /dev/null +++ b/i18n/fr/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: fr +title: "C’est quoi, au juste ?" +--- +GitHub souhaite aider les développeurs à choisir une licence open source pour leur code source. + +Si vous savez déjà ce que vous faites et avez une licence que vous préférez utiliser, c’est parfait ! Nous ne sommes pas là pour vous faire changer d’avis. Mais si le grand nombre de choix vous déconcerte, nous pouvons peut-être vous aider. + +## Liste non exhaustive + +Ce site n’est pas un répertoire exhaustif des licences open source. La grande majorité des projets seront probablement bien servis par l’une des trois options mises en avant sur la [page d’accueil](/) — choisir la licence [privilégiée](/community/) par des projets similaires au vôtre, ou la licence permissive la plus populaire ([MIT](/licenses/mit/)), ou la licence copyleft la plus populaire ([GNU GPLv3](/licenses/gpl-3.0/)). Au cas où vous auriez des besoins spécifiques non couverts par celles-ci, nous mettons aussi en avant [quelques autres licences à envisager](/licenses/) et proposons une page sur les [licences pour les projets non logiciels](/non-software/). + +Consultez notre [annexe](/appendix/) pour un tableau de toutes les licences cataloguées dans le [dépôt choosealicense.com](https://github.com/github/choosealicense.com), ainsi que les liens ci-dessous pour *encore plus* de licences que vous **n’avez pas besoin** de connaître pour autant choisir une excellente licence pour votre projet. + +### Ressources supplémentaires + +{: .bullets} + +* La FAQ de l’Open Source Initiative : [Sous quelle licence open source publier mon logiciel ?](https://opensource.org/faq#which-license) +* Les [conseils de la Free Software Foundation pour choisir une licence](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla), un sélecteur de licence interactif de la Commission européenne +* [The Legal Side of Open Source](https://opensource.guide/legal/), un guide Open Source couvrant les licences et les questions connexes + +## Aidez-nous à l’améliorer + +Choosealicense.com ne parle pas seulement d’open source : le site lui-même est open source. Vous voyez quelque chose qui pourrait être mieux fait ? N’hésitez pas à [forker le projet](https://github.com/github/choosealicense.com) sur GitHub et à proposer une pull request. Vos améliorations sont les bienvenues. + +## Avertissement + +Nous ne sommes pas juristes. Enfin, la plupart d’entre nous. L’objectif de ce site n’est pas de fournir des conseils juridiques. Son but est d’offrir un point de départ pour vous aider à faire un choix éclairé, en présentant de façon simplifiée des informations sur les licences open source populaires. Si vous avez des questions sur la meilleure licence pour votre code, ou sur toute autre question juridique le concernant, il vous appartient de poursuivre vos recherches ou de consulter un professionnel. diff --git a/i18n/fr/community.md b/i18n/fr/community.md new file mode 100644 index 000000000..e5cf0aa9d --- /dev/null +++ b/i18n/fr/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: fr +title: "Projets et communautés existants" +--- +Si vous contribuez à un projet existant ou si vous l’étendez, il est presque toujours plus simple de continuer à utiliser la licence de ce projet. Pour la trouver, cherchez un fichier nommé `LICENSE` ou `COPYING`, et parcourez le `README` du projet. Si vous ne trouvez pas de licence, [demandez aux mainteneurs](/no-permission/#for-users). + +Selon la licence du projet d’origine, utiliser la même licence peut être une obligation, et pas seulement la solution la plus simple. (Voir la condition « même licence » de [certaines licences](/licenses/).) + +Certaines communautés ont de fortes préférences pour des licences particulières. Si vous voulez participer à l’une d’elles, il sera plus simple d’utiliser sa licence privilégiée, même si vous démarrez un tout nouveau projet sans dépendance existante. En voici quelques exemples : + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/) impose l’[Apache License 2.0](/licenses/apache-2.0/) +* La [Cloud Native Computing Foundation](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy) impose l’[Apache License 2.0](/licenses/apache-2.0/) +* [GNU](https://www.gnu.org/licenses/license-recommendations.html) recommande la [GNU GPLv3](/licenses/gpl-3.0/) pour la plupart des programmes +* Les [paquets npm](https://libraries.io/search?platforms=npm) utilisent massivement la licence [MIT](/licenses/mit/) ou la très similaire [ISC](/licenses/isc) +* [OpenBSD](https://www.openbsd.org/policy.html) préfère la [licence ISC](/licenses/isc/) +* Les crates [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) sont massivement publiées sous [MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/) +* Les extensions et thèmes [WordPress](https://wordpress.org/about/license/) doivent être en [GNU GPLv2](/licenses/gpl-2.0/) (ou ultérieure) +* Les extensions et templates [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) doivent être en [GNU GPLv2](/licenses/gpl-2.0/) pour le code PHP. + +Les communautés sont de toutes formes et de toutes tailles, et plusieurs d’entre elles peuvent être pertinentes (par exemple, pensez à [votre entreprise](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) si vous en avez une). Les exemples ci-dessus sont *très* bien établis. Si la communauté pour laquelle vous construisez un projet n’a pas de traditions de licence gravées dans le marbre, ou si vous ne considérez pas votre projet comme faisant partie d’une communauté particulière, ce n’est pas grave : [faites votre propre choix de licence open source](/). diff --git a/i18n/fr/no-permission.md b/i18n/fr/no-permission.md new file mode 100644 index 000000000..ef9ca2ef2 --- /dev/null +++ b/i18n/fr/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: fr +title: "Aucune licence" +description: "Vous n'êtes nullement obligé de choisir une licence, et c'est votre droit de ne pas en inclure une avec votre code ou votre projet. Notez toutefois que renoncer aux licences open source ne signifie pas renoncer au droit d'auteur." +--- +Lorsque vous créez une œuvre de l’esprit (ce qui inclut le code), celle-ci est par défaut soumise au droit d’auteur exclusif. À moins d’inclure une licence stipulant le contraire, personne d’autre ne peut copier, distribuer ou modifier votre travail sans risquer des retraits, des mises en demeure ou des poursuites. Une fois que l’œuvre compte d’autres contributeurs (chacun titulaire de droits d’auteur), « personne » commence à vous inclure. + +Même en l’absence de fichier de licence, vous pouvez accorder certains droits lorsque vous publiez votre code source sur un site dont l’utilisation suppose l’acceptation de conditions de service. Par exemple, si vous publiez votre code source dans un dépôt public sur GitHub, vous avez accepté les [conditions de service](https://help.github.com/articles/github-terms-of-service), par lesquelles vous autorisez autrui à consulter et forker votre dépôt. D’autres personnes peuvent ne pas avoir besoin de votre permission si des [limitations et exceptions au droit d’auteur](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright) s’appliquent à leur situation particulière. Ni les conditions d’un site ni les limitations du droit d’auteur propres à une juridiction ne suffisent pour le type de collaboration que les gens recherchent habituellement sur un hébergeur de code public, comme l’expérimentation, la modification et le partage que favorise une licence open source. + +Vous n’avez rien à faire pour *ne pas* proposer de licence. Vous pouvez toutefois ajouter une mention de droit d’auteur et une déclaration indiquant que vous ne proposez aucune licence, à un endroit bien visible (par exemple le README de votre projet), afin que les [utilisateurs](#for-users) n’y voient pas un oubli. Si vous comptez accepter les contributions d’autrui à votre projet sans licence, vous pouvez envisager, avec votre juriste, d’ajouter un accord de contribution afin de conserver l’autorisation, au titre du droit d’auteur, des contributeurs, même si vous n’accordez pas la même chose. + +Interdire l’utilisation de votre code n’est peut-être pas ce que vous entendez par « aucune licence ». Une [licence open source](/) autorise la réutilisation de votre code tout en conservant le droit d’auteur. Si votre objectif est de renoncer totalement aux restrictions du droit d’auteur, essayez plutôt une [dédicace au domaine public](/licenses/#unlicense). + +## Pour les utilisateurs +{: #for-users } + +Si vous trouvez un logiciel dépourvu de licence, cela signifie généralement que vous n’avez aucune permission de ses créateurs pour l’utiliser, le modifier ou le partager. Même si un hébergeur de code comme GitHub vous permet d’en consulter et d’en forker le code, cela n’implique pas que vous soyez autorisé à utiliser, modifier ou partager le logiciel à quelque fin que ce soit. + +Vos options : + +{: .bullets} + +- **Demandez gentiment aux mainteneurs d’ajouter une licence.** Sauf indication contraire forte dans le logiciel, l’absence de licence est probablement un oubli. Si le logiciel est hébergé sur un site comme GitHub, ouvrez une issue demandant une licence et incluez un lien vers ce site. Si vous êtes audacieux et qu’il est assez évident quelle licence convient le mieux, ouvrez une pull request pour ajouter une licence – voir « suggérer cette licence » dans la barre latérale de la page de chaque licence de ce site (par exemple [MIT](/licenses/mit/#suggest-this-license)). +- **N’utilisez pas le logiciel.** Trouvez ou créez une alternative placée sous une licence open source. +- **Négociez une licence privée.** Faites appel à votre juriste. diff --git a/i18n/fr/non-software.md b/i18n/fr/non-software.md new file mode 100644 index 000000000..2d3bead4e --- /dev/null +++ b/i18n/fr/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: fr +title: "Licences pour œuvres non logicielles" +--- +Les licences de logiciels open source peuvent aussi servir pour des œuvres non logicielles et constituent souvent le meilleur choix, surtout lorsque les œuvres concernées peuvent être éditées et versionnées comme du code source. [Choisissez une licence open source](/). + +### Données, médias, etc. +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/), [CC-BY-4.0](/licenses/cc-by-4.0/) et [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) sont des licences [ouvertes](https://opendefinition.org) utilisées pour des contenus non logiciels, des jeux de données aux vidéos. Notez que Creative Commons [ne recommande pas l’usage de ses licences pour les logiciels](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software) ni pour le matériel. + +### Documentation + +Toute licence de logiciel open source ou licence ouverte pour les médias (voir [ci-dessus](#data-media-etc)) s’applique aussi à la documentation logicielle. Si vous utilisez des licences différentes pour votre logiciel et sa documentation, veillez à préciser que les exemples de code source figurant dans la documentation sont également placés sous la licence du logiciel. + +### Polices + +La [SIL Open Font License 1.1](/licenses/ofl-1.1/) garde les polices ouvertes, en permettant leur libre utilisation dans d’autres œuvres. + +### Matériel + +Les conceptions de [matériel open source](https://oshwa.org/resources/open-source-hardware-definition/), du mobilier aux [FPGA](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/), sont couvertes par les licences CERN Open Hardware : [CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/) (permissive), [CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/) (faiblement réciproque) et [CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/) (fortement réciproque). + +### Projets mixtes + +Si votre projet mêle des types de contenus différents, vous pouvez inclure plusieurs licences, à condition d’indiquer clairement quelle licence s’applique à chaque partie du projet. Voir [la notice de licence de ce site](https://github.com/github/choosealicense.com#license) en exemple. diff --git a/i18n/ko/about.md b/i18n/ko/about.md new file mode 100644 index 000000000..adafe351a --- /dev/null +++ b/i18n/ko/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: ko +title: "이게 무엇에 관한 건가요?" +--- +GitHub은 개발자가 소스 코드에 적합한 오픈 소스 라이선스를 선택하도록 돕고자 합니다. + +이미 잘 알고 있고 선호하는 라이선스가 있다면 더할 나위 없이 좋습니다! 우리는 당신의 생각을 바꾸려는 것이 아닙니다. 하지만 너무 많은 선택지에 어리둥절하다면, 우리가 도움이 될 수 있을지도 모릅니다. + +## 전부를 다루지는 않습니다 + +이 사이트는 오픈 소스 라이선스의 종합 목록이 아닙니다. 대다수 프로젝트는 [홈페이지](/)에서 강조한 세 가지 선택지 중 하나로 충분할 것입니다 — 당신과 비슷한 프로젝트가 [선호하는](/community/) 라이선스, 가장 인기 있는 관대형 라이선스([MIT](/licenses/mit/)), 또는 가장 인기 있는 카피레프트 라이선스([GNU GPLv3](/licenses/gpl-3.0/)). 이들로 다루지 못하는 특수한 요구가 있을 경우를 대비해, [고려할 만한 다른 라이선스 몇 가지](/licenses/)도 소개하고 [비소프트웨어 프로젝트를 위한 라이선스](/non-software/)에 관한 페이지도 마련해 두었습니다. + +[choosealicense.com 저장소](https://github.com/github/choosealicense.com)에 정리된 모든 라이선스의 표는 [부록](/appendix/)을 참고하세요. 그리고 아래 링크에서, 훌륭한 라이선스를 선택하기 위해 굳이 **알 필요가 없는** *훨씬 더 많은* 라이선스를 확인할 수 있습니다. + +### 추가 자료 + +{: .bullets} + +* Open Source Initiative의 FAQ: [내 소프트웨어를 공개할 때 어떤 오픈 소스 라이선스를 선택해야 할까?](https://opensource.org/faq#which-license) +* Free Software Foundation의 [라이선스 선택 방법에 관한 조언](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla), 유럽 위원회가 제공하는 대화형 라이선스 선택 도구 +* [The Legal Side of Open Source](https://opensource.guide/legal/), 라이선스 및 관련 문제를 다루는 Open Source Guide + +## 개선을 도와주세요 + +Choosealicense.com은 오픈 소스에 관한 것일 뿐 아니라, 사이트 자체도 오픈 소스입니다. 더 잘할 수 있다고 생각되는 부분이 있나요? 부담 없이 GitHub에서 [프로젝트를 포크](https://github.com/github/choosealicense.com)하고 풀 리퀘스트를 보내 주세요. 여러분의 개선을 환영합니다. + +## 면책 조항 + +우리는 변호사가 아닙니다. 적어도 대부분은요. 이 사이트의 목적은 법률 자문을 제공하는 것이 아닙니다. 이 사이트의 목적은 인기 있는 오픈 소스 라이선스에 관한 정보를 간단하게 제공해, 정보에 입각한 선택을 하도록 돕는 출발점을 제공하는 것입니다. 당신의 코드에 가장 적합한 라이선스나 그와 관련된 다른 법률 문제에 대해 궁금한 점이 있다면, 추가로 조사하거나 전문가와 상담하는 것은 당신의 책임입니다. diff --git a/i18n/ko/community.md b/i18n/ko/community.md new file mode 100644 index 000000000..a8e36219c --- /dev/null +++ b/i18n/ko/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: ko +title: "기존 프로젝트 및 커뮤니티" +--- +기존 프로젝트에 기여하거나 이를 확장한다면, 거의 항상 그 프로젝트의 라이선스를 계속 사용하는 것이 가장 쉽습니다. 라이선스를 찾으려면 `LICENSE`나 `COPYING`이라는 파일을 찾고, 프로젝트의 `README`를 훑어보세요. 라이선스를 찾을 수 없다면 [메인테이너에게 문의하세요](/no-permission/#for-users). + +원본 프로젝트의 라이선스에 따라, 같은 라이선스를 사용하는 것이 단지 가장 쉬운 방법이 아니라 요구 사항일 수도 있습니다. ([일부 라이선스](/licenses/)의 "동일 라이선스" 조건을 참고하세요.) + +일부 커뮤니티는 특정 라이선스에 대한 강한 선호가 있습니다. 그중 한 곳에 참여하고 싶다면, 기존 의존성이 전혀 없는 완전히 새로운 프로젝트를 시작하더라도 해당 커뮤니티가 선호하는 라이선스를 쓰는 편이 더 수월합니다. 몇 가지 예는 다음과 같습니다: + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/)는 [Apache License 2.0](/licenses/apache-2.0/)을 요구합니다 +* [Cloud Native Computing Foundation](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy)은 [Apache License 2.0](/licenses/apache-2.0/)을 요구합니다 +* [GNU](https://www.gnu.org/licenses/license-recommendations.html)는 대부분의 프로그램에 [GNU GPLv3](/licenses/gpl-3.0/)을 권장합니다 +* [npm 패키지](https://libraries.io/search?platforms=npm)는 압도적으로 [MIT](/licenses/mit/) 또는 매우 유사한 [ISC](/licenses/isc) 라이선스를 사용합니다 +* [OpenBSD](https://www.openbsd.org/policy.html)는 [ISC License](/licenses/isc/)를 선호합니다 +* [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) 크레이트는 압도적으로 [MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/)으로 라이선스됩니다 +* [WordPress](https://wordpress.org/about/license/) 플러그인과 테마는 [GNU GPLv2](/licenses/gpl-2.0/)(또는 이후 버전)여야 합니다 +* [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) 확장과 템플릿의 PHP 코드는 [GNU GPLv2](/licenses/gpl-2.0/)여야 합니다. + +커뮤니티는 형태와 규모가 제각각이며, 둘 이상의 커뮤니티가 관련될 수도 있습니다(예: 회사에 다니고 있다면 [당신의 회사](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know)도 염두에 두세요). 위의 예시들은 *매우* 잘 확립되어 있습니다. 프로젝트를 만들고 있는 커뮤니티에 확고한 라이선스 관행이 없거나, 당신의 프로젝트가 특정 커뮤니티의 일부라고 생각되지 않는다면, 그래도 괜찮습니다: [당신만의 오픈 소스 라이선스를 선택하세요](/). diff --git a/i18n/ko/no-permission.md b/i18n/ko/no-permission.md new file mode 100644 index 000000000..709d8ab48 --- /dev/null +++ b/i18n/ko/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: ko +title: "라이선스 없음" +description: "라이선스를 반드시 선택해야 하는 것은 아니며, 코드나 프로젝트에 라이선스를 포함하지 않을 권리도 있습니다. 다만 오픈 소스 라이선스를 적용하지 않는다고 해서 저작권법의 적용에서 벗어나는 것은 아니라는 점에 유의하세요." +--- +창작물(코드를 포함합니다)을 만들면, 그 저작물은 기본적으로 배타적 저작권의 보호를 받습니다. 달리 정한 라이선스를 포함하지 않는 한, 다른 누구도 게시물 삭제, 합의금 요구, 소송의 위험 없이는 당신의 저작물을 복사, 배포, 수정할 수 없습니다. 저작물에 다른 기여자(각자 저작권자)가 생기는 순간, "누구도"라는 표현에는 당신 자신도 포함되기 시작합니다. + +라이선스 파일이 없더라도, 서비스 약관 동의가 필요한 사이트에 소스 코드를 게시하는 경우에는 일부 권리를 부여할 수 있습니다. 예를 들어 GitHub의 공개 저장소에 소스 코드를 게시하면, 당신은 다른 사람이 저장소를 보고 포크하도록 허용하는 [서비스 약관](https://help.github.com/articles/github-terms-of-service)에 동의한 것입니다. 다른 사람의 특정 상황에 [저작권의 제한과 예외](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright)가 적용된다면 그들에게는 당신의 허락이 필요 없을 수도 있습니다. 사이트 약관도, 관할권별 저작권 제한도, 오픈 소스 라이선스가 촉진하는 실험·수정·공유처럼 사람들이 보통 공개 코드 호스트에서 추구하는 종류의 협업에는 충분하지 않습니다. + +라이선스를 제공하지 *않기* 위해 따로 해야 할 일은 없습니다. 다만 [사용자](#for-users)가 실수로 빠뜨린 것으로 오해하지 않도록, 잘 보이는 곳(예: 프로젝트의 README)에 저작권 표시와 더불어 어떠한 라이선스도 제공하지 않는다는 문구를 추가하고 싶을 수 있습니다. 라이선스 없는 프로젝트에 다른 사람의 기여를 받을 생각이라면, 같은 권리를 부여하지 않더라도 기여자로부터 저작권상의 허락을 계속 유지할 수 있도록, 변호사와 함께 프로젝트에 기여자 동의서를 추가하는 방안을 검토하고 싶을 수 있습니다. + +코드 사용을 금지하는 것이 당신이 "라이선스 없음"으로 의도한 바가 아닐 수도 있습니다. [오픈 소스 라이선스](/)는 저작권을 유지하면서도 코드의 재사용을 허용합니다. 저작권 제한에서 완전히 벗어나는 것이 목표라면, 대신 [퍼블릭 도메인 헌정](/licenses/#unlicense)을 시도해 보세요. + +## 사용자를 위한 안내 +{: #for-users } + +라이선스가 없는 소프트웨어를 발견했다면, 이는 일반적으로 그 소프트웨어의 제작자로부터 사용, 수정, 공유에 대한 허락을 전혀 받지 못했다는 뜻입니다. GitHub 같은 코드 호스트에서 코드를 보고 포크할 수 있더라도, 이것이 어떤 목적으로든 소프트웨어를 사용, 수정, 공유하도록 허용된다는 의미는 아닙니다. + +선택지: + +{: .bullets} + +- **메인테이너에게 정중하게 라이선스를 추가해 달라고 요청하세요.** 소프트웨어에 그 반대를 강하게 시사하는 표시가 없다면, 라이선스가 없는 것은 아마 실수일 것입니다. 소프트웨어가 GitHub 같은 사이트에 호스팅되어 있다면, 라이선스를 요청하는 이슈를 열고 이 사이트의 링크를 포함하세요. 대담하고 어떤 라이선스가 가장 적합한지 꽤 분명하다면, 라이선스를 추가하는 풀 리퀘스트를 열어 보세요 — 이 사이트의 각 라이선스 페이지 사이드바에 있는 "이 라이선스 제안하기"를 참고하세요(예: [MIT](/licenses/mit/#suggest-this-license)). +- **그 소프트웨어를 사용하지 마세요.** 오픈 소스 라이선스로 배포되는 대안을 찾거나 직접 만드세요. +- **사적인 라이선스를 협상하세요.** 변호사와 함께하세요. diff --git a/i18n/ko/non-software.md b/i18n/ko/non-software.md new file mode 100644 index 000000000..189273e2f --- /dev/null +++ b/i18n/ko/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: ko +title: "비소프트웨어 라이선스" +--- +오픈 소스 소프트웨어 라이선스는 비소프트웨어 저작물에도 사용할 수 있으며, 특히 해당 저작물을 소스처럼 편집하고 버전 관리할 수 있을 때는 종종 최선의 선택입니다. [오픈 소스 라이선스를 선택하세요](/). + +### 데이터, 미디어 등 +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/), [CC-BY-4.0](/licenses/cc-by-4.0/), [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/)은 데이터셋부터 동영상까지 다양한 비소프트웨어 자료에 사용되는 [개방형](https://opendefinition.org) 라이선스입니다. 크리에이티브 커먼즈는 자사 라이선스를 [소프트웨어](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software)나 하드웨어에 사용하는 것을 권장하지 않는다는 점에 유의하세요. + +### 문서 + +모든 오픈 소스 소프트웨어 라이선스나 미디어용 개방형 라이선스(위의 [내용](#data-media-etc) 참고)는 소프트웨어 문서에도 적용됩니다. 소프트웨어와 그 문서에 서로 다른 라이선스를 사용한다면, 문서에 포함된 소스 코드 예제도 소프트웨어 라이선스에 따라 라이선스됨을 반드시 명시하세요. + +### 글꼴 + +[SIL Open Font License 1.1](/licenses/ofl-1.1/)은 글꼴을 개방된 상태로 유지하여 다른 저작물에 자유롭게 사용할 수 있게 합니다. + +### 하드웨어 + +가구부터 [FPGA](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/)에 이르는 [오픈 소스 하드웨어](https://oshwa.org/resources/open-source-hardware-definition/) 설계는 CERN Open Hardware 라이선스로 다룹니다: [CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/)(관대형), [CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/)(약한 상호주의), [CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/)(강한 상호주의). + +### 혼합 프로젝트 + +프로젝트에 여러 종류의 자료가 섞여 있다면, 프로젝트의 각 부분에 어떤 라이선스가 적용되는지 명확히 밝히는 한 여러 라이선스를 포함할 수 있습니다. 예시로 [이 사이트의 라이선스 표기](https://github.com/github/choosealicense.com#license)를 참고하세요. diff --git a/i18n/pt/about.md b/i18n/pt/about.md new file mode 100644 index 000000000..644ccfebc --- /dev/null +++ b/i18n/pt/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: pt +title: "Do que se trata?" +--- +O GitHub quer ajudar quem desenvolve a escolher uma licença de código aberto para o seu código-fonte. + +Se você já sabe o que está fazendo e tem uma licença que prefere usar, ótimo! Não estamos aqui para fazer você mudar de ideia. Mas se o grande número de opções deixa você confuso, talvez possamos ajudar. + +## Não é abrangente + +Este site não é um diretório abrangente de licenças de código aberto. A grande maioria dos projetos provavelmente será bem atendida por uma das três opções destacadas na [página inicial](/) — escolher a licença [preferida](/community/) por projetos semelhantes ao seu, ou a licença permissiva mais popular ([MIT](/licenses/mit/)), ou a licença copyleft mais popular ([GNU GPLv3](/licenses/gpl-3.0/)). Caso você tenha necessidades específicas não cobertas por essas, também destacamos [algumas outras licenças a considerar](/licenses/) e temos uma página sobre [licenças para projetos que não são software](/non-software/). + +Consulte nosso [apêndice](/appendix/) para uma tabela com todas as licenças catalogadas no [repositório do choosealicense.com](https://github.com/github/choosealicense.com) e os links abaixo para *ainda mais* licenças que você **não precisa** conhecer para mesmo assim escolher uma excelente licença para o seu projeto. + +### Recursos adicionais + +{: .bullets} + +* O FAQ da Open Source Initiative: [Sob qual licença de código aberto devo lançar meu software?](https://opensource.org/faq#which-license) +* Os [conselhos da Free Software Foundation sobre como escolher uma licença](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla), um seletor de licenças interativo da Comissão Europeia +* [The Legal Side of Open Source](https://opensource.guide/legal/), um Open Source Guide que aborda o licenciamento e questões relacionadas + +## Ajude-nos a melhorar + +O choosealicense.com não trata apenas de código aberto; o próprio site também é de código aberto. Viu algo que acha que poderia ser feito melhor? Fique à vontade para [fazer um fork do projeto](https://github.com/github/choosealicense.com) no GitHub e enviar um pull request. Suas melhorias são bem-vindas. + +## Aviso legal + +Não somos advogados. Bem, a maioria de nós, pelo menos. O objetivo deste site não é fornecer aconselhamento jurídico. O objetivo deste site é oferecer um ponto de partida para ajudar você a fazer uma escolha consciente, apresentando de forma simplificada informações sobre licenças de código aberto populares. Se você tiver alguma dúvida sobre a melhor licença para o seu código ou qualquer outra questão jurídica relacionada a ele, é sua responsabilidade pesquisar mais a fundo ou consultar um profissional. diff --git a/i18n/pt/community.md b/i18n/pt/community.md new file mode 100644 index 000000000..e21b51615 --- /dev/null +++ b/i18n/pt/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: pt +title: "Projetos e comunidades existentes" +--- +Se você está contribuindo para um projeto existente ou estendendo-o, quase sempre é mais fácil continuar usando a licença desse projeto. Para encontrá-la, procure um arquivo chamado `LICENSE` ou `COPYING` e dê uma olhada no `README` do projeto. Se você não encontrar uma licença, [pergunte a quem o mantém](/no-permission/#for-users). + +Dependendo da licença do projeto original, usar a mesma licença pode ser uma exigência, e não apenas a opção mais fácil. (Veja a condição "mesma licença" de [algumas licenças](/licenses/).) + +Algumas comunidades têm fortes preferências por licenças específicas. Se você quiser participar de uma delas, será mais fácil usar a licença preferida, mesmo que esteja começando um projeto totalmente novo, sem dependências existentes. Alguns exemplos: + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/) exige a [Apache License 2.0](/licenses/apache-2.0/) +* A [Cloud Native Computing Foundation](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy) exige a [Apache License 2.0](/licenses/apache-2.0/) +* A [GNU](https://www.gnu.org/licenses/license-recommendations.html) recomenda a [GNU GPLv3](/licenses/gpl-3.0/) para a maioria dos programas +* Os [pacotes npm](https://libraries.io/search?platforms=npm) usam de forma esmagadora as licenças [MIT](/licenses/mit/) ou a muito semelhante [ISC](/licenses/isc) +* O [OpenBSD](https://www.openbsd.org/policy.html) prefere a [Licença ISC](/licenses/isc/) +* As crates [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) são licenciadas de forma esmagadora sob [MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/) +* Os plugins e temas do [WordPress](https://wordpress.org/about/license/) devem ser [GNU GPLv2](/licenses/gpl-2.0/) (ou posterior) +* As extensões e templates do [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) devem ser [GNU GPLv2](/licenses/gpl-2.0/) para o código PHP. + +As comunidades vêm em todas as formas e tamanhos, e mais de uma comunidade pode ser pertinente (por exemplo, leve em conta [sua empresa](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know) se você trabalha em uma). Os exemplos acima são *muito* bem estabelecidos. Se a comunidade para a qual você está criando um projeto não tem tradições de licenciamento gravadas em pedra, ou se você não vê seu projeto como parte de nenhuma comunidade específica, tudo bem: [faça sua própria escolha de uma licença de código aberto](/). diff --git a/i18n/pt/no-permission.md b/i18n/pt/no-permission.md new file mode 100644 index 000000000..f5a3bd474 --- /dev/null +++ b/i18n/pt/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: pt +title: "Sem licença" +description: "Você não tem nenhuma obrigação de escolher uma licença e tem o direito de não incluir nenhuma no seu código ou projeto. Mas observe que abrir mão das licenças de código aberto não significa abrir mão da lei de direitos autorais." +--- +Quando você cria uma obra criativa (o que inclui código), a obra fica, por padrão, sob direitos autorais exclusivos. A menos que você inclua uma licença que especifique o contrário, ninguém mais pode copiar, distribuir ou modificar sua obra sem correr o risco de remoções, intimidações ou litígios. Uma vez que a obra passa a ter outras pessoas que contribuem (cada uma titular de direitos autorais), "ninguém" começa a incluir você. + +Mesmo na ausência de um arquivo de licença, você pode conceder alguns direitos nos casos em que publica seu código-fonte em um site que exige a aceitação de termos de serviço. Por exemplo, se você publica seu código-fonte em um repositório público no GitHub, você aceitou os [Termos de Serviço](https://help.github.com/articles/github-terms-of-service), pelos quais permite que outras pessoas vejam e façam fork do seu repositório. Outras pessoas podem não precisar da sua permissão se [limitações e exceções aos direitos autorais](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright) se aplicarem à situação específica delas. Nem os termos do site nem as limitações de direitos autorais específicas de uma jurisdição são suficientes para os tipos de colaboração que as pessoas geralmente buscam em um hospedeiro público de código, como a experimentação, a modificação e o compartilhamento promovidos por uma licença de código aberto. + +Você não precisa fazer nada para *não* oferecer uma licença. No entanto, você pode querer adicionar um aviso de direitos autorais e uma declaração de que não está oferecendo nenhuma licença em um lugar de destaque (por exemplo, o README do seu projeto), para que [as pessoas usuárias](#for-users) não presumam que você cometeu um descuido. Se você for aceitar contribuições de outras pessoas ao seu projeto sem licença, pode querer estudar, com seu advogado, a adição de um acordo de contribuição ao seu projeto, para que você mantenha a permissão de direitos autorais de quem contribui, mesmo que você não conceda o mesmo. + +Proibir o uso do seu código talvez não seja o que você pretende com "sem licença". Uma [licença de código aberto](/) permite a reutilização do seu código mantendo os direitos autorais. Se o seu objetivo é abrir mão totalmente das restrições de direitos autorais, experimente uma [dedicação ao domínio público](/licenses/#unlicense). + +## Para quem usa +{: #for-users } + +Se você encontrar um software que não tem licença, isso geralmente significa que você não tem permissão de quem criou o software para usá-lo, modificá-lo ou compartilhá-lo. Embora um hospedeiro de código como o GitHub possa permitir que você veja e faça fork do código, isso não significa que você esteja autorizado a usar, modificar ou compartilhar o software para qualquer finalidade. + +Suas opções: + +{: .bullets} + +- **Peça gentilmente a quem mantém o projeto para adicionar uma licença.** A menos que o software contenha fortes indicações em contrário, a falta de uma licença provavelmente é um descuido. Se o software estiver hospedado em um site como o GitHub, abra uma issue solicitando uma licença e inclua um link para este site. Se você for ousado e for bastante óbvio qual licença é mais apropriada, abra um pull request para adicionar uma licença – veja "sugerir esta licença" na barra lateral da página de cada licença neste site (por exemplo, [MIT](/licenses/mit/#suggest-this-license)). +- **Não use o software.** Encontre ou crie uma alternativa que esteja sob uma licença de código aberto. +- **Negocie uma licença privada.** Chame seu advogado. diff --git a/i18n/pt/non-software.md b/i18n/pt/non-software.md new file mode 100644 index 000000000..139749588 --- /dev/null +++ b/i18n/pt/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: pt +title: "Licenças para obras que não são software" +--- +As licenças de software de código aberto também podem ser usadas para obras que não são software e muitas vezes são a melhor escolha, especialmente quando as obras em questão podem ser editadas e versionadas como código-fonte. [Escolha uma licença de código aberto](/). + +### Dados, mídia, etc. +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/), [CC-BY-4.0](/licenses/cc-by-4.0/) e [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) são licenças [abertas](https://opendefinition.org) usadas para material que não é software, variando de conjuntos de dados a vídeos. Observe que a Creative Commons [não recomenda o uso de suas licenças para software](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software) ou hardware. + +### Documentação + +Qualquer licença de software de código aberto ou licença aberta para mídia (veja [acima](#data-media-etc)) também se aplica à documentação de software. Se você usar licenças diferentes para o seu software e a sua documentação, certifique-se de especificar que os exemplos de código-fonte na documentação também estão licenciados sob a licença do software. + +### Fontes + +A [SIL Open Font License 1.1](/licenses/ofl-1.1/) mantém as fontes abertas, permitindo que sejam usadas livremente em outras obras. + +### Hardware + +Projetos de [hardware de código aberto](https://oshwa.org/resources/open-source-hardware-definition/), que vão de móveis a [FPGAs](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/), são cobertos pelas licenças CERN Open Hardware: [CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/) (permissiva), [CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/) (fracamente recíproca) e [CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/) (fortemente recíproca). + +### Projetos mistos + +Se o seu projeto contém uma mistura de diferentes tipos de material, você pode incluir várias licenças, desde que seja explícito sobre qual licença se aplica a cada parte do projeto. Veja [o aviso de licença deste site](https://github.com/github/choosealicense.com#license) como exemplo. diff --git a/i18n/zh/about.md b/i18n/zh/about.md new file mode 100644 index 000000000..9292992da --- /dev/null +++ b/i18n/zh/about.md @@ -0,0 +1,32 @@ +--- +layout: default +permalink: /about/ +lang: zh +title: "这是关于什么的?" +--- +GitHub 希望帮助开发者为他们的源代码选择一个开源许可证。 + +如果你已经心中有数,并且有偏好使用的许可证,那很好!我们无意改变你的想法。但如果你被众多的选择弄得不知所措,也许我们能帮上忙。 + +## 并不全面 + +本站并非开源许可证的完整目录。绝大多数项目很可能都能由[首页](/)上重点推荐的三个选项很好地满足——选择与你类似的项目所[偏好](/community/)的许可证、最受欢迎的宽松许可证([MIT](/licenses/mit/))、或最受欢迎的 copyleft 许可证([GNU GPLv3](/licenses/gpl-3.0/))。万一你有这些选项未能覆盖的特定需求,我们也重点介绍了[另外几个值得考虑的许可证](/licenses/),并设有一个关于[非软件项目许可证](/non-software/)的页面。 + +请查阅我们的[附录](/appendix/),那里有一张表格收录了 [choosealicense.com 仓库](https://github.com/github/choosealicense.com)中编目的所有许可证;并参阅下方的链接,那里有*更多*许可证——你**无需**了解它们也能为你的项目选到一个很好的许可证。 + +### 更多资源 + +{: .bullets} + +* 开源促进会(OSI)的常见问题解答:[我应该选择哪种开源许可证来发布我的软件?](https://opensource.org/faq#which-license) +* 自由软件基金会(FSF)关于[如何选择许可证的建议](https://www.gnu.org/licenses/license-recommendations.html) +* [Joinup Licensing Assistant](https://joinup.ec.europa.eu/collection/eupl/joinup-licensing-assistant-jla),欧盟委员会提供的交互式许可证选择器 +* [The Legal Side of Open Source](https://opensource.guide/legal/),一份涵盖许可与相关问题的开源指南 + +## 帮助我们改进它 + +Choosealicense.com 不仅仅是在谈论开源;本站本身也是开源的。看到了你觉得可以做得更好的地方?欢迎在 GitHub 上[复刻本项目](https://github.com/github/choosealicense.com)并提交 pull request。我们欢迎你的改进。 + +## 免责声明 + +我们不是律师。好吧,至少我们大多数人不是。本站的目标并非提供法律建议。本站的目标是提供一个起点,通过以简化的方式介绍热门开源许可证的信息,帮助你做出明智的选择。如果你对哪种许可证最适合你的代码,或对与之相关的任何其他法律问题有疑问,那么进一步研究或咨询专业人士是你自己的责任。 diff --git a/i18n/zh/community.md b/i18n/zh/community.md new file mode 100644 index 000000000..bcfe35b46 --- /dev/null +++ b/i18n/zh/community.md @@ -0,0 +1,24 @@ +--- +layout: default +permalink: /community/ +lang: zh +title: "现有的项目与社区" +--- +如果你正在为某个现有项目做贡献或对其进行扩展,那么继续使用该项目的许可证几乎总是最简单的做法。要找到它的许可证,请查找名为 `LICENSE` 或 `COPYING` 的文件,并浏览项目的 `README`。如果你找不到许可证,请[询问维护者](/no-permission/#for-users)。 + +取决于原项目的许可证,使用相同的许可证可能不只是最简单的做法,而是一项要求。(参见[某些许可证](/licenses/)的「相同许可证」条件。) + +有些社区对特定许可证有强烈的偏好。如果你想参与其中之一,那么使用其偏好的许可证会更方便,即便你是在没有任何现有依赖的情况下开始一个全新的项目。一些例子包括: + +{: .bullets} + +* [Apache](https://www.apache.org/licenses/) 要求使用 [Apache License 2.0](/licenses/apache-2.0/) +* [云原生计算基金会(CNCF)](https://github.com/cncf/foundation/blob/main/charter.md#11-ip-policy)要求使用 [Apache License 2.0](/licenses/apache-2.0/) +* [GNU](https://www.gnu.org/licenses/license-recommendations.html) 建议大多数程序使用 [GNU GPLv3](/licenses/gpl-3.0/) +* [npm 包](https://libraries.io/search?platforms=npm)绝大多数使用 [MIT](/licenses/mit/) 或与之非常相似的 [ISC](/licenses/isc) 许可证 +* [OpenBSD](https://www.openbsd.org/policy.html) 偏好 [ISC 许可证](/licenses/isc/) +* [Rust](https://rust-lang.github.io/api-guidelines/necessities.html#crate-and-its-dependencies-have-a-permissive-license-c-permissive) crate 绝大多数以 [MIT](/licenses/mit/) [`OR`](https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d42-disjunctive-or-operator) [Apache License 2.0](/licenses/apache-2.0/) 授权 +* [WordPress](https://wordpress.org/about/license/) 插件和主题必须采用 [GNU GPLv2](/licenses/gpl-2.0/)(或更高版本) +* [Joomla](https://tm.joomla.org/joomla-license-faq.html#can-i-release-an-extension-under-a-non-gpl-license) 扩展和模板的 PHP 代码必须采用 [GNU GPLv2](/licenses/gpl-2.0/)。 + +社区形形色色、规模各异,而且可能不止一个社区与你相关(例如,如果你受雇于某家公司,请记得考虑[你的公司](https://opensource.guide/legal/#what-does-my-companys-legal-team-need-to-know))。上面的例子都是*非常*成熟确立的。如果你正在构建项目的那个社区并没有一成不变的许可惯例,或者你并不认为你的项目属于任何特定社区,那也没关系:[自行做出你的开源许可证选择](/)。 diff --git a/i18n/zh/no-permission.md b/i18n/zh/no-permission.md new file mode 100644 index 000000000..5d01df86e --- /dev/null +++ b/i18n/zh/no-permission.md @@ -0,0 +1,27 @@ +--- +layout: default +permalink: no-permission/ +lang: zh +title: "无许可证" +description: "你没有义务选择许可证,你有权不为你的代码或项目附加任何许可证。但请注意,不采用开源许可证并不意味着你放弃了著作权法的保护。" +--- +当你创作一件创意作品(其中包括代码)时,该作品默认受排他性版权保护。除非你附上一份另作规定的许可证,否则任何其他人都不能复制、分发或修改你的作品,否则将面临下架、勒索或诉讼的风险。一旦作品有了其他贡献者(每个人都是版权持有者),「任何人」就开始把你也包括进去了。 + +即便没有许可证文件,在某些情况下你也可能授予了一些权利——当你将源代码发布到一个要求接受服务条款的网站时。例如,如果你将源代码发布到 GitHub 上的公开仓库,你就已经接受了[服务条款](https://help.github.com/articles/github-terms-of-service),并由此允许他人查看和复刻你的仓库。如果[版权的限制与例外](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright)适用于他人的特定情况,他们也可能无需你的许可。无论是网站条款,还是特定司法管辖区的版权限制,都不足以支撑人们通常在公共代码托管平台上所寻求的那类协作,比如开源许可证所促成的试验、修改和分享。 + +你无需做任何事就能*不*提供许可证。不过,你也许希望在一个显眼的位置(例如项目的 README)添加版权声明,并声明你不提供任何许可证,以免[用户](#for-users)误以为你是疏忽了。如果你打算接受他人对你这个无许可证项目的贡献,你或许可以和你的律师一起考虑为项目添加一份贡献者协议,这样即使你不授予相同的权利,也能保有来自贡献者的版权许可。 + +禁止他人使用你的代码,未必是你所说的「无许可证」的本意。[开源许可证](/)允许他人重用你的代码,同时保留版权。如果你的目标是彻底放弃版权限制,请改用[公共领域贡献声明](/licenses/#unlicense)。 + +## 致用户 +{: #for-users } + +如果你发现某个软件没有许可证,这通常意味着你未获得该软件创作者的任何许可去使用、修改或分享该软件。尽管像 GitHub 这样的代码托管平台可能允许你查看和复刻代码,但这并不意味着你被允许出于任何目的使用、修改或分享该软件。 + +你的选择: + +{: .bullets} + +- **礼貌地请求维护者添加许可证。**除非软件有强烈的相反迹象,否则缺少许可证很可能只是疏忽。如果软件托管在 GitHub 这样的网站上,请开一个 issue 请求添加许可证,并附上指向本站的链接。如果你比较大胆,而且哪种许可证最合适也相当明显,那就开一个 pull request 来添加许可证——参见本站每个许可证页面侧边栏中的「推荐此许可证」(例如 [MIT](/licenses/mit/#suggest-this-license))。 +- **不要使用该软件。**寻找或创建一个采用开源许可证的替代品。 +- **协商一份私有许可证。**带上你的律师。 diff --git a/i18n/zh/non-software.md b/i18n/zh/non-software.md new file mode 100644 index 000000000..aef6e2c77 --- /dev/null +++ b/i18n/zh/non-software.md @@ -0,0 +1,28 @@ +--- +layout: default +permalink: /non-software/ +lang: zh +title: "非软件许可证" +--- +开源软件许可证同样可以用于非软件作品,并且往往是最佳选择,尤其是当相关作品可以像源代码一样被编辑和进行版本管理时。[选择一个开源许可证](/)。 + +### 数据、媒体等 +{: #data-media-etc } + +[CC0-1.0](/licenses/cc0-1.0/)、[CC-BY-4.0](/licenses/cc-by-4.0/) 和 [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) 都是[开放](https://opendefinition.org)许可证,用于从数据集到视频等各类非软件素材。请注意,知识共享组织[不建议将其许可证用于软件](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software)或硬件。 + +### 文档 + +任何开源软件许可证或面向媒体的开放许可证(见[上文](#data-media-etc))也适用于软件文档。如果你的软件及其文档使用不同的许可证,请务必声明文档中的源代码示例同样采用软件的许可证。 + +### 字体 + +[SIL Open Font License 1.1](/licenses/ofl-1.1/) 让字体保持开放,允许其在其他作品中被自由使用。 + +### 硬件 + +从家具到 [FPGA](https://oshwa.org/resources/best-practices-for-sharing-fpga-designs/) 等各类[开源硬件](https://oshwa.org/resources/open-source-hardware-definition/)的设计,可由 CERN Open Hardware 许可证涵盖:[CERN-OHL-P-2.0](/licenses/cern-ohl-p-2.0/)(宽松型)、[CERN-OHL-W-2.0](/licenses/cern-ohl-w-2.0/)(弱互惠型)和 [CERN-OHL-S-2.0](/licenses/cern-ohl-s-2.0/)(强互惠型)。 + +### 混合型项目 + +如果你的项目混合了不同类型的素材,你可以包含多个许可证,只要你明确说明每一部分适用哪个许可证即可。可参见[本站的许可证声明](https://github.com/github/choosealicense.com#license)作为示例。 diff --git a/index.html b/index.html index b8d343a43..0a41f7454 100644 --- a/index.html +++ b/index.html @@ -3,37 +3,31 @@ class: home hide_breadcrumbs: true title: Choose an open source license +title_key: page_title_home permalink: / --- -<p>An open source license protects contributors and users. Businesses and savvy developers won’t touch a project without this protection.</p> +{% include tmd.html key="home_intro" %} <h2> <span>{</span> - Which of the following best describes your situation? + {% include t.html key="home_situations_question" %} <span>}</span> </h2> <ul class="triptych situations clearfix"> <li class="existing"> <a href="community/"> <span class="triptych-sprite community"></span> - <h3>I need to work in a community.</h3> + <h3>{% include t.html key="home_community_title" %}</h3> </a> - <p> - Use the <a href="community/">license preferred by the community</a> you’re contributing to or depending on. Your project will fit right in. - </p> - <p> - If you have a dependency that doesn’t have a license, ask its maintainers to <a href="no-permission/#for-users">add a license</a>. - </p> + {% include tmd.html key="home_community_content" %} </li> <li class="whatever"> <a href="licenses/mit/"> <span class="triptych-sprite three-arrows"></span> - <h3>I want it simple and permissive.</h3> + <h3>{% include t.html key="home_permissive_title" %}</h3> </a> - <p> - The <a href="licenses/mit/">MIT License</a> is short and to the point. It lets people do almost anything they want with your project, like making and distributing closed source versions. - </p> + {% include tmd.html key="home_permissive_content" %} <p> {% include using-sentence.html license-id="mit" %} </p> @@ -41,11 +35,9 @@ <h3>I want it simple and permissive.</h3> <li class="copyleft"> <a href="licenses/gpl-3.0/"> <span class="triptych-sprite circular"></span> - <h3>I care about sharing improvements.</h3> + <h3>{% include t.html key="home_copyleft_title" %}</h3> </a> - <p> - The <a href="licenses/gpl-3.0/">GNU GPLv3</a> also lets people do almost anything they want with your project, <em>except</em> distributing closed source versions. - </p> + {% include tmd.html key="home_copyleft_content" %} <p> {% include using-sentence.html license-id="gpl-3.0" %} </p> @@ -53,26 +45,20 @@ <h3>I care about sharing improvements.</h3> </ul> <h2> <span>{</span> - What if none of these work for me? + {% include t.html key="home_more_question" %} <span>}</span> </h2> <ul class="triptych see-more clearfix"> <li> - <h3>My project isn’t software.</h3> - <p> - <a href="non-software/">There are licenses for that</a>. - </p> + <h3>{% include t.html key="home_nonsoftware_title" %}</h3> + {% include tmd.html key="home_nonsoftware_content" %} </li> <li> - <h3>I want more choices.</h3> - <p> - <a href="licenses/">More licenses are available</a>. - </p> + <h3>{% include t.html key="home_morechoices_title" %}</h3> + {% include tmd.html key="home_morechoices_content" %} </li> <li> - <h3>I don’t want to choose a license.</h3> - <p> - <a href="no-permission/">Here’s what happens if you don’t</a>. - </p> + <h3>{% include t.html key="home_nolicense_title" %}</h3> + {% include tmd.html key="home_nolicense_content" %} </li> </ul> diff --git a/licenses.html b/licenses.html index 29e13efd1..9119480bf 100644 --- a/licenses.html +++ b/licenses.html @@ -3,10 +3,11 @@ permalink: licenses/ class: license-types title: Licenses +title_key: page_title_licenses --- -<p>Open source licenses grant permission for anybody to use, modify, and share licensed software for any purpose, subject to conditions preserving the provenance and openness of the software. The following licenses are sorted by the number of conditions, from most (GNU AGPLv3) to none (Unlicense). Notice that the popular licenses featured on the <a href="/">home page</a> (GNU GPLv3 and MIT) fall within this spectrum.</p> -<p style="font-size:small; margin-bottom: 40px">If you’re looking for a reference table of every license on choosealicense.com, see the <a href="/appendix">appendix</a>.</p> +<p>{% include t.html key="licenses_intro_html" %}</p> +<p style="font-size:small; margin-bottom: 40px">{% include t.html key="licenses_appendix_note_html" %}</p> {% include license-overview.html license-id="agpl-3.0" %} {% include license-overview.html license-id="gpl-3.0" %} @@ -17,4 +18,4 @@ {% include license-overview.html license-id="bsl-1.0" %} {% include license-overview.html license-id="unlicense" %} -The above licenses represent the entire spectrum of open source licenses, from highly protective to unconditional. One of these should work for most new open source projects. Many other open source licenses exist, including older versions of and close substitutes for some of the above. See the resources listed on our <a href="/about/">about page</a> if you’d like to read more. +{% include t.html key="licenses_outro_html" %} diff --git a/no-permission.md b/no-permission.md index b17682b66..9397850e9 100644 --- a/no-permission.md +++ b/no-permission.md @@ -4,26 +4,26 @@ permalink: no-permission/ redirect_from: - /no-license/ - /licenses/no-license/ -title: No License +title: "No License" description: "You're under no obligation to choose a license and it's your right not to include one with your code or project. But please note that opting out of open source licenses doesn't mean you're opting out of copyright law." --- - When you make a creative work (which includes code), the work is under exclusive copyright by default. Unless you include a license that specifies otherwise, nobody else can copy, distribute, or modify your work without being at risk of take-downs, shake-downs, or litigation. Once the work has other contributors (each a copyright holder), “nobody” starts including you. Even in the absence of a license file, you may grant some rights in cases where you publish your source code to a site that requires accepting terms of service. For example, if you publish your source code in a public repository on GitHub, you have accepted the [Terms of Service](https://help.github.com/articles/github-terms-of-service), by which you allow others to view and fork your repository. Others may not need your permission if [limitations and exceptions to copyright](https://en.wikipedia.org/wiki/Limitations_and_exceptions_to_copyright) apply to their particular situation. Neither site terms nor jurisdiction-specific copyright limitations are sufficient for the kinds of collaboration that people usually seek on a public code host, such as experimentation, modification, and sharing as fostered by an open source license. -You don't have to do anything to *not* offer a license. You may, however, wish to add a copyright notice and statement that you are not offering any license in a prominent place (e.g., your project's README) so that [users](#for-users) don't assume you made an oversight. If you're going to accept others' contributions to your non-licensed project, you may wish to explore adding a contributor agreement to your project with your lawyer so that you maintain copyright permission from contributors, even though you're not granting the same. +You don’t have to do anything to *not* offer a license. You may, however, wish to add a copyright notice and statement that you are not offering any license in a prominent place (e.g., your project’s README) so that [users](#for-users) don’t assume you made an oversight. If you’re going to accept others’ contributions to your non-licensed project, you may wish to explore adding a contributor agreement to your project with your lawyer so that you maintain copyright permission from contributors, even though you’re not granting the same. Disallowing use of your code might not be what you intend by "no license." An [open source license](/) allows reuse of your code while retaining copyright. If your goal is to completely opt-out of copyright restrictions, try a [public domain dedication](/licenses/#unlicense) instead. ## For users +{: #for-users } -If you find software that doesn't have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software. Although a code host such as GitHub may allow you to view and fork the code, this does not imply that you are permitted to use, modify, or share the software for any purpose. +If you find software that doesn’t have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software. Although a code host such as GitHub may allow you to view and fork the code, this does not imply that you are permitted to use, modify, or share the software for any purpose. Your options: {: .bullets} -- **Ask the maintainers nicely to add a license.** Unless the software includes strong indications to the contrary, lack of a license is probably an oversight. If the software is hosted on a site like GitHub, open an issue requesting a license and include a link to this site. If you're bold and it's fairly obvious what license is most appropriate, open a pull request to add a license – see "suggest this license" in the sidebar of the page for each license on this site (e.g., [MIT](/licenses/mit/#suggest-this-license)). -- **Don't use the software.** Find or create an alternative that is under an open source license. +- **Ask the maintainers nicely to add a license.** Unless the software includes strong indications to the contrary, lack of a license is probably an oversight. If the software is hosted on a site like GitHub, open an issue requesting a license and include a link to this site. If you’re bold and it’s fairly obvious what license is most appropriate, open a pull request to add a license – see "suggest this license" in the sidebar of the page for each license on this site (e.g., [MIT](/licenses/mit/#suggest-this-license)). +- **Don’t use the software.** Find or create an alternative that is under an open source license. - **Negotiate a private license.** Bring your lawyer. diff --git a/non-software.md b/non-software.md index 3d2ce7c9f..e2a0f1b5b 100644 --- a/non-software.md +++ b/non-software.md @@ -1,12 +1,12 @@ --- -title: Non-Software Licenses layout: default permalink: /non-software/ +title: Non-Software Licenses --- - Open source software licenses can be also used for non-software works and are often the best choice, especially when the works in question can be edited and versioned as source. [Choose an open source license](/). ### Data, media, etc. +{: #data-media-etc } [CC0-1.0](/licenses/cc0-1.0/), [CC-BY-4.0](/licenses/cc-by-4.0/), and [CC-BY-SA-4.0](/licenses/cc-by-sa-4.0/) are [open](https://opendefinition.org) licenses used for non-software material ranging from datasets to videos. Note that Creative Commons does [not recommend its licenses be used for software](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software) or hardware. diff --git a/spec/i18n_spec.rb b/spec/i18n_spec.rb new file mode 100644 index 000000000..e6e2a1f8d --- /dev/null +++ b/spec/i18n_spec.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +require 'spec_helper' + +# These checks guard the internationalization layer without ever requiring a +# translation to be complete: missing strings fall back to English at build time. +# They catch the mistakes that *would* silently break a page — a template asking +# for a key that doesn't exist, or a translation file using an unknown key/id. +describe 'i18n' do + let(:i18n) { site.data['i18n'] } + let(:base) { i18n['en']['ui'] } + let(:license_ids) { licenses.map { |l| l['spdx-lcase'] } } + + it 'ships an English base UI file' do + expect(base).to be_a(Hash) + expect(base).not_to be_empty + end + + it 'has only string values in the English base UI file' do + non_strings = base.reject { |_key, value| value.is_a?(String) }.keys + expect(non_strings).to be_empty, "non-string en/ui.yml keys: #{non_strings.join(', ')}" + end + + it 'defines every statically-referenced UI key in the English base' do + globs = ['_includes/**/*.html', '_layouts/**/*.html', '*.html', '*.md'] + files = globs.flat_map { |glob| Dir.glob(File.expand_path(glob, source)) } + referenced = files.flat_map do |file| + File.read(file).scan(/\binclude\s+t(?:md)?\.html\s+key=["']([a-z0-9_]+)["']/).flatten + end.uniq + missing = referenced - base.keys + expect(missing).to be_empty, "templates reference UI keys missing from en/ui.yml: #{missing.join(', ')}" + end + + translation_langs = Dir.glob(File.expand_path('_data/i18n/*/ui.yml', source)) + .map { |path| File.basename(File.dirname(path)) } - ['en'] + + translation_langs.each do |lang| + context "the '#{lang}' UI translation" do + let(:translation) { i18n[lang]['ui'] } + + it 'only uses keys that exist in the English base' do + orphans = translation.keys - base.keys + expect(orphans).to be_empty, "#{lang}/ui.yml has keys absent from en/ui.yml: #{orphans.join(', ')}" + end + end + end + + Dir.glob(File.expand_path('_data/i18n/*/licenses.yml', source)).each do |path| + lang = File.basename(File.dirname(path)) + + context "the '#{lang}' license summaries" do + let(:summaries) { i18n[lang]['licenses'] } + + it 'is keyed only by known license ids' do + unknown = summaries.keys - license_ids + expect(unknown).to be_empty, "#{lang}/licenses.yml references unknown licenses: #{unknown.join(', ')}" + end + end + end + + Dir.glob(File.expand_path('_data/i18n/*/rules.yml', source)).each do |path| + lang = File.basename(File.dirname(path)) + + context "the '#{lang}' rule labels" do + let(:translated_rules) { i18n[lang]['rules'] } + + %w[permissions conditions limitations].each do |group| + it "only references known #{group} tags" do + group_rules = translated_rules[group] + next if group_rules.nil? + + valid = rules[group].map { |rule| rule['tag'] } + unknown = group_rules.keys - valid + expect(unknown).to be_empty, "#{lang}/rules.yml '#{group}' has unknown tags: #{unknown.join(', ')}" + end + end + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index af37f1a79..be26f4541 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -28,7 +28,13 @@ def config SpecHelper.config ||= begin config = Jekyll::Configuration.new.read_config_file config_file config = Jekyll::Utils.deep_merge_hashes(config, source:) - Jekyll::Utils.deep_merge_hashes(Jekyll::Configuration::DEFAULTS, config) + config = Jekyll::Utils.deep_merge_hashes(Jekyll::Configuration::DEFAULTS, config) + # The specs validate language-independent license metadata and i18n data, not + # the routing layer, so polyglot is not loaded for this bare `site.read`. This + # keeps collection counts exact (polyglot otherwise renders the site once per + # language during a full build). + config['plugins'] = Array(config['plugins']) - ['jekyll-polyglot'] + config end end