Sprachen
Ein Verein schreibt seine Texte auf Italienisch und, wenn er möchte, auch in einer anderen Sprache, unter denen, die Vimine
spricht — heute it, en, zh-Hans, zh-Hant, fr, es, de und pt-BR. Nicht alles wird übersetzt, und nichts wird maschinell übersetzt: Wo der
Verein keine Übersetzung geschrieben hat, liefert die API seinen italienischen Text und sagt es Ihnen.
Diese Anleitung beschreibt, was sich für eine Integration ändert: wie Sie eine Sprache anfordern, wie Sie die Antwort lesen, wie Sie Vimine sagen, in welcher Sprache einer Person geschrieben werden soll.
Eine Sprache anfordern
Abschnitt betitelt „Eine Sprache anfordern“Jeder Lesezugriff, der Texte eines Vereins liefert, nimmt ?locale=:
| Lesezugriff | |
|---|---|
GET /v1/aps/{slug} |
Mitgliedsarten, Zahlungsanweisungen, Datenschutzhinweise |
GET /v1/aps/{slug}/events, GET /v1/aps/{slug}/events/{event} |
öffentliche Veranstaltungen |
GET /v1/events, GET /v1/events/{slug} |
Veranstaltungen mit einem Token, einschließlich derer nur für Mitglieder |
const event = await vimine.public.events.get('circolo-aurora', 'festa-di-primavera', { locale: 'en' });event.title; // "Spring party" — wenn der Verein ihn geschrieben hatevent.locale; // "en": Der Titel ist auf Englisch. "it": Es gibt keine Übersetzung, Sie haben den italienischen Textevent.locales; // ["it", "en"]: die Sprachen, in denen diese Veranstaltung einen Titel hatOhne ?locale= entscheidet über die Sprache, der Reihe nach: die Sprache, die das Mitglied gewählt hat (mit einem Mitglieder-Token), der
Header Accept-Language, die Sprache des Vereins. Ein Wert, den Vimine nicht spricht (?locale=ja), wird ignoriert, er
ist kein Fehler: Sie erhalten Italienisch, mit locale: "it".
Auch ein regionales Tag (en-GB) wird akzeptiert: Es wird auf seine Sprache reduziert.
Die Antwort lesen
Abschnitt betitelt „Die Antwort lesen“localeist die Sprache, in der der Haupttext — der Titel einer Veranstaltung — geliefert wurde. Ist sie nicht die angeforderte, hat der Verein keine Übersetzung geschrieben.localessind die Sprachen, in denen dieser Text existiert: Nutzen Sie sie, um eine Sprachauswahl nur dort zu zeigen, wo sie sinnvoll ist.- Der Ersatz geschieht Feld für Feld: Eine Veranstaltung kann einen englischen Titel und eine italienische Beschreibung haben. Wir mischen nie zwei Sprachen im selben Text, und wir erfinden nie Übersetzungen.
Bei GET /v1/aps/{slug} ist locale die Sprache der Antwort und locales die Sprachen, die der Verein anbietet.
Der Name des Vereins, die Kennungen (slug, cod) und die rechtlichen Dokumente werden nie übersetzt: Das Statuto ist ein
Rechtsakt, und es ist auf Italienisch.
Öffentliche Lesezugriffe antworten mit Content-Language und, wenn Accept-Language entschieden hat, mit Vary: Accept-Language: Wenn Sie
einen Cache vor die API setzen, beachten Sie das — oder übergeben Sie immer ?locale=.
Die Datenschutzhinweise haben eine Version pro Sprache
Abschnitt betitelt „Die Datenschutzhinweise haben eine Version pro Sprache“Die Datenschutzhinweise des Vereins gibt es einmal pro Sprache, und jede Sprache hat ihre eigene Version. Wenn Sie das
Profil mit ?locale=en lesen und der Verein englische Hinweise veröffentlicht hat, ist privacy_notice diese — mit
locale: "en". Wenn Sie die Person aufnehmen, senden Sie zurück, was Sie ihr gezeigt haben, einschließlich der Sprache:
const profile = await vimine.public.association('circolo-aurora', { locale: 'en' });
await vimineServer.enroll({ // … locale: 'en', privacy_notice: { version: profile.privacy_notice.version, sha256: profile.privacy_notice.sha256, locale: profile.privacy_notice.locale }});Der Nachweis, den wir speichern, nennt dieses Dokument: das, das die Person tatsächlich gelesen hat.
Sagen, in welcher Sprache einer Person geschrieben wird
Abschnitt betitelt „Sagen, in welcher Sprache einer Person geschrieben wird“POST /v1/signup, POST /v1/enroll und die Anmeldungen zu Veranstaltungen nehmen locale: die Sprache der Seite, die die Person
auf Ihrer Website ausgefüllt hat.
- Sie bestimmt die Sprache der folgenden E-Mails (Bestätigung der Adresse, Willkommen, Bestätigung der Anmeldung).
- Sie wird zur Einstellung eines neuen Kontos. Ein bereits bestehendes Konto behält seine eigene.
- Bei einem Gast — jemandem, der sich ohne Konto zu einer Veranstaltung anmeldet — ist sie alles, was wir wissen: Jede E-Mail, die er erhält, ist in dieser Sprache.
await vimineServer.registrations.guest('festa-di-primavera', { email: 'marie.dupont@example.org', first_name: 'Marie', last_name: 'Dupont', registration_type: type.uid, locale: 'en'});In den E-Mails folgen die eigenen Texte des Vereins (der Titel der Veranstaltung, die Zahlungsanweisungen) derselben Regel wie die Lesezugriffe: auf Englisch, wo der Verein sie geschrieben hat, sonst auf Italienisch.
Die Sprache des Mitglieds
Abschnitt betitelt „Die Sprache des Mitglieds“GET /v1/me liefert locale: die Sprache, die die Person gewählt hat, oder null, wenn sie nie eine gewählt hat. Mit dem
Scope profile:write können Sie sie ändern:
await vimine.me.update({ locale: 'en' }); // null löscht die WahlHier — und nur hier — ist eine Sprache, die Vimine nicht spricht, ein Fehler: 422 mit code: "unsupported" auf dem
Feld locale. Schreiben Sie sie nur, wenn die Person sie gewählt hat: Leiten Sie sie nicht aus dem Browser ab.
Mit Vimine anmelden
Abschnitt betitelt „Mit Vimine anmelden“ui_locales in der Autorisierungsanfrage ist eine Präferenzliste, der Reihe nach (ui_locales=ja en): Die erste Sprache, die
Vimine spricht, gewinnt. Wenn Sie keine nennen, folgt die Einwilligungsseite der Sprache des Browsers, dann der des Vereins.