Compare commits
5 Commits
7110b0e0e3
...
93ff0d172e
| Author | SHA1 | Date | |
|---|---|---|---|
| 93ff0d172e | |||
| f495d939cb | |||
| d8c2b22a46 | |||
| f65ea1dd8f | |||
| da993bf1aa |
@@ -33,7 +33,6 @@ type translationStruct struct {
|
||||
As string `db:"assamese" json:"as"`
|
||||
Pa string `db:"punjabi" json:"pa"`
|
||||
Mai string `db:"maithili" json:"mai"`
|
||||
Mwr string `db:"marwari" json:"mwr"`
|
||||
Sat string `db:"santali" json:"sat"`
|
||||
Ne string `db:"nepali" json:"ne"`
|
||||
Gom string `db:"konkani" json:"gom"`
|
||||
@@ -60,7 +59,6 @@ var lang_codes []string = []string{
|
||||
"as", // Assamese
|
||||
"pa", // Punjabi
|
||||
"mai", // Maithili
|
||||
"mwr", // Marwari
|
||||
"sat", // Santali
|
||||
"ne", // Nepali
|
||||
"gom", // Konkani
|
||||
@@ -99,7 +97,7 @@ func getCachedTranslation(data string) (bool, translationStruct) {
|
||||
}
|
||||
|
||||
func addToDatabase(translation translationStruct) {
|
||||
_, err := db.NamedExec(`INSERT INTO translations VALUES (:english, :hindi, :bengali, :marathi, :tamil, :telugu, :kannada, :malayalam, :oriya, :gujarati, :marwari, :urdu, :mizo, :assamese, :punjabi, :maithili, :santali, :nepali, :konkani, :tulu, :bhojpuri, :dogri, :manipuri, :sindhi, :awadhi)`, &translation)
|
||||
_, err := db.NamedExec(`INSERT INTO translations VALUES (:english, :hindi, :bengali, :marathi, :tamil, :telugu, :kannada, :malayalam, :oriya, :gujarati, :urdu, :mizo, :assamese, :punjabi, :maithili, :santali, :nepali, :konkani, :tulu, :bhojpuri, :dogri, :manipuri, :sindhi, :awadhi)`, &translation)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -157,10 +155,10 @@ func handler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
langToTranslation[lang_code] = translation
|
||||
}
|
||||
langToTranslation["en"] = toTranslate
|
||||
langToTranslationJson, _ := json.Marshal(langToTranslation)
|
||||
translation := translationStruct{}
|
||||
err := json.Unmarshal(langToTranslationJson, &translation)
|
||||
translation.En = toTranslate // langToTranslation doesn't contain the english value
|
||||
addToDatabase(translation)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
||||
7
how_to_update_language_boundaries.txt
Normal file
7
how_to_update_language_boundaries.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
(Very jank)
|
||||
1. Make changes in the code eg. changing the language of a state or district.
|
||||
2. Uncomment the snippet of code at the bottom of index.js. This is responsible for printing out the language boundaries as JSON.
|
||||
3. Get the JSON from the browser console, put it in a file, and un-minifiy it.
|
||||
4. Copy the resulting JSON's text into 'india_with_districts_with_languages.json'. Put it at the start of the file, replacing the old language boundaries.
|
||||
5. Fix any remaining errors that pop up (should be nothing major).
|
||||
a. If Tulu and Sindhi are not loading, it's because, for some reason, the JSON definition for these languages includes the district that they're spoken in (because they're only spoken in 1 district). So the code assumes that it's a _district_, rather than a _language_ definition.
|
||||
49
index.js
49
index.js
@@ -11,7 +11,6 @@ const languages = {
|
||||
konkani: {name: "Konkani", color: "#9b7cff", code: "gom", districts: []},
|
||||
hindi: {name: "Hindi", color: "#d17cff", code: "hi", districts: []},
|
||||
gujarati: {name: "Gujarati", color: "#7cffee", code: "gu", districts: []},
|
||||
marwari: {name: "Marwari", color: "#7bc4c9", code: "mwr", districts: []},
|
||||
oriya: {name: "Oriya", color: "#9bcc9f", code: "or", districts: []},
|
||||
bengali: {name: "Bengali", color: "#bf9a77", code: "bn", districts: []},
|
||||
punjabi: {name: "Punjabi", color: "#e84a35", code: "pa", districts: []},
|
||||
@@ -40,7 +39,7 @@ const state2lang = {
|
||||
"Goa": languages["konkani"],
|
||||
"Odisha": languages["oriya"],
|
||||
"Gujarat": languages["gujarati"],
|
||||
"Rajasthan": languages["marwari"],
|
||||
"Rajasthan": languages["hindi"],
|
||||
"Chhattisgarh": languages["hindi"],
|
||||
"Jharkhand": languages["hindi"], // DEFAULT
|
||||
"West Bengal": languages["bengali"],
|
||||
@@ -280,10 +279,8 @@ function drawMap(world) {
|
||||
d3.select(this).remove()
|
||||
}
|
||||
})
|
||||
.text(function(d) {
|
||||
if (stateOrDistrictOrLanguage(d) == "language") {
|
||||
return "(" + d.properties.lang_name + ")";
|
||||
} else {
|
||||
.each(function(d) {
|
||||
if (!stateOrDistrictOrLanguage(d) == "language") {
|
||||
d3.select(this).remove() // Only add this attribute if the element is a language
|
||||
}
|
||||
});
|
||||
@@ -301,26 +298,26 @@ function drawMap(world) {
|
||||
.attr("font-size", "12px")
|
||||
.attr("fill", "black")
|
||||
.text("Hello, Map!");
|
||||
// for (const [langId,lang] of Object.entries(languages)) {
|
||||
// let geojson = {
|
||||
// "type": "FeatureCollection",
|
||||
// "features": lang.districts
|
||||
// };
|
||||
//
|
||||
// let outerBound = getOuterBoundaryPolygon(geojson.features)
|
||||
// outerBound["id"] = "lang" + lang.name
|
||||
// outerBound.properties["lang_name"]= lang.name
|
||||
// outerBound.properties["lang_code"]= lang.code
|
||||
// allLangs.push(outerBound);
|
||||
|
||||
// svg.append("path")
|
||||
// .datum(outerBound)
|
||||
// .attr("d", path)
|
||||
// .attr("fill", "none")
|
||||
// .attr("stroke", "red")
|
||||
// .attr("stroke-width", 2)
|
||||
// }
|
||||
// console.log(JSON.stringify(allLangs))
|
||||
// for (const [langId,lang] of Object.entries(languages)) {
|
||||
// let geojson = {
|
||||
// "type": "FeatureCollection",
|
||||
// "features": lang.districts
|
||||
// };
|
||||
//
|
||||
// let outerBound = getOuterBoundaryPolygon(geojson.features)
|
||||
// outerBound["id"] = "lang" + lang.name
|
||||
// outerBound.properties["lang_name"]= lang.name
|
||||
// outerBound.properties["lang_code"]= lang.code
|
||||
// allLangs.push(outerBound);
|
||||
//
|
||||
// svg.append("path")
|
||||
// .datum(outerBound)
|
||||
// .attr("d", path)
|
||||
// .attr("fill", "none")
|
||||
// .attr("stroke", "red")
|
||||
// .attr("stroke-width", 2)
|
||||
// }
|
||||
// console.log(JSON.stringify(allLangs))
|
||||
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
7
todo.txt
7
todo.txt
@@ -1,6 +1,7 @@
|
||||
1. REFACTOR
|
||||
2. Show language names as well, along with translation and romanization
|
||||
3. Figure out positioning of the different translations, show all of them instead of having to hover
|
||||
3. Figure out positioning of the different translations, show all of them instead of having to hover; for smaller languages it's hard to move the mouse around to see the full word.
|
||||
4. Better translations (some of them are just terrible with Google Translate - use the ai4bharat one instead?)
|
||||
4. Cache romanizations in DB
|
||||
5. General beautification
|
||||
6. TTS?
|
||||
6. General beautification
|
||||
7. TTS?
|
||||
|
||||
BIN
translations.db
BIN
translations.db
Binary file not shown.
@@ -212,7 +212,11 @@ def romanizeHandler():
|
||||
"sd": "sd",
|
||||
"ta": "ta",
|
||||
"te": "te",
|
||||
"ur": "ur"
|
||||
"ur": "ur",
|
||||
"tcy": "kn", # Tulu uses Kannada script
|
||||
"awa": "hi", # Awadhi uses Hindi script
|
||||
"doi": "hi", # Dogri uses Hindi script
|
||||
"bho": "hi", # Bhojpuri uses Hindi script
|
||||
}
|
||||
rtv = dict()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user