{ "examples.actor.states.an-agent-acting-for-a-person": { "english": "The agent's name, then the person it acted for. When the app itself did something, show nothing.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.api-tokens.blurb": { "english": "The API token page: the one-time reveal, the create form, the list and the revoke buttons.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.api-tokens.states.four-tokens-two-of-them-live": { "english": "The revoke forms post to /tokens/revoke, /tokens/revoke-agent and /tokens/revoke-all, under the page's own path. Point them wherever your app handles them.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.api-tokens.states.just-created-the-secret-shown-once": { "english": "Show this in the response to the create form itself, and do not redirect it: the secret is in that response and nowhere else.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.callout.states.negative-announced-as-an-alert": { "english": "role=\"alert\" makes a screen reader announce it as soon as it appears. Keep it for messages that cannot wait.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.choice-field.blurb": { "english": "Option cards: the preferred radio or checkbox group. The title stays short; the description explains.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.confirm-form.states.ordinary-default-cancel-wording": { "english": "The cancel link says Cancel, which is the usual wording. Change it when the form's own words are clearer.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.dropdown.blurb": { "english": "A zero-JavaScript disclosure: a summary button over a panel of plain links. Put it in a row beside what it acts on, never on a line of its own.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.error-page.states.anything-else-the-generic-pair": { "english": "Any status that has no wording of its own gets this generic pair: a title that says something is wrong and a body that says to try again.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-date.blurb": { "english": "A native date input, plus the natural-language combobox datetime.js adds when the input carries data-rst-date. Type \"tomorrow\" into it.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-date.states.enhanced-input-type-tomorrow-or-in-3-weeks": { "english": "The words it parses are on data-rst-date-words, here in the page's language. i18n/.json has them in twelve languages, so the field can parse whichever language the page is in.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-daterange.blurb": { "english": "A start and an end as one labelled fieldset. Give every input its own name and id.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-daterange.states.date-and-time-seeded": { "english": "Commit the start with the end still empty and datetime.js fills the end in an hour later. Nothing in the markup does that; the script does.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-datetime.states.enhanced-input-type-tomorrow-or-in-3-weeks": { "english": "The words it parses are on data-rst-date-words, here in the page's language. i18n/.json has them in twelve languages, so the field can parse whichever language the page is in.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-money.blurb": { "english": "A money amount in one currency. The currency code shows beside the label and is sent with the form, so a currency that changed while someone was typing is caught on save.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-select.blurb": { "english": "The field envelope around a native select. Add data-rst-select and select.js turns it into a filterable combobox; the native select is still what the form submits. Worth it from about ten options.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-select.states.hand-written-with-optgroups": { "english": "Grouped choices are optgroups you write yourself. select.js keeps the groups rather than dropping them; a select can also refuse the enhancement outright with data-rst-select=\"false\".", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-select.states.twelve-options-the-filterable-combobox": { "english": "Add data-rst-select from about ten options. Below that, leave it off: search over a handful of items is furniture, not help.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-text.blurb": { "english": "One labelled text input. The required marker's star is aria-hidden; the input's required attribute is the programmatic signal.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-text.states.the-headline-field": { "english": "Give the main field of a form, a title or a name, rst-input=\"primary\" for a more prominent input.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.field-url.blurb": { "english": "A web address field that accepts example.com with or without https://. Whatever reads the form has to add the scheme and check the address.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.form-error.blurb": { "english": "A form's summary error line, role=\"alert\". Leave it out when there is no error.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.form-foot.states.idle-the-button-before-anything-happens": { "english": "A button that CHANGES something gets a loading state; a button that only reveals something, e.g. a disclosure, a dropdown, a tab, does not. busy.js applies that rule to every submit button in every form, with nothing to opt into.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.form-foot.states.working-what-busy-js-writes-on-the-way-out": { "english": "Only the button that was clicked: every other submit button in the form keeps its name and its value, and the form itself is guarded against a second submit. data-busy=\"false\" opts out, on the form or on one button; data-busy-label replaces the text. With scripts off none of this happens and the form submits exactly as it always did, so a second submit is still your app's job to catch.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.form-layout.blurb": { "english": "The attributes that give a form its rhythm and its save bar. They wrap a run of fields you compose yourself.", "locales": [ "ar", "bn", "es", "ga", "hi", "ja", "pt-PT", "ru", "vi", "yue", "zh-Hans" ] }, "examples.format-dates.blurb": { "english": "Put a date in a