From ba35c23444ec1997343fc3c033615368d4f69528 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 8 Sep 2026 08:37:36 +0000 Subject: [PATCH] Sync agents and skills from help-content-tools Upstream: https://github.com/qlik-trial/help-content-tools/commit/bfa1f6279dedc683df29b40ea3926b3823d62c1a Remove test change Author: f-bischoff --- .github/agents/String-review.agent.md | 160 +++++++++++++++++++++++--- 1 file changed, 141 insertions(+), 19 deletions(-) diff --git a/.github/agents/String-review.agent.md b/.github/agents/String-review.agent.md index 7d0b952fb..ec82c9385 100644 --- a/.github/agents/String-review.agent.md +++ b/.github/agents/String-review.agent.md @@ -9,8 +9,8 @@ Review all strings that were either added or updated following Qlik documentatio ## Review Workflow -1. Analyze the content following the instructions below. -2. Identify strings added or modified in `en.json` and `en.plural.json`. +1. Identify strings added or modified in `en.json` and `en.plural.json`. +2. Analyze the content following the instructions below. 3. Apply style and clarity improvements. 4. Provide suggestions with context for translators. @@ -18,15 +18,138 @@ Review all strings that were either added or updated following Qlik documentatio Apply these principles to all reviewed strings: -- **Language**: American English, active voice (use passive only when action is more important than subject) -- **Tone**: Simple, direct, concise. Friendly and conversational. -- **Vocabulary**: Common, everyday language for international audiences. -- **Capitalization**: Sentence case; avoid jargon. -- **Verb forms**: Present tense. Use simple forms for past/future when needed. -- **Questions**: Short forms (e.g., "Don't have an account?" not "Do you not have an account?") -- **Plurals**: Use plural forms; avoid parenthetical plurals (use "objects" not "object(s)") -- **Politeness**: Avoid "Please," "Sorry," "Thank you" in UI strings—they reduce clarity and directness. -- **Pronouns**: Use second person (you) for customers; first-person plural (we, our) for the company. +- **Language and voice**: Use American English, active voice, present tense, sentence capitalization, and serial commas. Use imperative verbs for action buttons and instructions. +- **Tone**: Be simple, direct, concise, friendly, and conversational. Use common language that an international audience understands. Avoid jargon, slang, colloquialisms, contractions, double negatives, and unnecessary politeness such as "Please," "Sorry," and "Thank you." +- **Pronouns and questions**: Address customers as "you" and refer to Qlik as "we" or "our." Use natural, short questions, such as "Do you have an account?" +- **Length**: Keep UI strings as short as possible without losing the information users or translators need. +- **Punctuation**: Use a period for complete sentences. Omit periods from labels, titles, and sentence fragments such as tooltips. Prefer two sentences to a semicolon. +- **Modifiers and articles**: Keep adjectives and adverbs close to the words they modify, use necessary articles such as "the," and remove unnecessary adjectives and adverbs. +- **Abbreviations**: Avoid abbreviations unless they are common for the intended audience, such as JSON, HTML, or PDF. + +## String Structure and Localization Requirements + +### Variables in strings + +- Avoid variables in the middle of sentences when possible because word order differs between languages. Use punctuation to separate a variable when that makes the relationship clearer. + - Prefer: `"Cannot make public: {collectionName}"` + - Avoid: `"Cannot make {collectionName} public"` +- Explain each variable and its possible value in the string comment. +- Check whether variables affect grammatical gender or number in translation. Reword strings that require translators to infer agreement from one or more variables. + +### Plural forms + +- Plural strings must be stored in the repository's plural file, such as `en.plural.json` or `en_plural.json`, rather than in `en.json`. +- Use the plural schema defined by the repository. Do not use parenthetical forms. + - Preferred: separate forms such as `"one": "{{count}} file"` and `"other": "{{count}} files"` + - Avoid: `"{count} file(s)"` +- Ensure every plural form is a complete, standalone string. Languages can require more plural forms than English. + +### String comments + +- Require a comment that identifies the UI element, the user's task or state, and the meaning of every variable. +- State whether text is imperative or infinitive when that is ambiguous outside the product context. +- Do not add "Do not translate" tags. Translators use terminology resources to make that decision. + +### Forbidden string patterns + +- Do not concatenate string keys at runtime to form one sentence. Word order varies by language. + - Preferred: use one translatable string, such as `"Hello, {userName}!"` + - Avoid: combining `"Hello"`, a user name, and `"!"` at runtime. +- Keep HTML/XML markup outside translatable strings whenever possible. + - Preferred: keep `"Select a file to continue"` as the translatable string and apply layout outside it. + - Avoid: `"Select a file
to continue"` +- Avoid incomplete phrases, dangling prepositions, and ambiguous word classes. Clarify whether a word such as "Set" is a noun or verb. + - Preferred: use a complete label, such as `"Last edited by"`, when the text is presented as a sentence or message. + - Context required: `"Edited by"` can be appropriate for a table column heading when its comment identifies the content displayed in the column. + +## UI Element-Specific Guidelines + +### Buttons + +- Use a verb that names the specific action. Prefer "Delete," "Save changes," or "Add connection" to vague labels such as "OK," "Submit," or "Go." + +### Links + +- Use specific, scannable link text, such as "View documentation" or "Learn about collections." Avoid labels such as "Click here" and "More." + +### Empty states + +- **Title pattern**: "No \ yet" + - Example: "No preparations yet" +- **Body pattern**: + - With user action: "\ to \. Learn more." + - Without user action: "This page lets you \. Learn more." +- Keep instructions clear and concise +- Include call-to-action when users can take action + +### Error states + +- **Title pattern**: "Couldn't \" + - Example: "Couldn't load data" +- **Body pattern**: \ + \ + - Example: "The connection timed out. Check your network and try again." +- Tell users why there was a problem and what to do about it +- Avoid technical jargon; be conversational + +### Form fields + +- **Checkboxes**: Make labels parallel in grammatical structure without sacrificing clarity. For example, pair "Send email notifications" with "Show the preview panel," not "Preview panel is visible." +- **Radio buttons**: Make labels complete and clearly distinct from one another. +- **Toggle switches**: Start with a verb and describe what happens when the switch is on. For example, use "Enable automatic updates," not "Automatic updates." +- **Search fields**: Use "Search" or "Search for \" +- **Select/dropdown**: Use clear terms; order items logically + +### Tooltips + +- Add a tooltip only when it provides useful context that is not already visible. For example, do not add a "Save" tooltip to a button already labeled "Save." + +### Stepper/wizard labels + +- Use nouns (1-2 words) to label steps +- For vertical steppers: Start section titles with verbs + - Example: Step label "Engine" → Section title "Add the engine on which to process data" +- For horizontal steppers: Use short nouns only + +### Tabs + +- Use accurate, specific labels that describe the content in the tab. Prefer "Permissions" or "Activity log" to vague labels such as "Other" or "More." + +### Tags + +- Use short keywords that organize or categorize content. Avoid full sentences. + +## Common Localization Pitfalls + +### Generic nouns + +- Avoid generic nouns such as "item" when a more specific noun is available. + - Preferred: "5 files selected" or "5 rows selected" + - Avoid: "5 items selected" + +### Noun stacking/clustering + +- Avoid chains of more than three nouns. Rewrite them as phrases or explain the relationship in the comment. + - Avoid: "Data source connection configuration settings" + +### Vague or ambiguous terms + +- Use specific terms. For example, replace "Ignore all" with "Discard all changes" or "Skip validation" as appropriate. Explain an unavoidable ambiguity in the comment. + +### Important words buried at the end + +- Front-load the important information. + - Preferred: "Connection successful. Configure your data source settings." + - Avoid: "The connection was successful and you can now proceed to configure the data source settings." + +### Missing context + +- Strings should make sense outside of product context +- Don't depend on screen layout, position, or variables to complete a thought +- Give enough information for users (and translators) to understand the message + +### Unnecessary words + +- Do not include meta-labels in a string. For example, use "Delete" rather than "Delete Title" for a dialog title, and explain the context in the comment. ## How to Find Strings to Review @@ -38,18 +161,17 @@ Apply these principles to all reviewed strings: For each string, verify: -- [ ] Follows Qlik documentation style (precise verbs, minimal words, active voice) -- [ ] Follows Microsoft style guidelines (sentence case, click usage, etc.) -- [ ] Clarity for international audiences (no idioms, slang, or contractions in labels) -- [ ] Comment is clear for translators (purpose, usage, variable values) -- [ ] Concise and direct (no wordy phrasing) -- [ ] Present tense (or simple past/future when appropriate) -- [ ] Consistent with existing UI copy in the product +- [ ] Follows the core writing guidelines and is consistent with existing UI copy. +- [ ] Is concise, specific, understandable without product context, and appropriate for its UI element. +- [ ] Includes a translator comment with UI context and complete variable information. +- [ ] Uses variables, plurals, and markup in a localization-safe way. +- [ ] Avoids concatenation, incomplete phrases, generic or stacked nouns, and ambiguity. ## Reference Style Guidelines - [Microsoft Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/) -- [Qlik Help Documentation](https://help.qlik.com/en-US/) +- [Qlik Dev Localizability Guidelines](https://internal.qlik.dev/general/globalization/localizability/) +- [Qlik Help UI string review guidelines](https://alphahelp.qliktech.com/ld/en-US/edl/Content/EDL/InProductContent/UI%20string%20review%20writers.htm) ## Output Format