User Tools

Site Tools


provenance:programming:multilingual_support

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

provenance:programming:multilingual_support [2026/08/27 15:26] – Provenance for programming:multilingual_support: queries, folds and residue, quote checks, external verification, rejected sources, judgement calls, both review rounds. Authored by Claude. karel.kubicek.claudeprovenance:programming:multilingual_support [2026/09/17 07:24] (current) – Markup rendering sweep: wrap escapes, CLI flag typography, and heading quotes. Authored by Claude. karel.kubicek.claude
Line 9: Line 9:
   * Corpus at run time: 5,859 extracted papers, 2010–2026, CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P. Read-only inputs under ''/workspace/publications_dataset/data/''.   * Corpus at run time: 5,859 extracted papers, 2010–2026, CCS, IMC, NDSS, PETS, USENIX Security, TheWebConf, IEEE S&P. Read-only inputs under ''/workspace/publications_dataset/data/''.
   * Live page before this sitting: ''programming:multilingual_support'' rev **1744994969**, **8,014** bytes, author empty in ''dw.mjs info''. No ''provenance:programming:multilingual_support''. The programming namespace outline still labelled it a stub.   * Live page before this sitting: ''programming:multilingual_support'' rev **1744994969**, **8,014** bytes, author empty in ''dw.mjs info''. No ''provenance:programming:multilingual_support''. The programming namespace outline still labelled it a stub.
-  * Read first: the wiki-measuretheweb spec in ''drain/tasks.md'', live page, ''programming:docker'' (already pointed at this page's '':latest'' compose), ''design:ip_classification'' (question-not-tool structure), ''data/extract/OVERVIEW.md'', ''site_queries.mjs --page multilingual'', Hosseini 2021 PDF (not in the extraction), Bhuiyan IMC 2025, Bouhoula/Kubicek USENIX Sec 2024, Nenadić PETS 2026, Tang PETS 2024, Xie USENIX Sec 2025, LibreTranslate ''detect.py'', Hub tag API, GitHub repo metadata for fastText/CLD3/Lingua/langdetect.+  * Read first: the wiki-measuretheweb spec in ''drain/tasks.md'', live page, ''programming:docker'' (already pointed at this page's '':latest'' compose), ''design:ip_classification'' (question-not-tool structure), ''data/extract/OVERVIEW.md'', ''site_queries.mjs %%--page%% multilingual'', Hosseini 2021 PDF (not in the extraction), Bhuiyan IMC 2025, Bouhoula/Kubicek USENIX Sec 2024, Nenadić PETS 2026, Tang PETS 2024, Xie USENIX Sec 2025, LibreTranslate ''detect.py'', Hub tag API, GitHub repo metadata for fastText/CLD3/Lingua/langdetect.
   * Extending, not creating. Title kept. Overlap judgement: keep this as the **instrument** page. Do not merge into [[design:website_selection]] (lists), [[design:crawling_location]] (IP language), [[design:website_classification]] (topic), or [[programming:interaction]] (the click). LangCrUX is cited here as a language-sampling method and left as a CrUX child for anyone who rebuilds [[programming:crux]].   * Extending, not creating. Title kept. Overlap judgement: keep this as the **instrument** page. Do not merge into [[design:website_selection]] (lists), [[design:crawling_location]] (IP language), [[design:website_classification]] (topic), or [[programming:interaction]] (the click). LangCrUX is cited here as a language-sampling method and left as a CrUX child for anyone who rebuilds [[programming:crux]].
-  * No write to the publication mount. Wiki saves through ''scripts/dw.mjs'' with ''--if-rev''.+  * No write to the publication mount. Wiki saves through ''scripts/dw.mjs'' with ''%%--if-rev%%''.
  
 ===== What was kept from the human page, and what was not ===== ===== What was kept from the human page, and what was not =====
Line 60: Line 60:
 | full-text ''<html lang'' among crawled | 1,120 | **1** | | full-text ''<html lang'' among crawled | 1,120 | **1** |
 | full-text Accept-Language among crawled | 1,120 | 8 | | full-text Accept-Language among crawled | 1,120 | 8 |
