Skip to content

docs(i18n): add 10-language README translations#3

Merged
epicsagas merged 1 commit into
mainfrom
docs/i18n-readme
Jun 6, 2026
Merged

docs(i18n): add 10-language README translations#3
epicsagas merged 1 commit into
mainfrom
docs/i18n-readme

Conversation

@epicsagas

Copy link
Copy Markdown
Owner

Summary

Add multilingual README translations for 10 languages to improve global accessibility.

Languages Added

# Language Code
1 한국어 ko
2 日本語 ja
3 简体中文 zh-Hans
4 繁體中文 zh-Hant
5 Español es
6 Français fr
7 Deutsch de
8 Português pt
9 Русский ru
10 Italiano it

Structure

  • docs/i18n/<lang>/README.md — Structure B (10 languages)
  • Language switcher added to English README and all translations
  • Source commit tracked in each translation header
  • Code blocks, URLs, and technical terms preserved in English

Translation Rules Applied

  • ✅ Code blocks unchanged
  • ✅ URLs and image paths preserved
  • ✅ Technical terms kept in English (Rust, SQLite, ONNX, MCP, etc.)
  • ✅ Natural, fluent translations (not word-by-word)
  • ✅ Same markdown structure and heading hierarchy

@epicsagas epicsagas merged commit e244383 into main Jun 6, 2026
15 checks passed
@epicsagas epicsagas deleted the docs/i18n-readme branch June 6, 2026 05:13
epicsagas added a commit that referenced this pull request Jun 26, 2026
…ilarity) (#46)

* feat(graph): add CSR graph algorithms (pagerank, community, path, similarity)

Pure-Rust zero-dependency module (src/graph/algo/) compiled in behind the
existing `graph` feature — no Cargo.toml change, no petgraph. Closes the
Neo4j/GDS algorithm gap flagged in issue #45 Axis C.

- CsrGraph: directed weighted CSR snapshot with dangling-node detection
- pagerank: weighted power iteration with dangling-node redistribution
- community: connected components (union-find) + label propagation
- path: Dijkstra weighted shortest path (distance = -ln(weight))
- similarity: Jaccard, common neighbors, Adamic-Adar, link prediction

smart_recall's graph boost (W_GRAPH) now ranks the top-100 candidates by
true PageRank over their induced subgraph, replacing the approximate
degree-centrality neighbor-weight sum. The SQLite (recall.rs) and
PostgreSQL (pg.rs) recall paths share pagerank_default, permanently
removing the cross-backend boost-logic drift.

All algorithms validated by hand-computed unit tests (diamond PageRank,
jaccard 1/3, adamic-adar 1/ln(2), two-hop-beats-direct Dijkstra) plus
criterion benchmarks (PageRank 1000 nodes: ~4.9us). 570 tests pass,
clippy/fmt/rustdoc clean.

* docs(graph): record algorithm benchmark baseline, link from README

docs/benchmarks/graph.md captures the 2026-06-26 criterion measurements
(PageRank 1000 nodes: 4.87us, connected components 9.50us, Dijkstra 41us,
CSR build 727us) as the v1.0.0 baseline for issue #45 Axis A / ROADMAP #3.
README Benchmarks section now links to it and lists the new algorithm
benchmark groups.

* fix(graph): clamp edge weights in dijkstra to prevent negative cost

edge_cost now clamps weight to [SHORTEST_PATH_W_MIN, 1.0]. A
contract-violating weight > 1.0 previously produced -ln(w) < 0, a negative
edge cost that breaks Dijkstra's non-negative-edge assumption and silently
returns wrong shortest paths. It is now treated as maximal strength
(cost 0). Adds a regression test asserting no negative distances.

* test(graph): verify pagerank boost ranking in smart_recall

recall_graph_boost asserted only len()==2 despite a comment claiming the
boost was applied. Now also asserts the dangling sink outranks its source:
with hint=None and identical base scores the score difference is purely the
graph boost, so this is the one test exercising its ranking effect.
Normalizes the contract-violating weight 2.0 to 1.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant