Compare commits
4 Commits
5f8264cda8
...
79944180d5
Author | SHA1 | Date | |
---|---|---|---|
79944180d5 | |||
6cd33ac06d | |||
e60da27cd5 | |||
c57de2492e |
36
golangServer/go.mod
Normal file
36
golangServer/go.mod
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
module example.com/m
|
||||||
|
|
||||||
|
go 1.24.0
|
||||||
|
|
||||||
|
require (
|
||||||
|
cloud.google.com/go v0.116.0 // indirect
|
||||||
|
cloud.google.com/go/auth v0.13.0 // indirect
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.6 // indirect
|
||||||
|
cloud.google.com/go/compute/metadata v0.6.0 // indirect
|
||||||
|
cloud.google.com/go/longrunning v0.6.2 // indirect
|
||||||
|
cloud.google.com/go/translate v1.12.3 // indirect
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
|
github.com/google/s2a-go v0.1.8 // indirect
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
|
||||||
|
github.com/googleapis/gax-go/v2 v2.14.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
|
||||||
|
go.opentelemetry.io/otel v1.29.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/metric v1.29.0 // indirect
|
||||||
|
go.opentelemetry.io/otel/trace v1.29.0 // indirect
|
||||||
|
golang.org/x/crypto v0.31.0 // indirect
|
||||||
|
golang.org/x/net v0.33.0 // indirect
|
||||||
|
golang.org/x/oauth2 v0.24.0 // indirect
|
||||||
|
golang.org/x/sync v0.10.0 // indirect
|
||||||
|
golang.org/x/sys v0.28.0 // indirect
|
||||||
|
golang.org/x/text v0.21.0 // indirect
|
||||||
|
golang.org/x/time v0.8.0 // indirect
|
||||||
|
google.golang.org/api v0.214.0 // indirect
|
||||||
|
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 // indirect
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
|
||||||
|
google.golang.org/grpc v1.67.3 // indirect
|
||||||
|
google.golang.org/protobuf v1.35.2 // indirect
|
||||||
|
)
|
61
golangServer/go.sum
Normal file
61
golangServer/go.sum
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
|
||||||
|
cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
|
||||||
|
cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs=
|
||||||
|
cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q=
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU=
|
||||||
|
cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8=
|
||||||
|
cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
|
||||||
|
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
|
||||||
|
cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc=
|
||||||
|
cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI=
|
||||||
|
cloud.google.com/go/translate v1.12.3 h1:XJ7LipYJi80BCgVk2lx1fwc7DIYM6oV2qx1G4IAGQ5w=
|
||||||
|
cloud.google.com/go/translate v1.12.3/go.mod h1:qINOVpgmgBnY4YTFHdfVO4nLrSBlpvlIyosqpGEgyEg=
|
||||||
|
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||||
|
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
|
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||||
|
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
|
github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM=
|
||||||
|
github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA=
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw=
|
||||||
|
github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA=
|
||||||
|
github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o=
|
||||||
|
github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
|
||||||
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
|
||||||
|
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
|
||||||
|
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
|
||||||
|
go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=
|
||||||
|
go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=
|
||||||
|
go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=
|
||||||
|
go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=
|
||||||
|
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
||||||
|
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
||||||
|
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
|
||||||
|
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
|
||||||
|
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
|
||||||
|
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||||
|
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
||||||
|
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
|
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
||||||
|
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
|
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
||||||
|
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
||||||
|
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
|
||||||
|
golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||||
|
google.golang.org/api v0.214.0 h1:h2Gkq07OYi6kusGOaT/9rnNljuXmqPnaig7WGPmKbwA=
|
||||||
|
google.golang.org/api v0.214.0/go.mod h1:bYPpLG8AyeMWwDU6NXoB00xC0DFkikVvd5MfwoxjLqE=
|
||||||
|
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk=
|
||||||
|
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697 h1:pgr/4QbFyktUv9CtQ/Fq4gzEE6/Xs7iCXbktaGzLHbQ=
|
||||||
|
google.golang.org/genproto/googleapis/api v0.0.0-20241118233622-e639e219e697/go.mod h1:+D9ySVjN8nY8YCVjc5O7PZDIdZporIDY3KaGfJunh88=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY=
|
||||||
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
|
||||||
|
google.golang.org/grpc v1.67.3 h1:OgPcDAFKHnH8X3O4WcO4XUc8GRDeKsKReqbQtiCj7N8=
|
||||||
|
google.golang.org/grpc v1.67.3/go.mod h1:YGaHCc6Oap+FzBJTZLBzkGSYt/cvGPFTPxkn7QfSU8s=
|
||||||
|
google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=
|
||||||
|
google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
101
golangServer/testing.go
Normal file
101
golangServer/testing.go
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
translate "cloud.google.com/go/translate/apiv3"
|
||||||
|
"cloud.google.com/go/translate/apiv3/translatepb"
|
||||||
|
)
|
||||||
|
|
||||||
|
const project_id string = "india-translate-testing-452100"
|
||||||
|
|
||||||
|
var lang_codes []string = []string{
|
||||||
|
"hi", // Hindi
|
||||||
|
"bn", // Bengali
|
||||||
|
"mr", // Marathi
|
||||||
|
"ta", // Tamil
|
||||||
|
"te", // Telugu
|
||||||
|
"ml", // Malayalam
|
||||||
|
"kn", // Kannada
|
||||||
|
"gu", // Gujarati
|
||||||
|
"or", // Oriya
|
||||||
|
"ur", // Urdu
|
||||||
|
"lus", // Mizo
|
||||||
|
"as", // Assamese
|
||||||
|
"pa", // Punjabi
|
||||||
|
"mai", // Maithili
|
||||||
|
"mwr", // Marwari
|
||||||
|
"sat", // Santali
|
||||||
|
"ne", // Nepali
|
||||||
|
"gom", // Konkani
|
||||||
|
"tcy", // Tulu
|
||||||
|
"bho", // Bhojpuri
|
||||||
|
"doi", // Dogri
|
||||||
|
"mni-Mtei", // Manipuri
|
||||||
|
"sd", // Sindhi
|
||||||
|
"awa", // Awadhi
|
||||||
|
}
|
||||||
|
|
||||||
|
func translateText(text string, targetLang string) (result string, err error) {
|
||||||
|
return translateTextHelper(project_id, "en-US", targetLang, text)
|
||||||
|
}
|
||||||
|
|
||||||
|
func translateTextHelper(projectID string, sourceLang string, targetLang string, text string) (string, error) {
|
||||||
|
// projectID := "my-project-id"
|
||||||
|
// sourceLang := "en-US"
|
||||||
|
// targetLang := "fr"
|
||||||
|
// text := "Text you wish to translate"
|
||||||
|
|
||||||
|
// Instantiates a client
|
||||||
|
ctx := context.Background()
|
||||||
|
client, err := translate.NewTranslationClient(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("NewTranslationClient: %w", err)
|
||||||
|
}
|
||||||
|
defer client.Close()
|
||||||
|
|
||||||
|
// Construct request
|
||||||
|
req := &translatepb.TranslateTextRequest{
|
||||||
|
Parent: fmt.Sprintf("projects/%s/locations/global", projectID),
|
||||||
|
SourceLanguageCode: sourceLang,
|
||||||
|
TargetLanguageCode: targetLang,
|
||||||
|
MimeType: "text/plain", // Mime types: "text/plain", "text/html"
|
||||||
|
Contents: []string{text},
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := client.TranslateText(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("TranslateText: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display the translation for each input text provided
|
||||||
|
return resp.GetTranslations()[0].GetTranslatedText(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func handler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
queries := r.URL.Query()
|
||||||
|
toTranslate := queries["query"][0]
|
||||||
|
|
||||||
|
langToTranslation := make(map[string]string)
|
||||||
|
for _, lang_code := range lang_codes {
|
||||||
|
translation, err := translateText(toTranslate, lang_code)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
langToTranslation[lang_code] = translation
|
||||||
|
}
|
||||||
|
|
||||||
|
langToTranslationJson, _ := json.Marshal(langToTranslation)
|
||||||
|
fmt.Fprintf(w, "%v", string(langToTranslationJson))
|
||||||
|
|
||||||
|
// fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
http.HandleFunc("/", handler)
|
||||||
|
log.Fatal(http.ListenAndServe(":9090", nil))
|
||||||
|
}
|
25
index.html
25
index.html
@@ -3,9 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
<title>Indian Translate</title>
|
<title>Indian Translate</title>
|
||||||
<script src="https://d3js.org/d3.v7.min.js"></script>
|
<script src="https://d3js.org/d3.v7.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/@turf/turf@7/turf.min.js" charset="utf-8"></script>
|
<script src="https://cdn.jsdelivr.net/npm/@turf/turf@7/turf.min.js" charset="utf-8"></script>
|
||||||
|
<script src="https://unpkg.com/htmx.org@2.0.4" integrity="sha384-HGfztofotfshcF7+8n44JQL2oJmowVChPTg48S+jvZoztPfvwD79OC/LTtG6dMp+" crossorigin="anonymous"></script>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
background-color: #f4f4f4;
|
background-color: #f4f4f4;
|
||||||
@@ -35,12 +40,17 @@
|
|||||||
}
|
}
|
||||||
.languageText {
|
.languageText {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
font-family: sans-serif;
|
font-family: "Noto Sans";
|
||||||
font-size:1.25em;
|
font-size:1.25em;
|
||||||
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
.language:hover ~ .languageText {
|
.language:hover ~ .languageText {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
.testClass:hover {
|
||||||
|
fill: red;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
.district {
|
.district {
|
||||||
stroke: white;
|
stroke: white;
|
||||||
@@ -61,18 +71,19 @@
|
|||||||
<body>
|
<body>
|
||||||
<main>
|
<main>
|
||||||
<section id="textStuff">
|
<section id="textStuff">
|
||||||
<h1>Indian Translate</h1>
|
<h1>Indian Translate</h1>
|
||||||
|
<form hx-get="/submit" hx-on::after-request="updateTranslations(event.detail.xhr.response)" class="translateForm" method="get">
|
||||||
<form class="translateForm" action="/submit" method="get">
|
<label for="query">Enter text to translate:</label>
|
||||||
<label for="query">Enter text to translate:</label>
|
<input type="text" name="query" id="query" required/>
|
||||||
<input type="text" name="query" id="query" required/>
|
<input type="submit" value="Translate"/>
|
||||||
<input type="submit" value="Translate"/>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<svg id = "indiaMap" width="1000" height="1000"></svg>
|
<svg id = "indiaMap" width="1000" height="1000"></svg>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="index.js"></script>
|
<script src="index.js"></script>
|
||||||
|
<script src="updateTranslations.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
61
index.js
61
index.js
@@ -28,31 +28,31 @@ const awadhiColor = "#847fb5" // Awadhi
|
|||||||
const unavailLangColor = "#555555"
|
const unavailLangColor = "#555555"
|
||||||
|
|
||||||
const languages = {
|
const languages = {
|
||||||
tamil: {name: "Tamil", color: tamilColor, districts: []},
|
tamil: {name: "Tamil", color: tamilColor, code: "ta", districts: []},
|
||||||
malayalam: {name: "Malayalam", color: malayalamColor, districts: []},
|
malayalam: {name: "Malayalam", color: malayalamColor, code: "ml", districts: []},
|
||||||
kannada: {name: "Kannada", color: kannadaColor, districts: []},
|
kannada: {name: "Kannada", color: kannadaColor, code: "kn", districts: []},
|
||||||
telugu: {name: "Telugu", color: teluguColor, districts: []},
|
telugu: {name: "Telugu", color: teluguColor, code: "te", districts: []},
|
||||||
marathi: {name: "Marathi", color: marathiColor, districts: []},
|
marathi: {name: "Marathi", color: marathiColor, code: "mr", districts: []},
|
||||||
konkani: {name: "Konkani", color: konkaniColor, districts: []},
|
konkani: {name: "Konkani", color: konkaniColor, code: "gom", districts: []},
|
||||||
hindi: {name: "Hindi", color: hindiColor, districts: []},
|
hindi: {name: "Hindi", color: hindiColor, code: "hi", districts: []},
|
||||||
gujarati: {name: "Gujarati", color: gujaratiColor, districts: []},
|
gujarati: {name: "Gujarati", color: gujaratiColor, code: "gu", districts: []},
|
||||||
marwari: {name: "Marwari", color: marwariColor, districts: []},
|
marwari: {name: "Marwari", color: marwariColor, code: "mwr", districts: []},
|
||||||
oriya: {name: "Oriya", color: oriyaColor, districts: []},
|
oriya: {name: "Oriya", color: oriyaColor, code: "or", districts: []},
|
||||||
bengali: {name: "Bengali", color: bengaliColor, districts: []},
|
bengali: {name: "Bengali", color: bengaliColor, code: "bn", districts: []},
|
||||||
punjabi: {name: "Punjabi", color: punjabiColor, districts: []},
|
punjabi: {name: "Punjabi", color: punjabiColor, code: "pa", districts: []},
|
||||||
mizo: {name: "Mizo", color: mizoColor, districts: []},
|
mizo: {name: "Mizo", color: mizoColor, code: "lus", districts: []},
|
||||||
assamese: {name: "Assamese", color: assameseColor, districts: []},
|
assamese: {name: "Assamese", color: assameseColor, code: "as", districts: []},
|
||||||
bhojpuri: {name: "Bhojpuri", color: bhojpuriColor, districts: []},
|
bhojpuri: {name: "Bhojpuri", color: bhojpuriColor, code: "bho", districts: []},
|
||||||
manipuri: {name: "Manipuri", color: manipuriColor, districts: []},
|
manipuri: {name: "Manipuri", color: manipuriColor, code: "mni-Mtei", districts: []},
|
||||||
dogri: {name: "Dogri", color: dogriColor, districts: []},
|
dogri: {name: "Dogri", color: dogriColor, code: "doi", districts: []},
|
||||||
nepali: {name: "Nepali", color: nepaliColor, districts: []},
|
nepali: {name: "Nepali", color: nepaliColor, code: "ne", districts: []},
|
||||||
urdu: {name: "Urdu", color: urduColor, districts: []},
|
urdu: {name: "Urdu", color: urduColor, code: "ur", districts: []},
|
||||||
tulu: {name: "Tulu", color: tuluColor, districts: []},
|
tulu: {name: "Tulu", color: tuluColor, code: "tcy", districts: []},
|
||||||
maithali: {name: "Maithali", color: maithaliColor, districts: []},
|
maithali: {name: "Maithali", color: maithaliColor, code: "mai", districts: []},
|
||||||
santali: {name: "Santali", color: santaliColor, districts: []},
|
santali: {name: "Santali", color: santaliColor, code: "sat", districts: []},
|
||||||
sindhi: {name: "Sindhi", color: sindhiColor, districts: []},
|
sindhi: {name: "Sindhi", color: sindhiColor, code: "sd", districts: []},
|
||||||
awadhi: {name: "Awadhi", color: awadhiColor, districts: []},
|
awadhi: {name: "Awadhi", color: awadhiColor, code: "awa", districts: []},
|
||||||
unavail: {name: "Unavailable", color: unavailLangColor, districts: []},
|
unavail: {name: "Unavailable", color: unavailLangColor, code: "unavailable", districts: []},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Credit: https://www.artcraftblend.com/blogs/colors/shades-of-pastel
|
// Credit: https://www.artcraftblend.com/blogs/colors/shades-of-pastel
|
||||||
@@ -271,6 +271,17 @@ function drawMap(world) {
|
|||||||
|
|
||||||
let allLangs = []
|
let allLangs = []
|
||||||
|
|
||||||
|
const coordinates = [77.69916967457782,23.389970772934166];
|
||||||
|
const [xCoord, yCoord] = projection(coordinates);
|
||||||
|
|
||||||
|
svg.append("text")
|
||||||
|
.attr("x", xCoord)
|
||||||
|
.attr("y", yCoord)
|
||||||
|
.attr("class", "testClass")
|
||||||
|
.attr("text-anchor", "middle")
|
||||||
|
.attr("font-size", "12px")
|
||||||
|
.attr("fill", "black")
|
||||||
|
.text("Hello, Map!");
|
||||||
// for (const [langId,lang] of Object.entries(languages)) {
|
// for (const [langId,lang] of Object.entries(languages)) {
|
||||||
// let geojson = {
|
// let geojson = {
|
||||||
// "type": "FeatureCollection",
|
// "type": "FeatureCollection",
|
||||||
|
3
updateTranslations.js
Normal file
3
updateTranslations.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function updateTranslations(response) {
|
||||||
|
console.log(response)
|
||||||
|
}
|
Reference in New Issue
Block a user