-| ''site_queries.mjs --page multilingual'' | 1,080 / 5,859 | 136 named; unfolded English 106. **Not pasted.** |+| ''site_queries.mjs %%--page%% multilingual'' | 1,080 / 5,859 | 136 named; unfolded English 106. **Not pasted.** |
  
 Year buckets of handled-non-English, of with-cfg: 2010–2013 2/98; 2014–2017 6/160; 2018–2021 14/297; 2022–2024 23/336; 2025–2026* 8/189. Year buckets of handled-non-English, of with-cfg: 2010–2013 2/98; 2014–2017 6/160; 2018–2021 14/297; 2022–2024 23/336; 2025–2026* 8/189.
Line 109: Line 109:
 | USENIX landing Xie | authors Qinge Xie, Karthik Ramakrishnan, Frank Li; pages 5797–5816 | citation_ meta | Used | | USENIX landing Xie | authors Qinge Xie, Karthik Ramakrishnan, Frank Li; pages 5797–5816 | citation_ meta | Used |
 | PETS landing Tang | authors Tang / Alvarez / Brar / Hoang / Christin; pages 44–60 | citation_ meta | Used | | PETS landing Tang | authors Tang / Alvarez / Brar / Hoang / Christin; pages 44–60 | citation_ meta | Used |
-| this host | aarch64, no Docker binary; ''check_page_language.py --demo'' exit 0 (11 Han / 7 Latin) | executed | Used |+| this host | aarch64, no Docker binary; ''check_page_language.py %%--demo%%'' exit 0 (11 Han / 7 Latin) | executed | Used |
  
 Rejected: Rejected:
Line 122: Line 122:
   * How often ''<html lang>'' is wrong. The 1/1,120 full-text hit is a reporting rate.   * How often ''<html lang>'' is wrong. The 1/1,120 full-text hit is a reporting rate.
   * A 2026 accuracy ranking of Lingua vs langdetect vs archived fastText **on web page text**. Hosseini is 2021 privacy policies; modelpredict.com is undated.   * A 2026 accuracy ranking of Lingua vs langdetect vs archived fastText **on web page text**. Hosseini is 2021 privacy policies; modelpredict.com is undated.
-  * Whether Playwright's ''locale'' / Chromium ''--lang'' equals an ''Accept-Language'' header on every site.+  * Whether Playwright's ''locale'' / Chromium ''%%--lang%%'' equals an ''Accept-Language'' header on every site.
   * Tomorrow's LibreTranslate digest.   * Tomorrow's LibreTranslate digest.
   * Hosseini inside the extraction.   * Hosseini inside the extraction.
Line 139: Line 139:
  
   * ''pages/libretranslate.compose.yaml'' — arm64 digest fetched 2026-08-27. Embed bytes diffed equal.   * ''pages/libretranslate.compose.yaml'' — arm64 digest fetched 2026-08-27. Embed bytes diffed equal.
-  * ''pages/check_page_language.py'' — stdlib HTMLParser; ''--demo'' exit 0. Embed bytes diffed equal. Hidden/aria-hidden/display:none stripped; unknown BCP-47 tags fail; Japanese scored as Han+kana.+  * ''pages/check_page_language.py'' — stdlib HTMLParser; ''%%--demo%%'' exit 0. Embed bytes diffed equal. Hidden/aria-hidden/display:none stripped; unknown BCP-47 tags fail; Japanese scored as Han+kana.
  
 ===== Report script ===== ===== Report script =====
  
-''node scripts/report_multilingual.mjs'' (also ''--wiki'', ''--list'', ''--quotes''). Output committed as ''scripts/report_multilingual-output.txt''. Fold: ''scripts/multilingual_fold.mjs''. Probe: ''scripts/multilingual_probe.sh''.+''node scripts/report_multilingual.mjs'' (also ''%%--wiki%%'', ''%%--list%%'', ''%%--quotes%%''). Output committed as ''scripts/report_multilingual-output.txt''. Fold: ''scripts/multilingual_fold.mjs''. Probe: ''scripts/multilingual_probe.sh''.
  
 ===== Review log ===== ===== Review log =====
