Skip to content

Commit 325d3e1

Browse files
committed
Update scripts to handle tranlsations
1 parent d7f0545 commit 325d3e1

File tree

6 files changed

+242
-141
lines changed

6 files changed

+242
-141
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ doc/source/savefig/
145145

146146
# Web & Translations #
147147
##############################
148-
web/pandas-translations.tar.gz
149148
web/translations/
150149
web/pandas/pt/
151150
web/pandas/es/

web/pandas/_templates/layout.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!DOCTYPE html>
2-
<html>
2+
<html lang="{{ selected_language }}">
33
<head>
44
<script defer data-domain="pandas.pydata.org" src="https://views.scientific-python.org/js/script.js"></script>
55
<title>pandas - Python Data Analysis Library</title>
@@ -15,6 +15,8 @@
1515
href="{{ base_url }}{{ stylesheet }}">
1616
{% endfor %}
1717
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">
18+
<meta id="languages" data-lang="{{ languages }}">
19+
<script src="{{ base_url }}static/js/language_switcher.js"></script>
1820
</head>
1921
<body>
2022
<header>
@@ -50,6 +52,8 @@
5052
</li>
5153
{% endif %}
5254
{% endfor %}
55+
<!-- Language switcher -->
56+
<div id="language-switcher-container"></div>
5357
</ul>
5458
</div>
5559
</div>

web/pandas/config.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,10 @@ sponsors:
204204
kind: partner
205205
roadmap:
206206
pdeps_path: pdeps
207+
translations:
208+
url: https://github.com/Scientific-Python-Translations/pandas-translations/archive/refs/heads/main.tar.gz
209+
folder: translations
210+
default_language: 'en'
211+
default_prefix: ''
212+
ignore:
213+
- docs/
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
window.addEventListener("DOMContentLoaded", function() {
2+
var BASE_URL = location.protocol + "//" + location.hostname + ":" + location.port
3+
console.log("HOSTANME", BASE_URL);
4+
var CURRENT_LANGUAGE = document.documentElement.lang;
5+
var languages = JSON.parse(document.getElementById("languages").getAttribute('data-lang').replace(/'/g, '"'));
6+
7+
const language_names = {
8+
'en': 'English',
9+
'es': 'Español',
10+
'fr': 'Français',
11+
'pt': 'Português'
12+
}
13+
14+
// Create dropdown menu
15+
function makeDropdown(options) {
16+
var dropdown = document.createElement("li");
17+
dropdown.classList.add("nav-item");
18+
dropdown.classList.add("dropdown");
19+
20+
var link = document.createElement("a");
21+
link.classList.add("nav-link");
22+
link.classList.add("dropdown-toggle");
23+
link.setAttribute("data-bs-toggle", "dropdown");
24+
link.setAttribute("href", "#");
25+
link.setAttribute("role", "button");
26+
link.setAttribute("aria-haspopup", "true");
27+
link.setAttribute("aria-expanded", "false");
28+
link.textContent = language_names[CURRENT_LANGUAGE];
29+
30+
var dropdownMenu = document.createElement("div");
31+
dropdownMenu.classList.add("dropdown-menu");
32+
33+
options.forEach(function(i) {
34+
var dropdownItem = document.createElement("a");
35+
dropdownItem.classList.add("dropdown-item");
36+
dropdownItem.textContent = language_names[i] || i.toUpperCase();
37+
dropdownItem.setAttribute("href", "#");
38+
dropdownItem.addEventListener("click", function() {
39+
if (i == 'en') {
40+
URL_LANGUAGE = '/';
41+
} else {
42+
URL_LANGUAGE = '/' + i;
43+
}
44+
45+
var PATHNAME = location.pathname.replace('/' + CURRENT_LANGUAGE + '/', '')
46+
var newUrl = BASE_URL + URL_LANGUAGE + PATHNAME
47+
window.location.href = newUrl;
48+
});
49+
dropdownMenu.appendChild(dropdownItem);
50+
});
51+
52+
dropdown.appendChild(link);
53+
dropdown.appendChild(dropdownMenu);
54+
return dropdown;
55+
}
56+
57+
var container = document.getElementById("language-switcher-container");
58+
if (container) {
59+
var dropdown = makeDropdown(languages);
60+
container.appendChild(dropdown);
61+
}
62+
});

web/pandas_translations.py

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)