Changes to support weblate workflow (#2210)
This PR syncs the weblate branch back to main, and adds: - New Spanish translations contributed in weblate! - New GH action which reformats weblate commits with `localize:extract`, ensuring strings are not changed, and also runs `localize:build` to extract templates (as tested in PR: #2207) - Reformats existing XLIFF files to match `localize:extract`, including adding self-closing tags. - Update on generated templates - Prettier: disable alpha sorting XML attributes to hopefully minimize conflcits - Strings: change some strings that use `&` to be wrapped in html`` to ensure proper unencoding, or just switch to 'and' where that's not possible. --------- Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: Webrecorder Dev <dev@webrecorder.org> Co-authored-by: Kamborio <Kamborio15@users.noreply.hosted.weblate.org> Co-authored-by: Clara Itzel <missclaraitzel@gmail.com> Co-authored-by: weblate <weblate@users.noreply.github.com> Co-authored-by: emma <hi@emma.cafe> Co-authored-by: sua yoo <sua@webrecorder.org>
This commit is contained in:
		
							parent
							
								
									b741de0232
								
							
						
					
					
						commit
						b041baf5df
					
				
							
								
								
									
										3
									
								
								.github/workflows/docs-publish.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/docs-publish.yaml
									
									
									
									
										vendored
									
									
								
							| @ -27,8 +27,7 @@ jobs: | ||||
|           DOCS_SOURCE_URL: https://app.browsertrix.com | ||||
|           ENABLE_ANALYTICS: true | ||||
| 
 | ||||
|       - name: Build & Deploy Docs | ||||
|       - name: Build Docs | ||||
|         run: cd frontend/docs; mkdocs gh-deploy --force | ||||
|         env: | ||||
|           SITE_URL: https://docs.browsertrix.com | ||||
|           ENABLE_ANALYTICS: true | ||||
|  | ||||
							
								
								
									
										16
									
								
								.github/workflows/frontend-build-prepare.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/frontend-build-prepare.yaml
									
									
									
									
										vendored
									
									
								
							| @ -10,10 +10,6 @@ on: | ||||
| jobs: | ||||
|   setup-and-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       # Give the default GITHUB_TOKEN write permission to commit and push the | ||||
|       # added or changed files to the repository. | ||||
|       contents: write | ||||
| 
 | ||||
|     steps: | ||||
|       # Setup: | ||||
| @ -78,17 +74,7 @@ jobs: | ||||
|         run: yarn lint:check | ||||
| 
 | ||||
|       # Localize: | ||||
|       - name: Extract strings | ||||
|         working-directory: frontend | ||||
|         run: yarn localize:extract | ||||
|       - name: Commit extracted strings | ||||
|         uses: stefanzweifel/git-auto-commit-action@v5 | ||||
|         with: | ||||
|           commit_message: Apply `localize:extract` changes | ||||
|           file_pattern: '**/*.xlf' | ||||
|           skip_fetch: true | ||||
|           skip_checkout: true | ||||
|       - name: Check localization build | ||||
|       - name: Localization build dry run | ||||
|         working-directory: frontend | ||||
|         run: yarn localize:build | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										54
									
								
								.github/workflows/weblate-reformat.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.github/workflows/weblate-reformat.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | ||||
| name: Weblate Reformat | ||||
| on: | ||||
|   pull_request_target: | ||||
|     paths: | ||||
|       - 'frontend/xliff/**' | ||||
|       - '.github/workflows/weblate-reformat.yaml' | ||||
| 
 | ||||
|     branches: | ||||
|       - 'weblate' | ||||
| 
 | ||||
| jobs: | ||||
|   setup-and-build: | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       # Give the default GITHUB_TOKEN write permission to commit and push the | ||||
|       # added or changed files to the repository. | ||||
|       contents: write | ||||
| 
 | ||||
|     steps: | ||||
|       # Setup: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           repository: ${{ github.event.pull_request.head.repo.full_name }} | ||||
|           ref: ${{ github.head_ref }} | ||||
| 
 | ||||
|       - name: Setup Node | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: '18' | ||||
|           cache: 'yarn' | ||||
|           cache-dependency-path: frontend/yarn.lock | ||||
|       - name: Install dependencies | ||||
|         working-directory: frontend | ||||
|         env: | ||||
|           HUSKY: 0 | ||||
|         run: yarn install --frozen-lockfile | ||||
|     | ||||
|       # Localize: | ||||
|       - name: Reformat XLIFF files | ||||
|         working-directory: frontend | ||||
|         run: yarn localize:extract | ||||
| 
 | ||||
|       - name: Rebuild frontend templates | ||||
|         working-directory: frontend | ||||
|         run: yarn localize:build | ||||
| 
 | ||||
|       - name: Commit changes to upstream branch | ||||
|         uses: stefanzweifel/git-auto-commit-action@v5 | ||||
|         with: | ||||
|           commit_message: Format Weblate Changes | ||||
|           file_pattern: '**/*.xlf **/__generated__/locales/*.ts' | ||||
|           skip_fetch: true | ||||
|           skip_checkout: true | ||||
| @ -1,5 +1,4 @@ | ||||
| site_name: Browsertrix Docs | ||||
| site_url: !ENV SITE_URL | ||||
| repo_url: https://github.com/webrecorder/browsertrix-cloud/ | ||||
| repo_name: Browsertrix | ||||
| edit_uri: edit/main/frontend/docs/docs/ | ||||
|  | ||||
| @ -32,7 +32,7 @@ module.exports = { | ||||
|         parser: "xml", | ||||
|         proseWrap: "never", | ||||
|         printWidth: Infinity, | ||||
|         xmlSortAttributesByKey: true, | ||||
|         xmlSortAttributesByKey: false, | ||||
|         xmlWhitespaceSensitivity: "preserve", | ||||
|         xmlSelfClosingSpace: false, | ||||
|       }, | ||||
|  | ||||
| @ -6,6 +6,7 @@ let file = fs.readFileSync("yarn.lock", "utf8"); | ||||
| let json = lockfile.parse(file); | ||||
| 
 | ||||
| console.log( | ||||
|   Object.entries(json.object).find(([package]) => package.startsWith("@playwright/test"))[1] | ||||
|     .version, | ||||
|   Object.entries(json.object).find(([pkg]) => | ||||
|     pkg.startsWith("@playwright/test"), | ||||
|   )[1].version, | ||||
| ); | ||||
|  | ||||
							
								
								
									
										1304
									
								
								frontend/src/__generated__/locales/es.ts
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1304
									
								
								frontend/src/__generated__/locales/es.ts
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -257,7 +257,7 @@ export class WorkflowEditor extends BtrixElement { | ||||
|     FormState["scheduleType"], | ||||
|     string | ||||
|   > = { | ||||
|     date: msg("Run on a specific date & time"), | ||||
|     date: msg("Run on a specific date and time"), | ||||
|     cron: msg("Run on a recurring basis"), | ||||
|     none: msg("No schedule"), | ||||
|   }; | ||||
| @ -656,7 +656,7 @@ export class WorkflowEditor extends BtrixElement { | ||||
|         }} | ||||
|       > | ||||
|         <sl-icon slot="suffix" name="chevron-double-right"></sl-icon> | ||||
|         ${msg("Review & Save")} | ||||
|         ${msg(html`Review & Save`)} | ||||
|       </sl-button> | ||||
|     `;
 | ||||
|   } | ||||
|  | ||||
| @ -461,7 +461,7 @@ export class WorkflowList extends LitElement { | ||||
| 
 | ||||
|   render() { | ||||
|     return html` <div class="listHeader row">
 | ||||
|         <div class="col">${msg("Name & Schedule")}</div> | ||||
|         <div class="col">${msg(html`Name & Schedule`)}</div> | ||||
|         <div class="col">${msg("Latest Crawl")}</div> | ||||
|         <div class="col">${msg("Total Size")}</div> | ||||
|         <div class="col">${msg("Last Modified")}</div> | ||||
|  | ||||
| @ -348,7 +348,7 @@ export class WorkflowDetail extends BtrixElement { | ||||
|               await this.cancel(); | ||||
|               this.openDialogName = undefined; | ||||
|             }} | ||||
|             >${msg("Cancel & Discard Crawl")}</sl-button | ||||
|             >${msg(html`Cancel & Discard Crawl`)}</sl-button | ||||
|           > | ||||
|         </div> | ||||
|       </btrix-dialog> | ||||
| @ -677,7 +677,7 @@ export class WorkflowDetail extends BtrixElement { | ||||
|                 @click=${() => (this.openDialogName = "cancel")} | ||||
|               > | ||||
|                 <sl-icon name="x-octagon" slot="prefix"></sl-icon> | ||||
|                 ${msg("Cancel & Discard Crawl")} | ||||
|                 ${msg(html`Cancel & Discard Crawl`)} | ||||
|               </sl-menu-item> | ||||
|             `,
 | ||||
|             () => html` | ||||
|  | ||||
| @ -508,7 +508,7 @@ export class WorkflowsList extends BtrixElement { | ||||
|             @click=${() => void this.cancel(workflow.lastCrawlId)} | ||||
|           > | ||||
|             <sl-icon name="x-octagon" slot="prefix"></sl-icon> | ||||
|             ${msg("Cancel & Discard Crawl")} | ||||
|             ${msg(html`Cancel & Discard Crawl`)} | ||||
|           </sl-menu-item> | ||||
|         `,
 | ||||
|       )} | ||||
|  | ||||
| @ -12,10 +12,10 @@ const infoText: Partial<Record<Field, string | TemplateResult>> = { | ||||
|     "Adds a hard limit on the number of pages that will be crawled.", | ||||
|   ), | ||||
|   crawlTimeoutMinutes: msg( | ||||
|     `Gracefully stop archiving after the specified amount of time has elapsed.`, | ||||
|     `Gracefully stop the crawler after a specified time limit.`, | ||||
|   ), | ||||
|   maxCrawlSizeGB: msg( | ||||
|     `Gracefully stop archiving after the specified amount of data has been captured.`, | ||||
|     `Gracefully stop the crawler after a specified size limit.`, | ||||
|   ), | ||||
|   pageLoadTimeoutSeconds: msg( | ||||
|     `Limits amount of time to wait for a page to load. Behaviors will run after this timeout only if the page is partially or fully loaded.`, | ||||
| @ -33,7 +33,7 @@ const infoText: Partial<Record<Field, string | TemplateResult>> = { | ||||
|     msg(`Choose a custom profile to make use of saved cookies and logged-in
 | ||||
|   accounts. Note that websites may log profiles out after a period of time.`),
 | ||||
|   crawlerChannel: msg( | ||||
|     `Choose a Browsertrix Crawler release channel. If available, other versions may provide new/experimental crawling features.`, | ||||
|     `Choose a Browsertrix Crawler Release Channel. If available, other versions may provide new/experimental crawling features.`, | ||||
|   ), | ||||
|   blockAds: msg( | ||||
|     html`Blocks advertising content from being loaded. Uses
 | ||||
|  | ||||
							
								
								
									
										2989
									
								
								frontend/xliff/es.xlf
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2989
									
								
								frontend/xliff/es.xlf
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user