You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`--no-api-copy`| Skip copying API docs to localized sites |
53
+
|`--sync`| Sync English fallback for missing/outdated translations (for local dev) |
53
54
54
55
## What the Build Script Does
55
56
56
57
1.**Generates DocFX configurations** - Runs `gen_redirects.py` to create `docfx.json` for each language
57
58
2.**Generates language manifest** - Creates `metadata/languages.json` for runtime language switching
58
-
3.**Syncs content** - Copies English source content; uses English as fallback for missing translations. Readds the english file if the file is modified in content or deleted in translation.
59
+
3.**Syncs content** - Copies English source to `localizedContent/en/`. For other languages, only shared directories (assets, api) are synced by default since Crowdin manages translations. Use `--sync` to enable full English fallback for missing/outdated translations (useful for local development).
59
60
4.**Builds documentation** - Runs DocFX for each requested language
60
61
5.**Fixes API docs** - Patches xref links in generated API documentation
61
62
6.**Copies API docs** - Shares English API docs with localized sites
@@ -101,7 +102,20 @@ TEDoc/
101
102
4. Add a translated `_ui-strings.json` to the content subdirectory (see [Translating UI Strings](#translating-ui-strings) below). If no translation is provided, an automatic fallback will be generated.
102
103
5. Run `python build-docs.py --all` to generate configs and build. Language will be added dynamically to language picker.
103
104
104
-
> **Note:** English content from `content/` is automatically copied to `localizedContent/en/content/` during build. For other languages, English content is used as fallback for missing translations. This includes `_ui-strings.json` — if no translated version exists, English UI strings are used.
105
+
> **Note:** English content from `content/` is automatically copied to `localizedContent/en/content/` during build. For other languages, Crowdin manages translations via PRs. Shared directories (assets, api) are always synced from English. To use English as fallback for missing/outdated translations during local development, add the `--sync` flag.
106
+
107
+
# Bookmark Links and Translations
108
+
109
+
When linking to a specific heading within a page (e.g., `#my-heading`), the anchor ID is auto-generated from the heading text. When headings are translated by Crowdin, the anchor changes, breaking bookmark links.
110
+
111
+
To prevent this, add an `<a name="..."></a>` tag above any heading that is referenced by a bookmark link:
112
+
113
+
```markdown
114
+
<aname="my-heading"></a>
115
+
## My Heading
116
+
```
117
+
118
+
Crowdin does not translate HTML `name` attributes, so the anchor remains stable across all languages. Only add these to headings that are actually linked to — there is no need to add them to every heading.
105
119
106
120
# Translating UI Strings
107
121
@@ -137,4 +151,18 @@ If a key is missing from a language's file, or no `_ui-strings.json` exists at a
137
151
|`footer.privacyPolicy`|`Privacy & Cookie policy`| Footer bottom link |
138
152
|`footer.termsConditions`|`Terms & Conditions`| Footer bottom link |
139
153
|`footer.licenseTerms`|`License terms`| Footer bottom link |
140
-
154
+
|`appliesTo`|`Applies to: `| "Applies to" label on article metadata |
155
+
|`availableSince`|`Available since`| Version availability label (e.g., "Available since 3.5.0") |
156
+
|`availableIn`|`Available in`| Version range label (e.g., "Available in 3.5.0–3.8.0") |
157
+
|`inThisArticle`|`In this article`| Sidebar table of contents heading |
158
+
|`searchResultsCount`|`{count} results for "{query}"`| Search results summary |
159
+
|`searchNoResults`|`No results for "{query}"`| No search results message |
160
+
|`tocFilter`|`Filter by title`| TOC filter input placeholder |
Copy file name to clipboardExpand all lines: content/features/code-actions.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,6 +74,7 @@ In the screenshot below, for example, the **Prefix variable with '_'** action ca
74
74
75
75

76
76
77
+
<aname="list-of-code-actions"></a>
77
78
## List of Code Actions
78
79
79
80
The table below lists all currently available Code Actions. You can toggle off Code Actions in the **Tools > Preferences** dialog under **Text Editors > DAX Editor > Code Actions** (a future update will let you toggle individual actions for a more customized experience). Some Code Actions also have additional configuration options, such as which prefix to use for variable names.
Copy file name to clipboardExpand all lines: content/features/csharp-scripts.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -282,6 +282,7 @@ In addition, the following .NET Framework assemblies are loaded by default:
282
282
- TabularEditor.Exe
283
283
- Microsoft.AnalysisServices.Tabular.Dll
284
284
285
+
<aname="accessing-environment-variables"></a>
285
286
## Accessing Environment Variables
286
287
287
288
When running C# scripts via the Tabular Editor CLI (especially in CI/CD pipelines), you can pass parameters to your scripts using environment variables. This is the recommended approach, as C# scripts executed by Tabular Editor CLI don't support traditional command-line arguments.
@@ -362,6 +363,7 @@ foreach(var table in Model.Tables)
362
363
Info($"Configured model for {environment} environment");
363
364
```
364
365
366
+
<a name="compatibility"></a>
365
367
## Compatibility
366
368
367
369
The scripting APIs for Tabular Editor 2 and Tabular Editor 3 are mostly compatible, however, there are cases where you want to conditionally compile code depending on which version you're using. For this, you can use preprocessor directives, which were introduced in Tabular Editor 3.10.0.
0 commit comments