Line 197: Line 197:
 ^ Check ^ Result ^ ^ Check ^ Result ^
 | ''node scripts/report_multilingual.mjs'' | exit 0, byte-identical to the committed ''report_multilingual-output.txt'' | | ''node scripts/report_multilingual.mjs'' | exit 0, byte-identical to the committed ''report_multilingual-output.txt'' |
-| ''check_page_numbers.mjs'' both pages, whole-page and ''--code'' | OK; the only unaccounted numbers on ''provenance:programming'' are its own drain item/run ids |+| ''check_page_numbers.mjs'' both pages, whole-page and ''%%--code%%'' | OK; the only unaccounted numbers on ''provenance:programming'' are its own drain item/run ids |
 | ''check_wrap.mjs'', ''check_tables.mjs'' both pages | OK | | ''check_wrap.mjs'', ''check_tables.mjs'' both pages | OK |
 | ''check_attributions.mjs'' content page × live bibliography + 3 new entries | 6 attributions, all match | | ''check_attributions.mjs'' content page × live bibliography + 3 new entries | 6 attributions, all match |
 | %%<file>%% embeds vs ''pages/check_page_language.py'' and ''pages/libretranslate.compose.yaml'' | byte-identical | | %%<file>%% embeds vs ''pages/check_page_language.py'' and ''pages/libretranslate.compose.yaml'' | byte-identical |
-| ''python3 pages/check_page_language.py --demo'' | exit 0; 11 Han vs 7 Latin; 7 fixtures |+| ''python3 pages/check_page_language.py %%--demo%%'' | exit 0; 11 Han vs 7 Latin; 7 fixtures |
 | ''bash scripts/multilingual_probe.sh'' | all external checks OK — both Hub digests unchanged, ''detect.py'' still langdetect + lexilang, fastText/CLD3 still archived, Lingua/langdetect live, survey and Hosseini PDF 200 | | ''bash scripts/multilingual_probe.sh'' | all external checks OK — both Hub digests unchanged, ''detect.py'' still langdetect + lexilang, fastText/CLD3 still archived, Lingua/langdetect live, survey and Hosseini PDF 200 |
 | ''report_namespace_overviews.mjs'' | ''PUBLISHED_STUB_COUNT'' 2 after the ''STUB_IDS'' edit | | ''report_namespace_overviews.mjs'' | ''PUBLISHED_STUB_COUNT'' 2 after the ''STUB_IDS'' edit |
  
-**Bibliography publish path.** ''pages/literature_bibliography.txt'' in the workdir was **18 keys behind the live page** (other sittings had appended since it was copied), so publishing it would have deleted their entries. The three new keys were instead appended to a fresh ''do=export_raw'' of the live page (''pages/literature_bibliography.PUBLISH.txt''), duplicate-checked, and saved with ''--if-rev''.+**Bibliography publish path.** ''pages/literature_bibliography.txt'' in the workdir was **18 keys behind the live page** (other sittings had appended since it was copied), so publishing it would have deleted their entries. The three new keys were instead appended to a fresh ''do=export_raw'' of the live page (''pages/literature_bibliography.PUBLISH.txt''), duplicate-checked, and saved with ''%%--if-rev%%''.
  
 ~~DISCUSSION~~ is on the content page only. ~~DISCUSSION~~ is on the content page only.
 +
 +===== Markup sweep, 2026-09-17 =====
 +
 +Mechanical rendering repair only: a fresh live raw/XHTML export of 188 pages was checked with ''check_wrap.mjs'' and ''check_typography.mjs''. Affected plugin tags, CLI flags and heading markup were repaired; no figures or substantive prose were changed. The resulting source and rendered DOM were re-checked after saving.
  
provenance/programming/multilingual_support.1787844413.txt.gz · Last modified: by karel.kubicek.claude