replace zxq.co/ripple/hanayo
This commit is contained in:
commit
c3d206c173
10
.drone.yml
Normal file
10
.drone.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
workspace:
|
||||
base: /go
|
||||
path: src/github.com/osuYozora/hanayo
|
||||
|
||||
pipeline:
|
||||
build:
|
||||
image: golang:1.10
|
||||
pull: true
|
||||
commands:
|
||||
- go build -v .
|
19
.editorconfig
Normal file
19
.editorconfig
Normal file
|
@ -0,0 +1,19 @@
|
|||
# EditorConfig is awesome: http://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
|
||||
# YML, JSON: 2 spaces
|
||||
[*.{yaml,yml,json}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
# Go: 1 tab
|
||||
[*.go]
|
||||
indent_style = tab
|
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
node_modules
|
||||
hanayo
|
||||
hanayo.conf
|
||||
team.json
|
||||
static/profbackgrounds/*
|
||||
!static/profbackgrounds/.keep
|
||||
semantic/gulpfile.tmp.*.js
|
||||
/_
|
||||
static/oauth-apps/*
|
||||
!static/oauth-apps/.keep
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "website-docs"]
|
||||
path = website-docs
|
||||
url = https://github.com/osuripple/website-docs.git
|
385
2fa.go
Normal file
385
2fa.go
Normal file
|
@ -0,0 +1,385 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/pquerna/otp"
|
||||
"github.com/pquerna/otp/totp"
|
||||
"zxq.co/ripple/rippleapi/common"
|
||||
"zxq.co/x/rs"
|
||||
)
|
||||
|
||||
var allowedPaths = [...]string{
|
||||
"/logout",
|
||||
"/2fa_gateway",
|
||||
"/2fa_gateway/verify",
|
||||
"/2fa_gateway/clear",
|
||||
"/2fa_gateway/recover",
|
||||
"/favicon.ico",
|
||||
}
|
||||
|
||||
// middleware to deny all requests to non-allowed pages
|
||||
func twoFALock(c *gin.Context) {
|
||||
// check it's not a static file
|
||||
if len(c.Request.URL.Path) >= 8 && c.Request.URL.Path[:8] == "/static/" {
|
||||
c.Next()
|
||||
return
|
||||
}
|
||||
|
||||
ctx := getContext(c)
|
||||
if ctx.User.ID == 0 {
|
||||
c.Next()
|
||||
return
|
||||
}
|
||||
|
||||
sess := getSession(c)
|
||||
if v, _ := sess.Get("2fa_must_validate").(bool); !v {
|
||||
// * check 2fa is enabled.
|
||||
// if it is,
|
||||
// * check whether the current ip is found in the database.
|
||||
// if it is, move on and show the page.
|
||||
// if it isn't, set 2fa_must_validate
|
||||
// if it isn't, move on.
|
||||
if is2faEnabled(ctx.User.ID) > 0 {
|
||||
err := db.QueryRow("SELECT 1 FROM ip_user WHERE userid = ? AND ip = ? LIMIT 1", ctx.User.ID, clientIP(c)).Scan(new(int))
|
||||
if err != sql.ErrNoRows {
|
||||
c.Next()
|
||||
return
|
||||
}
|
||||
sess.Set("2fa_must_validate", true)
|
||||
} else {
|
||||
c.Next()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// check it's one of the few approved paths
|
||||
for _, a := range allowedPaths {
|
||||
if a == c.Request.URL.Path {
|
||||
sess.Save()
|
||||
c.Next()
|
||||
return
|
||||
}
|
||||
}
|
||||
addMessage(c, warningMessage{T(c, "You need to complete the 2fa challenge first.")})
|
||||
sess.Save()
|
||||
query := c.Request.URL.RawQuery
|
||||
if query != "" {
|
||||
query = "?" + query
|
||||
}
|
||||
c.Redirect(302, "/2fa_gateway?redir="+url.QueryEscape(c.Request.URL.Path+query))
|
||||
c.Abort()
|
||||
}
|
||||
|
||||
const (
|
||||
tfaEnabledTelegram = 1 << iota
|
||||
tfaEnabledTOTP
|
||||
)
|
||||
|
||||
// is2faEnabled checks 2fa is enabled for an user.
|
||||
func is2faEnabled(user int) int {
|
||||
var enabled int
|
||||
db.QueryRow("SELECT IFNULL((SELECT 1 FROM 2fa_telegram WHERE userid = ?), 0) | IFNULL((SELECT 2 FROM 2fa_totp WHERE userid = ? AND enabled = 1), 0) as x", user, user).
|
||||
Scan(&enabled)
|
||||
return enabled
|
||||
}
|
||||
|
||||
func tfaGateway(c *gin.Context) {
|
||||
sess := getSession(c)
|
||||
|
||||
redir := c.Query("redir")
|
||||
switch {
|
||||
case redir == "":
|
||||
redir = "/"
|
||||
case redir[0] != '/':
|
||||
redir = "/"
|
||||
}
|
||||
|
||||
i, _ := sess.Get("userid").(int)
|
||||
if i == 0 {
|
||||
c.Redirect(302, redir)
|
||||
}
|
||||
|
||||
// check 2fa hasn't been disabled
|
||||
e := is2faEnabled(i)
|
||||
if e == 0 {
|
||||
sess.Delete("2fa_must_validate")
|
||||
sess.Save()
|
||||
c.Redirect(302, redir)
|
||||
return
|
||||
}
|
||||
|
||||
if e == 1 {
|
||||
// check previous 2fa thing is still valid
|
||||
err := db.QueryRow("SELECT 1 FROM 2fa WHERE userid = ? AND ip = ? AND expire > ?",
|
||||
i, clientIP(c), time.Now().Unix()).Scan(new(int))
|
||||
if err != nil {
|
||||
db.Exec("INSERT INTO 2fa(userid, token, ip, expire, sent) VALUES (?, ?, ?, ?, 0);",
|
||||
i, strings.ToUpper(rs.String(8)), clientIP(c), time.Now().Add(time.Hour).Unix())
|
||||
http.Get("http://127.0.0.1:8888/update")
|
||||
}
|
||||
}
|
||||
|
||||
resp(c, 200, "2fa_gateway.html", &baseTemplateData{
|
||||
TitleBar: "Two Factor Authentication",
|
||||
KyutGrill: "2fa.jpg",
|
||||
RequestInfo: map[string]interface{}{
|
||||
"redir": redir,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func clientIP(c *gin.Context) string {
|
||||
ff := c.Request.Header.Get("CF-Connecting-IP")
|
||||
if ff != "" {
|
||||
return ff
|
||||
}
|
||||
return c.ClientIP()
|
||||
}
|
||||
|
||||
func clear2fa(c *gin.Context) {
|
||||
// basically deletes from db 2fa tokens, so that it gets regenerated when user hits gateway page
|
||||
sess := getSession(c)
|
||||
i, _ := sess.Get("userid").(int)
|
||||
if i == 0 {
|
||||
c.Redirect(302, "/")
|
||||
}
|
||||
db.Exec("DELETE FROM 2fa WHERE userid = ? AND ip = ?", i, clientIP(c))
|
||||
addMessage(c, successMessage{T(c, "A new code has been generated and sent to you through Telegram.")})
|
||||
sess.Save()
|
||||
c.Redirect(302, "/2fa_gateway")
|
||||
}
|
||||
|
||||
func verify2fa(c *gin.Context) {
|
||||
sess := getSession(c)
|
||||
i, _ := sess.Get("userid").(int)
|
||||
if i == 0 {
|
||||
c.Redirect(302, "/")
|
||||
}
|
||||
e := is2faEnabled(i)
|
||||
switch e {
|
||||
case 1:
|
||||
var id int
|
||||
var expire common.UnixTimestamp
|
||||
err := db.QueryRow("SELECT id, expire FROM 2fa WHERE userid = ? AND ip = ? AND token = ?", i, clientIP(c), strings.ToUpper(c.Query("token"))).Scan(&id, &expire)
|
||||
if err == sql.ErrNoRows {
|
||||
c.String(200, "1")
|
||||
return
|
||||
}
|
||||
if time.Now().After(time.Time(expire)) {
|
||||
c.String(200, "1")
|
||||
db.Exec("INSERT INTO 2fa(userid, token, ip, expire, sent) VALUES (?, ?, ?, ?, 0);",
|
||||
i, strings.ToUpper(rs.String(8)), clientIP(c), time.Now().Add(time.Hour).Unix())
|
||||
http.Get("http://127.0.0.1:8888/update")
|
||||
return
|
||||
}
|
||||
case 2:
|
||||
var secret string
|
||||
db.Get(&secret, "SELECT secret FROM 2fa_totp WHERE userid = ?", i)
|
||||
if !totp.Validate(strings.Replace(c.Query("token"), " ", "", -1), secret) {
|
||||
c.String(200, "1")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
loginUser(c, i)
|
||||
|
||||
db.Exec("DELETE FROM 2fa WHERE id = ?", i)
|
||||
c.String(200, "0")
|
||||
}
|
||||
|
||||
func loginUser(c *gin.Context, i int) {
|
||||
var d struct {
|
||||
Country string
|
||||
Flags uint
|
||||
}
|
||||
err := db.Get(&d, "SELECT users_stats.country, users.flags FROM users_stats "+
|
||||
"LEFT JOIN users ON users.id = users_stats.id WHERE users_stats.id = ?", i)
|
||||
if err != nil {
|
||||
c.Error(err)
|
||||
}
|
||||
|
||||
afterLogin(c, i, d.Country, d.Flags)
|
||||
|
||||
addMessage(c, successMessage{T(c, "You've been successfully logged in.")})
|
||||
|
||||
sess := getSession(c)
|
||||
sess.Delete("2fa_must_validate")
|
||||
sess.Save()
|
||||
}
|
||||
|
||||
func recover2fa(c *gin.Context) {
|
||||
sess := getSession(c)
|
||||
i, _ := sess.Get("userid").(int)
|
||||
if i == 0 {
|
||||
c.Redirect(302, "/")
|
||||
}
|
||||
e := is2faEnabled(i)
|
||||
if e != 2 {
|
||||
respEmpty(c, "Recover account", warningMessage{T(c, "Oh no you don't.")})
|
||||
return
|
||||
}
|
||||
resp(c, 200, "2fa_gateway_recover.html", &baseTemplateData{
|
||||
TitleBar: T(c, "Recover account"),
|
||||
KyutGrill: "2fa.jpg",
|
||||
})
|
||||
}
|
||||
|
||||
func recover2faSubmit(c *gin.Context) {
|
||||
sess := getSession(c)
|
||||
i, _ := sess.Get("userid").(int)
|
||||
if i == 0 {
|
||||
c.Redirect(302, "/")
|
||||
}
|
||||
if is2faEnabled(i) != 2 {
|
||||
respEmpty(c, T(c, "Recover account"), warningMessage{T(c, "Get out.")})
|
||||
return
|
||||
}
|
||||
|
||||
var codesRaw string
|
||||
db.Get(&codesRaw, "SELECT recovery FROM 2fa_totp WHERE userid = ?", i)
|
||||
var codes []string
|
||||
json.Unmarshal([]byte(codesRaw), &codes)
|
||||
|
||||
for k, v := range codes {
|
||||
if v == c.PostForm("recovery_code") {
|
||||
codes[k] = codes[len(codes)-1]
|
||||
codes = codes[:len(codes)-1]
|
||||
b, _ := json.Marshal(codes)
|
||||
db.Exec("UPDATE 2fa_totp SET recovery = ? WHERE userid = ?", string(b), i)
|
||||
|
||||
loginUser(c, i)
|
||||
c.Redirect(302, "/")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
resp(c, 200, "2fa_gateway_recover.html", &baseTemplateData{
|
||||
TitleBar: T(c, "Recover account"),
|
||||
KyutGrill: "2fa.jpg",
|
||||
Messages: []message{errorMessage{T(c, "Recovery code is invalid.")}},
|
||||
})
|
||||
}
|
||||
|
||||
// deletes expired 2fa confirmation tokens. gets current confirmation token.
|
||||
// if it does not exist, generates one.
|
||||
func get2faConfirmationToken(user int) (token string) {
|
||||
db.Exec("DELETE FROM 2fa_confirmation WHERE expire < ?", time.Now().Unix())
|
||||
db.Get(&token, "SELECT token FROM 2fa_confirmation WHERE userid = ? LIMIT 1", user)
|
||||
if token != "" {
|
||||
return
|
||||
}
|
||||
token = rs.String(32)
|
||||
db.Exec("INSERT INTO 2fa_confirmation (userid, token, expire) VALUES (?, ?, ?)",
|
||||
user, token, time.Now().Add(time.Hour).Unix())
|
||||
return
|
||||
}
|
||||
|
||||
func disable2fa(c *gin.Context) {
|
||||
ctx := getContext(c)
|
||||
if ctx.User.ID == 0 {
|
||||
resp403(c)
|
||||
return
|
||||
}
|
||||
|
||||
s := getSession(c)
|
||||
var m message
|
||||
defer func() {
|
||||
addMessage(c, m)
|
||||
s.Save()
|
||||
c.Redirect(302, "/settings/2fa")
|
||||
}()
|
||||
|
||||
if ok, _ := CSRF.Validate(ctx.User.ID, c.PostForm("csrf")); !ok {
|
||||
m = errorMessage{T(c, "Your session has expired. Please try redoing what you were trying to do.")}
|
||||
return
|
||||
}
|
||||
|
||||
var pass string
|
||||
db.Get(&pass, "SELECT password_md5 FROM users WHERE id = ?", ctx.User.ID)
|
||||
if err := bcrypt.CompareHashAndPassword(
|
||||
[]byte(pass),
|
||||
[]byte(cmd5(c.PostForm("password"))),
|
||||
); err != nil {
|
||||
m = errorMessage{"Wrong password."}
|
||||
return
|
||||
}
|
||||
|
||||
db.Exec("DELETE FROM 2fa_telegram WHERE userid = ?", ctx.User.ID)
|
||||
db.Exec("DELETE FROM 2fa_totp WHERE userid = ?", ctx.User.ID)
|
||||
m = successMessage{T(c, "2FA disabled successfully.")}
|
||||
}
|
||||
|
||||
func totpSetup(c *gin.Context) {
|
||||
ctx := getContext(c)
|
||||
sess := getSession(c)
|
||||
if ctx.User.ID == 0 {
|
||||
resp403(c)
|
||||
return
|
||||
}
|
||||
defer c.Redirect(302, "/settings/2fa")
|
||||
defer sess.Save()
|
||||
|
||||
if ok, _ := CSRF.Validate(ctx.User.ID, c.PostForm("csrf")); !ok {
|
||||
addMessage(c, errorMessage{T(c, "Your session has expired. Please try redoing what you were trying to do.")})
|
||||
return
|
||||
}
|
||||
|
||||
switch is2faEnabled(ctx.User.ID) {
|
||||
case 1:
|
||||
addMessage(c, errorMessage{T(c, "You currently have Telegram 2FA enabled. You first need to disable that if you want to use TOTP-based 2FA.")})
|
||||
return
|
||||
case 2:
|
||||
addMessage(c, errorMessage{T(c, "TOTP-based 2FA is already enabled!")})
|
||||
return
|
||||
}
|
||||
|
||||
pc := strings.Replace(c.PostForm("passcode"), " ", "", -1)
|
||||
|
||||
var secret string
|
||||
db.Get(&secret, "SELECT secret FROM 2fa_totp WHERE userid = ?", ctx.User.ID)
|
||||
if secret == "" || pc == "" {
|
||||
addMessage(c, errorMessage{T(c, "No passcode/secret was given. Please try again")})
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println(pc, secret)
|
||||
if !totp.Validate(pc, secret) {
|
||||
addMessage(c, errorMessage{T(c, "Passcode is invalid. Perhaps it expired?")})
|
||||
return
|
||||
}
|
||||
|
||||
codes, _ := json.Marshal(generateRecoveryCodes())
|
||||
db.Exec("UPDATE 2fa_totp SET recovery = ?, enabled = 1 WHERE userid = ?", string(codes), ctx.User.ID)
|
||||
|
||||
addMessage(c, successMessage{T(c, "TOTP-based 2FA has been enabled on your account.")})
|
||||
}
|
||||
|
||||
func generateRecoveryCodes() []string {
|
||||
x := make([]string, 8)
|
||||
for i := range x {
|
||||
x[i] = rs.StringFromChars(6, "QWERTYUIOPASDFGHJKLZXCVBNM1234567890")
|
||||
}
|
||||
return x
|
||||
}
|
||||
|
||||
func generateKey(ctx context) *otp.Key {
|
||||
k, err := totp.Generate(totp.GenerateOpts{
|
||||
Issuer: "Ripple",
|
||||
AccountName: ctx.User.Username,
|
||||
})
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
db.Exec("INSERT INTO 2fa_totp(userid, secret) VALUES (?, ?) ON DUPLICATE KEY UPDATE secret = VALUES(secret)", ctx.User.ID, k.Secret())
|
||||
return k
|
||||
}
|
363
Gopkg.lock
generated
Normal file
363
Gopkg.lock
generated
Normal file
|
@ -0,0 +1,363 @@
|
|||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
|
||||
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/DataDog/datadog-go"
|
||||
packages = ["statsd"]
|
||||
revision = "0ddda6bee21174ef6c4873647cb0d6ec9cba996f"
|
||||
version = "1.1.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/RangelReale/osin"
|
||||
packages = ["."]
|
||||
revision = "92fc3c3539125bddc695a988974243479d82f8b4"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ansel1/merry"
|
||||
packages = ["."]
|
||||
revision = "c8d518a00eb65f58411f49c1c84ee99c02b699f5"
|
||||
version = "v1.0.2"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/asaskevich/govalidator"
|
||||
packages = ["."]
|
||||
revision = "521b25f4b05fd26bec69d9dedeb8f9c9a83939a8"
|
||||
version = "v8"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/boj/redistore"
|
||||
packages = ["."]
|
||||
revision = "fc113767cd6b051980f260d6dbe84b2740c46ab0"
|
||||
version = "v1.2"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/boombuler/barcode"
|
||||
packages = [".","qr","utils"]
|
||||
revision = "3cfea5ab600ae37946be2b763b8ec2c1cf2d272d"
|
||||
version = "v1.0.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/certifi/gocertifi"
|
||||
packages = ["."]
|
||||
revision = "deb3ae2ef2610fde3330947281941c562861188b"
|
||||
version = "2018.01.18"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/dustin/go-humanize"
|
||||
packages = ["."]
|
||||
revision = "bb3d318650d48840a39aa21a027c6630e198e626"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/fatih/structs"
|
||||
packages = ["."]
|
||||
revision = "a720dfa8df582c51dee1b36feabb906bde1588bd"
|
||||
version = "v1.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/felipeweb/gopher-utils"
|
||||
packages = ["."]
|
||||
revision = "05a00fc86ef51b7b351fb05a0e13307c85dbe115"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/felipeweb/osin-mysql"
|
||||
packages = ["."]
|
||||
revision = "269603eb06cfa0a1e839d3c9c59ddab39cf6fb9e"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/frustra/bbcode"
|
||||
packages = ["."]
|
||||
revision = "e3d2906cb2697dd3b846aa433cc6bb03df33b086"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/garyburd/redigo"
|
||||
packages = ["internal","redis"]
|
||||
revision = "d1ed5c67e5794de818ea85e6b522fda02623a484"
|
||||
version = "v1.4.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/getsentry/raven-go"
|
||||
packages = ["."]
|
||||
revision = "563b81fc02b75d664e54da31f787c2cc2186780b"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/gin-contrib/sse"
|
||||
packages = ["."]
|
||||
revision = "22d885f9ecc78bf4ee5d72b937e4bbcdc58e8cae"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/gin-gonic/contrib"
|
||||
packages = ["sessions"]
|
||||
revision = "dccbb4a462e965297e21372a9ad3ea05e0df3e5f"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/gin-gonic/gin"
|
||||
packages = [".","binding","render"]
|
||||
revision = "d459835d2b077e44f7c9b453505ee29881d5d12d"
|
||||
version = "v1.2"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
packages = ["."]
|
||||
revision = "a0583e0143b1624142adab07e0e97fe106d99561"
|
||||
version = "v1.3"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/golang/protobuf"
|
||||
packages = ["proto"]
|
||||
revision = "c65a0412e71e8b9b3bfd22925720d23c0f054237"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/gorilla/context"
|
||||
packages = ["."]
|
||||
revision = "1ea25387ff6f684839d82767c1733ff4d4d15d0a"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/gorilla/securecookie"
|
||||
packages = ["."]
|
||||
revision = "667fe4e3466a040b780561fe9b51a83a3753eefc"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/gorilla/sessions"
|
||||
packages = ["."]
|
||||
revision = "ca9ada44574153444b00d3fd9c8559e4cc95f896"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/jmoiron/sqlx"
|
||||
packages = [".","reflectx"]
|
||||
revision = "05cef0741ade10ca668982355b3f3f0bcf0ff0a8"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/johnniedoe/contrib"
|
||||
packages = ["gzip"]
|
||||
revision = "d553224621be1688390e46650d317035e4991505"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/klauspost/compress"
|
||||
packages = ["flate","gzip","zlib"]
|
||||
revision = "6c8db69c4b49dd4df1fff66996cf556176d0b9bf"
|
||||
version = "v1.2.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/klauspost/cpuid"
|
||||
packages = ["."]
|
||||
revision = "ae7887de9fa5d2db4eaa8174a7eff2c1ac00f2da"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/klauspost/crc32"
|
||||
packages = ["."]
|
||||
revision = "cb6bfca970f6908083f26f39a79009d608efd5cd"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/mattn/go-isatty"
|
||||
packages = ["."]
|
||||
revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"
|
||||
version = "v0.0.3"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/microcosm-cc/bluemonday"
|
||||
packages = ["."]
|
||||
revision = "542fd4642604d0d0c26112396ce5b1a9d01eee0b"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/nfnt/resize"
|
||||
packages = ["."]
|
||||
revision = "891127d8d1b52734debe1b3c3d7e747502b6c366"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/osuripple/cheesegull"
|
||||
packages = ["models"]
|
||||
revision = "3f168dff833bcbedd9365cfedf51c6441baf1e84"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pariz/gountries"
|
||||
packages = ["."]
|
||||
revision = "adb00f6513a307f9f7a4ee57eca79a703b8a7272"
|
||||
version = "0.1.3"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pborman/uuid"
|
||||
packages = ["."]
|
||||
revision = "e790cca94e6cc75c7064b1332e63811d4aae1a53"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pkg/errors"
|
||||
packages = ["."]
|
||||
revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
|
||||
version = "v0.8.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pquerna/otp"
|
||||
packages = [".","hotp","totp"]
|
||||
revision = "b7b89250c468c06871d3837bee02e2d5c155ae19"
|
||||
version = "v1.0.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/rcrowley/goagain"
|
||||
packages = ["."]
|
||||
revision = "f2f192b5d1a96e21dd4026ce67cda85e49659a48"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/rjeczalik/notify"
|
||||
packages = ["."]
|
||||
revision = "27b537f07230b3f917421af6dcf044038dbe57e2"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/russross/blackfriday"
|
||||
packages = ["."]
|
||||
revision = "cadec560ec52d93835bf2f15bd794700d3a2473b"
|
||||
version = "v2.0.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/shurcooL/sanitized_anchor_name"
|
||||
packages = ["."]
|
||||
revision = "86672fcb3f950f35f2e675df2240550f2a50762f"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/thehowl/cieca"
|
||||
packages = ["."]
|
||||
revision = "3d95e04c9b124919b7a43086b663583eef84454a"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/thehowl/conf"
|
||||
packages = ["."]
|
||||
revision = "bdfc17531a7482dc9e141141b94d9fbae1d066a3"
|
||||
version = "0.1.1"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/thehowl/qsql"
|
||||
packages = ["."]
|
||||
revision = "9b9405451f4721e0b8fdc7320388272496f34077"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ugorji/go"
|
||||
packages = ["codec"]
|
||||
revision = "9831f2c3ac1068a78f50999a30db84270f647af6"
|
||||
version = "v1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/valyala/fasthttp"
|
||||
packages = [".","fasthttputil"]
|
||||
revision = "d42167fd04f636e20b005e9934159e95454233c7"
|
||||
version = "v20160617"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/crypto"
|
||||
packages = ["bcrypt","blowfish"]
|
||||
revision = "3d37316aaa6bd9929127ac9a527abf408178ea7b"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/net"
|
||||
packages = ["context","context/ctxhttp","html","html/atom"]
|
||||
revision = "0ed95abb35c445290478a5348a7b38bb154135fd"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/oauth2"
|
||||
packages = [".","internal"]
|
||||
revision = "b28fcf2b08a19742b43084fb40ab78ac6c3d8067"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/sys"
|
||||
packages = ["unix"]
|
||||
revision = "af9a21289d0040306ecc55fa668c95246f1f8425"
|
||||
|
||||
[[projects]]
|
||||
name = "google.golang.org/appengine"
|
||||
packages = ["internal","internal/base","internal/datastore","internal/log","internal/remote_api","internal/urlfetch","urlfetch"]
|
||||
revision = "150dc57a1b433e64154302bdc40b6bb8aefa313a"
|
||||
version = "v1.0.0"
|
||||
|
||||
[[projects]]
|
||||
name = "gopkg.in/go-playground/validator.v8"
|
||||
packages = ["."]
|
||||
revision = "5f1438d3fca68893a817e4a66806cea46a9e4ebf"
|
||||
version = "v8.18.2"
|
||||
|
||||
[[projects]]
|
||||
name = "gopkg.in/mailgun/mailgun-go.v1"
|
||||
packages = ["."]
|
||||
revision = "a4002e2df2e8ca2da6a6fbb4a72871b504e49f50"
|
||||
version = "v1.1.0"
|
||||
|
||||
[[projects]]
|
||||
name = "gopkg.in/redis.v5"
|
||||
packages = [".","internal","internal/consistenthash","internal/hashtag","internal/pool","internal/proto"]
|
||||
revision = "a16aeec10ff407b1e7be6dd35797ccf5426ef0f0"
|
||||
version = "v5.2.9"
|
||||
|
||||
[[projects]]
|
||||
branch = "v2"
|
||||
name = "gopkg.in/yaml.v2"
|
||||
packages = ["."]
|
||||
revision = "d670f9405373e636a5a2765eea47fac0c9bc91a4"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/agplwarning"
|
||||
packages = ["."]
|
||||
revision = "d3a3d0ee424fcb0bd09a651354c1735285f59f8c"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/go-discord-oauth"
|
||||
packages = ["."]
|
||||
revision = "348e08feccb5ae7c1ea3b237769aeb757e393e0c"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/playstyle"
|
||||
packages = ["."]
|
||||
revision = "198984a13cb6fccba0cdf9c08b3c624548f840eb"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/rippleapi"
|
||||
packages = ["common"]
|
||||
revision = "77ba8aee7849a37feb1a8ec8bb86ee95fddeeb52"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/schiavolib"
|
||||
packages = ["."]
|
||||
revision = "9cdc674dad0700ec79618de4ab558db6ad1de372"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "zxq.co/x/rs"
|
||||
packages = ["."]
|
||||
revision = "8b39b068a1555d73f1d83bf3f8319b9b1436fe06"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "29d578563c9e60434e4a6bcf45adedfc296541960866919aa0029cb849a7111f"
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
158
Gopkg.toml
Normal file
158
Gopkg.toml
Normal file
|
@ -0,0 +1,158 @@
|
|||
|
||||
# Gopkg.toml example
|
||||
#
|
||||
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
|
||||
# for detailed Gopkg.toml documentation.
|
||||
#
|
||||
# required = ["github.com/user/thing/cmd/thing"]
|
||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project"
|
||||
# version = "1.0.0"
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project2"
|
||||
# branch = "dev"
|
||||
# source = "github.com/myfork/project2"
|
||||
#
|
||||
# [[override]]
|
||||
# name = "github.com/x/y"
|
||||
# version = "2.4.0"
|
||||
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/RangelReale/osin"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/asaskevich/govalidator"
|
||||
version = "8.0.0"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/dustin/go-humanize"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/fatih/structs"
|
||||
version = "1.0.0"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/felipeweb/osin-mysql"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/frustra/bbcode"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/getsentry/raven-go"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/gin-gonic/contrib"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/gin-gonic/gin"
|
||||
version = "1.2.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
version = "1.3.0"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/jmoiron/sqlx"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/johnniedoe/contrib"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/microcosm-cc/bluemonday"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/nfnt/resize"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/osuripple/cheesegull"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/pariz/gountries"
|
||||
version = "0.1.3"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/pquerna/otp"
|
||||
version = "1.0.0"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/rcrowley/goagain"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/rjeczalik/notify"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/russross/blackfriday"
|
||||
version = "2.0.0"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/thehowl/cieca"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/thehowl/conf"
|
||||
version = "0.1.1"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/thehowl/qsql"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/crypto"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/oauth2"
|
||||
|
||||
[[constraint]]
|
||||
name = "gopkg.in/mailgun/mailgun-go.v1"
|
||||
version = "1.1.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "gopkg.in/redis.v5"
|
||||
version = "5.2.9"
|
||||
|
||||
[[constraint]]
|
||||
branch = "v2"
|
||||
name = "gopkg.in/yaml.v2"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/go-discord-oauth"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/playstyle"
|
||||
|
||||
[[constraint]]
|
||||
name = "zxq.co/ripple/rippleapi"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/schiavolib"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "zxq.co/x/rs"
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "zxq.co/ripple/agplwarning"
|
619
LICENSE
Normal file
619
LICENSE
Normal file
|
@ -0,0 +1,619 @@
|
|||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
25
README.md
Normal file
25
README.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Hanayo ![build status](https://ci.zxq.co/api/badges/ripple/hanayo/status.svg)
|
||||
|
||||
This repository has a mirror [here](https://github.com/osuripple/hanayo). The original repo is still [here](https://github.com/osuYozora/hanayo).
|
||||
|
||||
## To fellow developers: this is not how you do it!
|
||||
|
||||
The biggest flaw of hanayo are that when I set out to create it, I wanted to create a template system that:
|
||||
|
||||
* Created a handler by simply having the file "be there"
|
||||
* Could fetch the data it needed on its own, often from the Ripple API
|
||||
* Had the actual Go code be as little as possible
|
||||
|
||||
This was not immediately evident to me, a Go beginner, but what I did there was basically make Go be PHP.
|
||||
|
||||
The biggest lesson I learned on how to properly do templates, was learning to use [Vue](https://vuejs.org/). Yes, Vue can be used for the frontend and not really for server-rendered stuff, but even just learning how to do stuff with it can help you understand what a template is actually supposed to be in order to be maintainable.
|
||||
|
||||
The key concepts and insights for me where:
|
||||
|
||||
* Separating clearly code and markup, making the template declarative and keeping as little code in the template
|
||||
* A template should be purely functional. Its mere creation should not generate side effects, nor should it be dependent on things that are not its precise inputs: for a given input there is a specific output.
|
||||
* The concept of component as a single self-contained entity which is the same wherever you use it is very powerful.
|
||||
* Once a template/component starts becoming too big, split it into more components.
|
||||
|
||||
But don't stop here. Actually making a project using Vue helps you to understand this much more easily than using mere words. Go ahead and build something, even if just to play around!
|
||||
|
54
avatar.go
Normal file
54
avatar.go
Normal file
|
@ -0,0 +1,54 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image"
|
||||
_ "image/gif"
|
||||
_ "image/jpeg"
|
||||
"image/png"
|
||||
"os"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/nfnt/resize"
|
||||
)
|
||||
|
||||
func avatarSubmit(c *gin.Context) {
|
||||
ctx := getContext(c)
|
||||
if ctx.User.ID == 0 {
|
||||
resp403(c)
|
||||
return
|
||||
}
|
||||
var m message
|
||||
defer func() {
|
||||
simpleReply(c, m)
|
||||
}()
|
||||
if config.AvatarsFolder == "" {
|
||||
m = errorMessage{T(c, "Changing avatar is currently not possible.")}
|
||||
return
|
||||
}
|
||||
file, _, err := c.Request.FormFile("avatar")
|
||||
if err != nil {
|
||||
m = errorMessage{T(c, "An error occurred.")}
|
||||
return
|
||||
}
|
||||
img, _, err := image.Decode(file)
|
||||
if err != nil {
|
||||
m = errorMessage{T(c, "An error occurred.")}
|
||||
return
|
||||
}
|
||||
img = resize.Thumbnail(256, 256, img, resize.Bilinear)
|
||||
f, err := os.Create(fmt.Sprintf("%s/%d.png", config.AvatarsFolder, ctx.User.ID))
|
||||
defer f.Close()
|
||||
if err != nil {
|
||||
m = errorMessage{T(c, "An error occurred.")}
|
||||
c.Error(err)
|
||||
return
|
||||
}
|
||||
err = png.Encode(f, img)
|
||||
if err != nil {
|
||||
m = errorMessage{T(c, "We were not able to save your avatar.")}
|
||||
c.Error(err)
|
||||
return
|
||||
}
|
||||
m = successMessage{T(c, "Your avatar was successfully changed. It may take some time to properly update. To force a cache refresh, you can use CTRL+F5.")}
|
||||
}
|
106
beatmap.go
Normal file
106
beatmap.go
Normal file
|
@ -0,0 +1,106 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"sort"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/osuripple/cheesegull/models"
|
||||
)
|
||||
|
||||
type beatmapPageData struct {
|
||||
baseTemplateData
|
||||
|
||||
Found bool
|
||||
Beatmap models.Beatmap
|
||||
Beatmapset models.Set
|
||||
SetJSON string
|
||||
}
|
||||
|
||||
func beatmapInfo(c *gin.Context) {
|
||||
data := new(beatmapPageData)
|
||||
defer resp(c, 200, "beatmap.html", data)
|
||||
|
||||
b := c.Param("bid")
|
||||
if _, err := strconv.Atoi(b); err != nil {
|
||||
c.Error(err)
|
||||
} else {
|
||||
data.Beatmap, err = getBeatmapData(b)
|
||||
if err != nil {
|
||||
c.Error(err)
|
||||
return
|
||||
}
|
||||
data.Beatmapset, err = getBeatmapSetData(data.Beatmap)
|
||||
if err != nil {
|
||||
c.Error(err)
|
||||
return
|
||||
}
|
||||
sort.Slice(data.Beatmapset.ChildrenBeatmaps, func(i, j int) bool {
|
||||
if data.Beatmapset.ChildrenBeatmaps[i].Mode != data.Beatmapset.ChildrenBeatmaps[j].Mode {
|
||||
return data.Beatmapset.ChildrenBeatmaps[i].Mode < data.Beatmapset.ChildrenBeatmaps[j].Mode
|
||||
}
|
||||
return data.Beatmapset.ChildrenBeatmaps[i].DifficultyRating < data.Beatmapset.ChildrenBeatmaps[j].DifficultyRating
|
||||
})
|
||||
}
|
||||
|
||||
if data.Beatmapset.ID == 0 {
|
||||
data.TitleBar = T(c, "Beatmap not found.")
|
||||
data.Messages = append(data.Messages, errorMessage{T(c, "Beatmap could not be found.")})
|
||||
return
|
||||
}
|
||||
|
||||
data.KyutGrill = fmt.Sprintf("https://assets.ppy.sh/beatmaps/%d/covers/cover.jpg?%d", data.Beatmapset.ID, data.Beatmapset.LastUpdate.Unix())
|
||||
data.KyutGrillAbsolute = true
|
||||
|
||||
setJSON, err := json.Marshal(data.Beatmapset)
|
||||
if err == nil {
|
||||
data.SetJSON = string(setJSON)
|
||||
} else {
|
||||
data.SetJSON = "[]"
|
||||
}
|
||||
|
||||
data.TitleBar = T(c, "%s - %s", data.Beatmapset.Artist, data.Beatmapset.Title)
|
||||
data.Scripts = append(data.Scripts, "/static/tablesort.js", "/static/beatmap.js")
|
||||
}
|
||||
|
||||
func getBeatmapData(b string) (beatmap models.Beatmap, err error) {
|
||||
resp, err := http.Get(config.CheesegullAPI + "/b/" + b)
|
||||
if err != nil {
|
||||
return beatmap, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return beatmap, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(body, &beatmap)
|
||||
if err != nil {
|
||||
return beatmap, err
|
||||
}
|
||||
|
||||
return beatmap, nil
|
||||
}
|
||||
|
||||
func getBeatmapSetData(beatmap models.Beatmap) (bset models.Set, err error) {
|
||||
resp, err := http.Get(config.CheesegullAPI + "/s/" + strconv.Itoa(beatmap.ParentSetID))
|
||||
if err != nil {
|
||||
return bset, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return bset, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(body, &bset)
|
||||
if err != nil {
|
||||
return bset, err
|
||||
}
|
||||
|
||||
return bset, nil
|
||||
}
|
34
context.go
Normal file
34
context.go
Normal file
|
@ -0,0 +1,34 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"zxq.co/ripple/rippleapi/common"
|
||||
)
|
||||
|
||||
type context struct {
|
||||
User sessionUser
|
||||
Token string
|
||||
Language string
|
||||
}
|
||||
type sessionUser struct {
|
||||
ID int
|
||||
Username string
|
||||
Privileges common.UserPrivileges
|
||||
Flags uint64
|
||||
}
|
||||
|
||||
// OnlyUserPublic returns a string containing "(user.privileges & 1 = 1 OR users.id = <userID>)"
|
||||
// if the user does not have the UserPrivilege AdminManageUsers, and returns "1" otherwise.
|
||||
func (ctx context) OnlyUserPublic() string {
|
||||
if ctx.User.Privileges&common.AdminPrivilegeManageUsers == common.AdminPrivilegeManageUsers {
|
||||
return "1"
|
||||
}
|
||||
// It's safe to use sprintf directly even if it's a query, because UserID is an int.
|
||||
return fmt.Sprintf("(users.privileges & 1 = 1 OR users.id = '%d')", ctx.User.ID)
|
||||
}
|
||||
|
||||
func getContext(c *gin.Context) context {
|
||||
return c.MustGet("context").(context)
|
||||
}
|
137
data/js-locales/templates-de.po
Normal file
137
data/js-locales/templates-de.po
Normal file
|
@ -0,0 +1,137 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /de/HanayoJS/templates-de.po\n"
|
||||
"X-Pootle-Revision: 6077\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Ein Fehler ist aufgetreten während die Ripple-API kontaktiert wurde. Bitte "
|
||||
"melde dies einem Ripple-Entwickler."
|
||||
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Warum, LOVE, of course!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Deine neuen Einstellungen wurden gespeichert."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Deine Benutzerseite wurde gespeichert."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Bitte gebe einen gültigen Link an, entweder https://osu.ppy.sh/s/<ID> "
|
||||
"oder https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Beatmap Ranking-Request wurde eingereicht."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Diese Beatmap ist bereits gerankt!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Als Freund hinzufügen"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Freund entfernen"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Gegenseitige Freundschaft aufheben"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Allgemeine Informationen"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Ergebnis"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Mehr laden"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Beste Ergebnisse"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Neueste Ergebnisse"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Punkte"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Genauigkeit"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Maximale Combo"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(full Combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Schwierigkeit"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Erreicht"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Modus"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Keine"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} Stern"
|
||||
msgstr[1] "{{ stars }} Sterne"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ Monate }}</b> monatliche Kosten <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ Monate }}</b> monatliche Kosten <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Freunde"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
144
data/js-locales/templates-es.po
Normal file
144
data/js-locales/templates-es.po
Normal file
|
@ -0,0 +1,144 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /es/HanayoJS/templates-es.po\n"
|
||||
"X-Pootle-Revision: 7624\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Ha ocurrido un error mientras se contactaba la API de Ripple. Por favor, "
|
||||
"reportar esto a un desarrollador."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Nivel"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Tus nuevos ajustes han sido guardados."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Tu página de usuario ha sido guardada."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Por favor, proporcione un link válido, en el formulario de "
|
||||
"https://osu.ppy.sh/s/<ID> p https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "La petición de clasificación de beatmap ha sido enviada."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Ese mapa ya esta rankeado!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Añadir amigo"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Remover amistad"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Remover amistad mutua"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Información general"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Puntuación"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Cargar más"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Mejores puntuaciones"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Puntuaciones recientes"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Puntos"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Mapa"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Precisión"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Combo máximo"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(Combo completo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Dificultad"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Sí"
|
||||
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Obtenido"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Modo"
|
||||
|
||||
# (No mods used)
|
||||
# Sabéis cual es el contexto de esto?
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} estrella"
|
||||
msgstr[1] "{{ stars }} estrellas"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> costo mensual <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ months }}</b> costos mensuales <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Amistad mutua"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
143
data/js-locales/templates-fi.po
Normal file
143
data/js-locales/templates-fi.po
Normal file
|
@ -0,0 +1,143 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /fi/HanayoJS/templates-fi.po\n"
|
||||
"X-Pootle-Revision: 7896\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Ongelma tapahtui kun otimme yhteyttä Ripplen APIin. Ole hyvä ja raportoi "
|
||||
"tämä Ripplen kehittäjille."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Taso"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Uudet asetuksesi on nyt tallennettu."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Profiilisivusi on tallennettu."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Ole hyvä ja anna toimiva linkki, joko tyyliin https://osu.ppy.sh/s/<ID>"
|
||||
" tai https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Beatmapin rankkauspyyntö on toimitettu."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Tuo beatmap on jo rankattu!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Lisää kaveri"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Poista kaveri"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Poista yhteinen ystävä"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Yleiset tiedot"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Pisteet"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Lataa lisää"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Parhaat tulokset"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Viimeaikaiset tulokset"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Lataa"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Pisteet"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Tarkkuus"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Täysi combo"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(täysi combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Vaikeustaso"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Kyllä"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Ei"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Saavutettu"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Pelimuoto"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Ei mitään"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ tähdet }} tähti"
|
||||
msgstr[1] "{{ tähdet }} tähdet"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ kuukausia }}</b> kuukausi maksaa <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ kuukausia }}</b> kuukaudet maksavat <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Yhteinen ystävä"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Poista"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Lisää"
|
143
data/js-locales/templates-fr.po
Normal file
143
data/js-locales/templates-fr.po
Normal file
|
@ -0,0 +1,143 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /fr/HanayoJS/templates-fr.po\n"
|
||||
"X-Pootle-Revision: 6997\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Une erreur s'est produite lors de la mise en contact de l'API de Ripple. "
|
||||
"Veuillez signaler ceci à un développeur de Ripple."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Pourquoi ? L'AMOUR, bien sûr !"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Vos nouveaux paramètres ont été enregistrés."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Votre page d'utilisateur a été enregistrée."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Veuillez fournir un lien valide sous une de ces formes "
|
||||
"https://osu.ppy.sh/s/<ID> ou https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "La demande de classement de la map a été soumise."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Cette map est déjà classée !"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Ajouter un(e) ami(e)"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Retirer un(e) ami(e)"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Retirer un(e) ami(e)"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Informations générales"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Score"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Charger plus"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Meilleurs scores"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Scores récents"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Points"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Précision"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Combo max"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(full combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Difficulté"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Effectué le"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Mode"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Aucun(e)"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} étoile"
|
||||
msgstr[1] "{{ stars }} étoiles"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> coûts mensuels <b> {{ eur }} €</b>"
|
||||
msgstr[1] "<b>{{ months }}</b> coûts mensuels <b> {{ eur }} €</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "({{ usd }}$ / {{btc}} BTC)"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Mutuel"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Retirer"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
143
data/js-locales/templates-it.po
Normal file
143
data/js-locales/templates-it.po
Normal file
|
@ -0,0 +1,143 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /it/HanayoJS/templates-it.po\n"
|
||||
"X-Pootle-Revision: 2347\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"È capitato un errore durante la connessione con l'API di Ripple. Per favore "
|
||||
"segnala quest'errore ad uno sviluppatore di Ripple."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Livello"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Le tue nuove impostazioni sono state salvate."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "La tua userpage è stata salvata."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Per favore fornisci un link valido, nella forma di "
|
||||
"https://osu.ppy.sh/s/<ID> o https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "La richiesta di rank della beatmap è stata inviata."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Quella beatmap è già rankata!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Aggiungi amico"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Rimuovi amico"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Rimuovi amico"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Informazioni generali"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Punteggio"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Carica altri"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Punteggi migliori"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Punteggi recenti"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Scarica"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Punti"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Accuracy"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Combo massima"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(full combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Difficoltà"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Sì"
|
||||
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Realizzato"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Modalità"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Nessuna"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} stella"
|
||||
msgstr[1] "{{ stars }} stelle"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> mese costa <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ months }}</b> mesi costano <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Reciproci"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Rimuovi"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Aggiungi"
|
139
data/js-locales/templates-ko.po
Normal file
139
data/js-locales/templates-ko.po
Normal file
|
@ -0,0 +1,139 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ko\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /ko/HanayoJS/templates-ko.po\n"
|
||||
"X-Pootle-Revision: 2915\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr "리플 API에 문제가 발생했습니다. 서버 관리자에게 연락하세요."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "LOVE 의 약자이죠!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "설정이 성공적으로 변경되었습니다."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "유저페이지의 변경사항이 저장되었습니다."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"https://osu.ppy.sh/s/<ID> 또는 https://osu.ppy.sh/b/<ID> 의 형식으로 링크를 "
|
||||
"제출해주세요."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "비트맵 랭크 요청이 접수되었습니다."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "이 비트맵은 이미 랭크 되어있습니다!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "친구 추가"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "친구 삭제"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "뮤추얼 해제"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "기본 정보"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "점수"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "더보기"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "최고 점수들"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "최근 점수"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "다운로드"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "포인트"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "비트맵"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "정확도"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "최대 콤보"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(풀콤보)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "난이도"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "예"
|
||||
|
||||
msgid "No"
|
||||
msgstr "아니요"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "달성한 날짜"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "게임 모드"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "없음"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} 성"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> 개월의 가격은 <b>€ {{ eur }}</b> 입니다"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / 비트코인 {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "뮤추얼"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "제거"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "추가"
|
143
data/js-locales/templates-nl.po
Normal file
143
data/js-locales/templates-nl.po
Normal file
|
@ -0,0 +1,143 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /nl/HanayoJS/templates-nl.po\n"
|
||||
"X-Pootle-Revision: 6589\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Een fout is opgetreden tijdens het contacteren van de Ripple API. Gelieve "
|
||||
"dit te rapporteren bij een Ripple ontwikkelaar."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "LOVE, natuurlijk!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Je nieuwe instellingen zijn opgeslagen."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Je gebruikerspagina is opgeslagen!"
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Gelieve een juiste link te geven in de vorm https://osu.ppy.sh/s/<ID> "
|
||||
"of https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Beatmap rank verzoek is ingediend."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Deze beatmap is al gerankt!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Vriend toevoegen"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Vriend verwijderen"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Wederzijdse vriendschap beëindigen."
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Algemene info"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Score"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Meer laden"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Beste scores"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Recente scores"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Downloaden"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Punten"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Nauwkeurigheid"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Grootste combo"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(maximale combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Moeilijkheid"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nee"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Behaalt"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Mode"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} ster"
|
||||
msgstr[1] "{{ stars }} sterren"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> maand kost <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ months }}</b> maanden kosten <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Wederzijdse vriend"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Toevoegen"
|
145
data/js-locales/templates-pl.po
Normal file
145
data/js-locales/templates-pl.po
Normal file
|
@ -0,0 +1,145 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /pl/HanayoJS/templates-pl.po\n"
|
||||
"X-Pootle-Revision: 3637\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Nastąpił błąd podczas kontaktowania API. Proszę powiadomić o tym deweloperów "
|
||||
"Ripple."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Poziom"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Twoje ustawienia zostały zapisane."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Twoja strona użytkownika była zapisana."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Proszę o podanie prawidłowego linku w formie https://osu.ppy.sh/s/<ID> "
|
||||
"albo https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Prośba o dodanie rankowej beatmapy została złożona pomyślnie."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Beatmapa jest już dodana jako ranked!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Dodaj znajomego"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Usuń znajomego"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Usuń znajomego"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Informacje ogólne"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Wynik"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Wczytaj więcej"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Najlepsze wyniki"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Najnowsze wyniki"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Punkty"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmapa"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Celność"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Maksymalne kombo"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(pełne combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Trudność"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Tak"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nie"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Osiągnięte dnia"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Tryb"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Żaden"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} gwiazdka"
|
||||
msgstr[1] "{{ stars }} gwiazdki"
|
||||
msgstr[2] "{{ stars }} gwiazdek"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ miesiąc }}</b> miesiąc kosztuje <b>{{ eur }} €</b>"
|
||||
msgstr[1] "<b>{{ miesiące }}</b> miesiące kosztują <b>{{ eur }} €</b>"
|
||||
msgstr[2] "<b>{{ miesięcy }}</b> miesięcy kosztują <b>{{ eur }} €</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Wspólny znajomy"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Usuń"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
145
data/js-locales/templates-ro.po
Normal file
145
data/js-locales/templates-ro.po
Normal file
|
@ -0,0 +1,145 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /ro/HanayoJS/templates-ro.po\n"
|
||||
"X-Pootle-Revision: 5702\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"A apărut o eroare în timpul contactului cu API-ul Ripple. Te rugăm sa "
|
||||
"raportezi această eroare la un developer Ripple."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "De ce, IUBIRE, desigur!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Setările noi au fost salvate."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Pagina ta de profil a fost salvată."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Te rugăm provizionează-ne cu un link valid, fie in formă de "
|
||||
"https://osu.ppy.sh/s/<ID> sau https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Cererea de rank a Beatmap-ului a fost trimisă."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Acest Beatmap este deja ranked!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Adaugă prieten"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Elimină prieten"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Scoate prietenul din lista ta."
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Informații generale"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Scor"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Incarcă mai mult"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Cele mai bune scoruri"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Scoruri recente"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Descarcă"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Puncte"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Acuratețe"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Combo maxim"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(combo complet)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Dificultate"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Da"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nu"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Realizate"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Mod de joc"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Nimic"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stele }} stea"
|
||||
msgstr[1] "{{ stele }} stele"
|
||||
msgstr[2] ""
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ luna }}</b> costurile lunii <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ luni }}</b> costurile luniilor <b>€ {{ eur }}</b>"
|
||||
msgstr[2] ""
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Prieten reciproc"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Șterge"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Adaugă"
|
145
data/js-locales/templates-ru.po
Normal file
145
data/js-locales/templates-ru.po
Normal file
|
@ -0,0 +1,145 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /ru/HanayoJS/templates-ru.po\n"
|
||||
"X-Pootle-Revision: 7434\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Произошла ошибка при соединении с Ripple API. Пожалуйста, сообщите об этом "
|
||||
"разработчикам."
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Уровень"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Новые настройки были сохранены."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Ваш юзерпейдж был сохранен."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Пожалуйста, вставьте в поле рабочую ссылку вида "
|
||||
"https://osu.ppy.sh/s/<ID> или https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Запрос на проверку карты отправлен."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Эта карта уже проверена!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Добавить в друзья"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Удалить из друзей"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Удалить из друзей"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Основная информация"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Очки"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Загрузить ещё"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Рекорды"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Недавно сыгранные"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Скачать"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Очки"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Карта"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Точность"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Максимальное комбо"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(идеальное комбо)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Сложность"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Да"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Нет"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Получен"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Режим"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Нет"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} звезда"
|
||||
msgstr[1] "{{ stars }} звезды"
|
||||
msgstr[2] "{{ stars }} звёзд"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> месяц стоит <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ months }}</b> месяца стоят <b>€ {{ eur }}</b>"
|
||||
msgstr[2] "<b>{{ months }}</b> месяцев стоят <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Взаимно"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Удалить"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Добавить"
|
137
data/js-locales/templates-sv.po
Normal file
137
data/js-locales/templates-sv.po
Normal file
|
@ -0,0 +1,137 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:15+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /sv/HanayoJS/templates-sv.po\n"
|
||||
"X-Pootle-Revision: 3113\n"
|
||||
|
||||
# JavaScript
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Ett fel uppstod när du kontaktade Ripple API. Var vänlig rapportera detta "
|
||||
"till en Ripple-uvecklare."
|
||||
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Varför, ÄLSKAR, förstås!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Dina nya inställningar har sparats."
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Din användarsida har sparats."
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Vänligen ange en giltig länk, antingen i form av https://osu.ppy.sh/s/<"
|
||||
"ID> och https://osu.ppy.sh/s/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Beatmap rankningsförfrågan har skickats in."
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Den beatmap är redan rankad!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Lägg till vän"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Ta bort vän"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Ångra en ömsesidig vänskap"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Generell info"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Poäng"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Läs mer"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Bästa poängen"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Senaste poängen"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Hämta"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Poäng"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Noggrannhet"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Maximal kombination"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(full kombination)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Svårighet"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Nej"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Datum uppnått"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Läge"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stjärnor }} stjärna"
|
||||
msgstr[1] "{{ stjärnor }} stjärnor"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ månad }}</b> månad kostnad <b>€ {{ eur }}</b>"
|
||||
msgstr[1] "<b>{{ månader }}</b> månader kostnad <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "ömsesidig"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Ta bort"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Lägg till"
|
140
data/js-locales/templates-vi.po
Normal file
140
data/js-locales/templates-vi.po
Normal file
|
@ -0,0 +1,140 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-02-25 11:16+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: vi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 2.0.0\n"
|
||||
"X-Pootle-Path: /vi/HanayoJS/templates-vi.po\n"
|
||||
"X-Pootle-Revision: 5045\n"
|
||||
|
||||
msgid ""
|
||||
"An error occurred while contacting the Ripple API. Please report this to a "
|
||||
"Ripple developer."
|
||||
msgstr ""
|
||||
"Một lỗi đã phát hiện trong khi đang kết nối tới Server API của Ripple. Hãy "
|
||||
"nói điều này tới một người trong đội thành lập Ripple "
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr "Tại sao, YÊU, Chắc chắn thế!"
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr "Sự thay đổi của bạn trong cài đặt đã được lưu lại"
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr "Trang cá nhân của bạn đã được lưu"
|
||||
|
||||
msgid ""
|
||||
"Please provide a valid link, in the form of either "
|
||||
"https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
"Xin hãy cung cấp một đường liên kết còn hiệu lực, trong hình thức như "
|
||||
"https://osu.ppy.sh/s/<ID> hoặc là https://osu.ppy.sh/b/<ID>."
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr "Yêu cầu rank cho beatmap này đã được nộp lên"
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr "Beatmap đó đã được ranked!"
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr "Thêm người đó vào danh sách kết bạn"
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr "Bỏ người đó khỏi danh sách kết bạn"
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr "Bỏ người đó khỏi danh sách thân mật"
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr "Thông tin chung"
|
||||
|
||||
msgid "Score"
|
||||
msgstr "Điểm"
|
||||
|
||||
msgid "Load more"
|
||||
msgstr "Còn nữa"
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr "Điểm tốt nhất"
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr "Điểm có được gần đây nhất"
|
||||
|
||||
msgid "Download"
|
||||
msgstr "Tải về"
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr "Điểm số"
|
||||
|
||||
msgid "PP"
|
||||
msgstr "PP"
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr "Beatmap"
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr "Độ chính xác"
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr "Combo cao nhất"
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr "(Full combo)"
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr "Độ khó"
|
||||
|
||||
msgid "Yes"
|
||||
msgstr "OK"
|
||||
|
||||
msgid "No"
|
||||
msgstr "Không"
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr "Đạt được"
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr "Chế độ"
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr "Không có"
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] "{{ stars }} sao"
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] "<b>{{ months }}</b> tháng là <b>€ {{ eur }}</b>"
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr "($ {{ usd }} / BTC {{ btc }})"
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr "Thân mật"
|
||||
|
||||
msgid "Remove"
|
||||
msgstr "Bỏ"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Thêm vào"
|
120
data/js-locales/templates.pot
Normal file
120
data/js-locales/templates.pot
Normal file
|
@ -0,0 +1,120 @@
|
|||
# JavaScript
|
||||
msgid "An error occurred while contacting the Ripple API. Please report this to a Ripple developer."
|
||||
msgstr ""
|
||||
|
||||
# This is a quote of UNDERTALE if you didn't know.
|
||||
# It is shown regarding the level of an user, but it is shortened to "Lv.".
|
||||
# Of course, this means Level on Ripple, but in UNDERTALE, it actually means LOVE.
|
||||
# I'm not gonna spoil you why it's called LOVE.
|
||||
# It's hard to keep this cultural reference, so you can also just write the
|
||||
# translation for "Level" in this.
|
||||
msgid "Why, LOVE, of course!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Your new settings have been saved."
|
||||
msgstr ""
|
||||
|
||||
msgid "Your userpage has been saved."
|
||||
msgstr ""
|
||||
|
||||
msgid "Please provide a valid link, in the form of either https://osu.ppy.sh/s/<ID> or https://osu.ppy.sh/b/<ID>."
|
||||
msgstr ""
|
||||
|
||||
msgid "Beatmap rank request has been submitted."
|
||||
msgstr ""
|
||||
|
||||
msgid "That beatmap is already ranked!"
|
||||
msgstr ""
|
||||
|
||||
# user profile
|
||||
msgid "Add friend"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove friend"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unmutual friend"
|
||||
msgstr ""
|
||||
|
||||
# score table
|
||||
msgid "General info"
|
||||
msgstr ""
|
||||
|
||||
msgid "Score"
|
||||
msgstr ""
|
||||
|
||||
msgid "Load more"
|
||||
msgstr ""
|
||||
|
||||
msgid "Best scores"
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent scores"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
# score modal (when you click on a score)
|
||||
msgid "Points"
|
||||
msgstr ""
|
||||
|
||||
msgid "PP"
|
||||
msgstr ""
|
||||
|
||||
msgid "Beatmap"
|
||||
msgstr ""
|
||||
|
||||
msgid "Accuracy"
|
||||
msgstr ""
|
||||
|
||||
msgid "Max combo"
|
||||
msgstr ""
|
||||
|
||||
msgid "(full combo)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Difficulty"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
# Achieved (refers to date)
|
||||
msgid "Achieved"
|
||||
msgstr ""
|
||||
|
||||
# Game mode, like osu! standard, not like HR
|
||||
msgid "Mode"
|
||||
msgstr ""
|
||||
|
||||
# (No mods used)
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "{{ stars }} star"
|
||||
msgid_plural "{{ stars }} stars"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
msgid "<b>{{ months }}</b> month costs <b>€ {{ eur }}</b>"
|
||||
msgid_plural "<b>{{ months }}</b> months cost <b>€ {{ eur }}</b>"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
msgid "($ {{ usd }} / BTC {{ btc }})"
|
||||
msgstr ""
|
||||
|
||||
# (following are in relation to friends)
|
||||
msgid "Mutual"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
1
data/json/countries/ad.json
Normal file
1
data/json/countries/ad.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Andorra","official":"Principality of Andorra","Native":{"cat":{"common":"Andorra","official":"Principat d'Andorra"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".ad"],"Languages":{"cat":"Catalan"},"Translations":{"DEU":{"common":"Andorra","official":"Fürstentum Andorra"},"FIN":{"common":"Andorra","official":"Andorran ruhtinaskunta"},"HRV":{"common":"Andora","official":"Kneževina Andora"},"ITA":{"common":"Andorra","official":"Principato di Andorra"},"NLD":{"common":"Andorra","official":"Prinsdom Andorra"},"POR":{"common":"Andorra","official":"Principado de Andorra"},"RUS":{"common":"Андорра","official":"Княжество Андорра"},"SPA":{"common":"Andorra","official":"Principado de Andorra"}},"currency":["EUR"],"Borders":["FRA","ESP"],"cca2":"AD","cca3":"AND","CIOC":"AND","CCN3":"020","callingCode":["376"],"InternationalPrefix":"00","region":"Europe","subregion":"Southern Europe","Continent":"Europe","capital":"Andorra la Vella","Area":468,"longitude":"1 30 E","latitude":"42 30 N","MinLongitude":1.416667,"MinLatitude":42.433333,"MaxLongitude":1.783333,"MaxLatitude":42.65,"Latitude":42.5506591796875,"Longitude":1.5762332677841187}
|
1
data/json/countries/ae.json
Normal file
1
data/json/countries/ae.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"United Arab Emirates","official":"United Arab Emirates","Native":{"ara":{"common":"دولة الإمارات العربية المتحدة","official":"الإمارات العربية المتحدة"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ae","امارات."],"Languages":{"ara":"Arabic"},"Translations":{"FIN":{"common":"Arabiemiraatit","official":"Yhdistyneet arabiemiirikunnat"},"FRA":{"common":"Émirats arabes unis","official":"Émirats arabes unis"},"ITA":{"common":"Emirati Arabi Uniti","official":"Emirati Arabi Uniti"},"JPN":{"common":"アラブ首長国連邦","official":"アラブ首長国連邦"},"RUS":{"common":"Объединённые Арабские Эмираты","official":"Объединенные Арабские Эмираты"},"SPA":{"common":"Emiratos Árabes Unidos","official":"Emiratos Árabes Unidos"}},"currency":["AED"],"Borders":["OMN","SAU"],"cca2":"AE","cca3":"ARE","CIOC":"UAE","CCN3":"784","callingCode":["971"],"InternationalPrefix":"00","region":"Asia","subregion":"Western Asia","Continent":"Asia","capital":"Abu Dhabi","Area":83600,"longitude":"54 00 E","latitude":"24 00 N","MinLongitude":45,"MinLatitude":22.166667,"MaxLongitude":58,"MaxLatitude":26.133333,"Latitude":23.684776306152344,"Longitude":54.536643981933594}
|
1
data/json/countries/af.json
Normal file
1
data/json/countries/af.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Afghanistan","official":"Islamic Republic of Afghanistan","Native":{"prs":{"common":"افغانستان","official":"جمهوری اسلامی افغانستان"},"pus":{"common":"افغانستان","official":"د افغانستان اسلامي جمهوریت"},"tuk":{"common":"Owganystan","official":"Owganystan Yslam Respublikasy"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".af"],"Languages":{"prs":"Dari","pus":"Pashto","tuk":"Turkmen"},"Translations":{"CYM":{"common":"Affganistan","official":"Islamic Republic of Afghanistan"},"NLD":{"common":"Afghanistan","official":"Islamitische Republiek Afghanistan"},"RUS":{"common":"Афганистан","official":"Исламская Республика Афганистан"}},"currency":["AFN"],"Borders":["IRN","PAK","TKM","UZB","TJK","CHN"],"cca2":"AF","cca3":"AFG","CIOC":"AFG","CCN3":"004","callingCode":["93"],"InternationalPrefix":"00","region":"Asia","subregion":"Southern Asia","Continent":"Asia","capital":"Kabul","Area":652230,"longitude":"65 00 E","latitude":"33 00 N","MinLongitude":60.566667,"MinLatitude":29.383333,"MaxLongitude":74.8868713067,"MaxLatitude":38.483611,"Latitude":33.833248138427734,"Longitude":66.02528381347656}
|
1
data/json/countries/ag.json
Normal file
1
data/json/countries/ag.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Antigua and Barbuda","official":"Antigua and Barbuda","Native":{"eng":{"common":"Antigua and Barbuda","official":"Antigua and Barbuda"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ag"],"Languages":{"eng":"English"},"Translations":{"DEU":{"common":"Antigua und Barbuda","official":"Antigua und Barbuda"},"FIN":{"common":"Antigua ja Barbuda","official":"Antigua ja Barbuda"},"ITA":{"common":"Antigua e Barbuda","official":"Antigua e Barbuda"},"JPN":{"common":"アンティグア・バーブーダ","official":"アンチグアバーブーダ"},"NLD":{"common":"Antigua en Barbuda","official":"Antigua en Barbuda"},"RUS":{"common":"Антигуа и Барбуда","official":"Антигуа и Барбуда"}},"currency":["XCD"],"Borders":[],"cca2":"AG","cca3":"ATG","CIOC":"ANT","CCN3":"028","callingCode":["1268"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Saint John's","Area":442,"longitude":"61 48 W","latitude":"17 03 N","MinLongitude":-62.333333,"MinLatitude":16.916667,"MaxLongitude":-61.666667,"MaxLatitude":17.733333,"Latitude":17.09273910522461,"Longitude":-61.81040954589844}
|
1
data/json/countries/ai.json
Normal file
1
data/json/countries/ai.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Anguilla","official":"Anguilla","Native":{"eng":{"common":"Anguilla","official":"Anguilla"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ai"],"Languages":{"eng":"English"},"Translations":{"DEU":{"common":"Anguilla","official":"Anguilla"},"FRA":{"common":"Anguilla","official":"Anguilla"},"HRV":{"common":"Angvila","official":"Anguilla"},"POR":{"common":"Anguilla","official":"Anguilla"},"RUS":{"common":"Ангилья","official":"Ангилья"},"SPA":{"common":"Anguilla","official":"Anguila"}},"currency":["XCD"],"Borders":[],"cca2":"AI","cca3":"AIA","CIOC":"","CCN3":"660","callingCode":["1264"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"The Valley","Area":91,"longitude":"63 10 W","latitude":"18 15 N","MinLongitude":-63.433333,"MinLatitude":18.15,"MaxLongitude":-62.916667,"MaxLatitude":18.6,"Latitude":18.22646713256836,"Longitude":-63.0473518371582}
|
1
data/json/countries/al.json
Normal file
1
data/json/countries/al.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Albania","official":"Republic of Albania","Native":{"sqi":{"common":"Shqipëria","official":"Republika e Shqipërisë"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".al"],"Languages":{"sqi":"Albanian"},"Translations":{"CYM":{"common":"Albania","official":"Republic of Albania"},"DEU":{"common":"Albanien","official":"Republik Albanien"},"FIN":{"common":"Albania","official":"Albanian tasavalta"},"HRV":{"common":"Albanija","official":"Republika Albanija"},"JPN":{"common":"アルバニア","official":"アルバニア共和国"},"NLD":{"common":"Albanië","official":"Republiek Albanië"},"POR":{"common":"Albânia","official":"República da Albânia"},"RUS":{"common":"Албания","official":"Республика Албания"},"SPA":{"common":"Albania","official":"República de Albania"}},"currency":["ALL"],"Borders":["MNE","GRC","MKD","KOS"],"cca2":"AL","cca3":"ALB","CIOC":"ALB","CCN3":"008","callingCode":["355"],"InternationalPrefix":"00","region":"Europe","subregion":"Southern Europe","Continent":"Europe","capital":"Tirana","Area":28748,"longitude":"20 00 E","latitude":"41 00 N","MinLongitude":19.266667,"MinLatitude":39.65,"MaxLongitude":21.05,"MaxLatitude":42.659167,"Latitude":41.11113357543945,"Longitude":20.02745246887207}
|
1
data/json/countries/am.json
Normal file
1
data/json/countries/am.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Armenia","official":"Republic of Armenia","Native":{"hye":{"common":"Հայաստան","official":"Հայաստանի Հանրապետություն"},"rus":{"common":"Армения","official":"Республика Армения"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".am"],"Languages":{"hye":"Armenian","rus":"Russian"},"Translations":{"CYM":{"common":"Armenia","official":"Republic of Armenia"},"DEU":{"common":"Armenien","official":"Republik Armenien"},"FIN":{"common":"Armenia","official":"Armenian tasavalta"},"HRV":{"common":"Armenija","official":"Republika Armenija"},"JPN":{"common":"アルメニア","official":"アルメニア共和国"},"POR":{"common":"Arménia","official":"República da Arménia"},"RUS":{"common":"Армения","official":"Республика Армения"},"SPA":{"common":"Armenia","official":"República de Armenia"}},"currency":["AMD"],"Borders":["AZE","GEO","IRN","TUR"],"cca2":"AM","cca3":"ARM","CIOC":"ARM","CCN3":"051","callingCode":["374"],"InternationalPrefix":"00","region":"Asia","subregion":"Western Asia","Continent":"Asia","capital":"Yerevan","Area":29743,"longitude":"45 00 E","latitude":"40 00 N","MinLongitude":43.4425,"MinLatitude":38.894167,"MaxLongitude":46.560556,"MaxLatitude":41.3,"Latitude":40.29266357421875,"Longitude":44.93947219848633}
|
1
data/json/countries/ao.json
Normal file
1
data/json/countries/ao.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Angola","official":"Republic of Angola","Native":{"por":{"common":"Angola","official":"República de Angola"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ao"],"Languages":{"por":"Portuguese"},"Translations":{"CYM":{"common":"Angola","official":"Republic of Angola"},"DEU":{"common":"Angola","official":"Republik Angola"},"FIN":{"common":"Angola","official":"Angolan tasavalta"},"FRA":{"common":"Angola","official":"République d'Angola"},"HRV":{"common":"Angola","official":"Republika Angola"},"JPN":{"common":"アンゴラ","official":"アンゴラ共和国"},"RUS":{"common":"Ангола","official":"Республика Ангола"}},"currency":["AOA"],"Borders":["COG","COD","ZMB","NAM"],"cca2":"AO","cca3":"AGO","CIOC":"ANG","CCN3":"024","callingCode":["244"],"InternationalPrefix":"00","region":"Africa","subregion":"Middle Africa","Continent":"Africa","capital":"Luanda","Area":1.2467e+06,"longitude":"18 30 E","latitude":"12 30 S","MinLongitude":10,"MinLatitude":-32,"MaxLongitude":23.983333,"MaxLatitude":-4.4,"Latitude":-12.333555221557617,"Longitude":17.539464950561523}
|
1
data/json/countries/aq.json
Normal file
1
data/json/countries/aq.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Antarctica","official":"Antarctica","Native":null},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".aq"],"Languages":{},"Translations":{"CYM":{"common":"Antarctica","official":"Antarctica"},"DEU":{"common":"Antarktis","official":"Antarktika"},"FIN":{"common":"Etelämanner","official":"Etelämanner"},"FRA":{"common":"Antarctique","official":"Antarctique"},"HRV":{"common":"Antarktika","official":"Antarktika"},"ITA":{"common":"Antartide","official":"Antartide"},"JPN":{"common":"南極","official":"南極大陸"},"POR":{"common":"Antártida","official":"Antártica"},"RUS":{"common":"Антарктида","official":"Антарктида"},"SPA":{"common":"Antártida","official":"Antártida"}},"currency":[],"Borders":[],"cca2":"AQ","cca3":"ATA","CIOC":"","CCN3":"010","callingCode":[],"InternationalPrefix":"","region":"","subregion":"","Continent":"Antarctica","capital":"","Area":1.4e+07,"longitude":"0 00 E","latitude":"90 00 S","MinLongitude":-180,"MinLatitude":-90,"MaxLongitude":180,"MaxLatitude":-60,"Latitude":-82.862752,"Longitude":-135}
|
1
data/json/countries/ar.json
Normal file
1
data/json/countries/ar.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Argentina","official":"Argentine Republic","Native":{"grn":{"common":"Argentina","official":"Argentine Republic"},"spa":{"common":"Argentina","official":"República Argentina"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ar"],"Languages":{"grn":"Guaraní","spa":"Spanish"},"Translations":{"CYM":{"common":"Ariannin","official":"Argentine Republic"},"FIN":{"common":"Argentiina","official":"Argentiinan tasavalta"},"FRA":{"common":"Argentine","official":"République argentine"},"HRV":{"common":"Argentina","official":"Argentinski Republika"},"ITA":{"common":"Argentina","official":"Repubblica Argentina"},"JPN":{"common":"アルゼンチン","official":"アルゼンチン共和国"},"NLD":{"common":"Argentinië","official":"Argentijnse Republiek"},"POR":{"common":"Argentina","official":"República Argentina"},"RUS":{"common":"Аргентина","official":"Аргентинская Республика"},"SPA":{"common":"Argentina","official":"República Argentina"}},"currency":["ARS"],"Borders":["BOL","BRA","CHL","PRY","URY"],"cca2":"AR","cca3":"ARG","CIOC":"ARG","CCN3":"032","callingCode":["54"],"InternationalPrefix":"00","region":"Americas","subregion":"South America","Continent":"South America","capital":"Buenos Aires","Area":2.7804e+06,"longitude":"64 00 W","latitude":"34 00 S","MinLongitude":-73.533333,"MinLatitude":-58.116667,"MaxLongitude":-53.65,"MaxLatitude":-21.783333,"Latitude":-37.071964263916016,"Longitude":-64.85450744628906}
|
1
data/json/countries/as.json
Normal file
1
data/json/countries/as.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"American Samoa","official":"American Samoa","Native":{"eng":{"common":"American Samoa","official":"American Samoa"},"smo":{"common":"Sāmoa Amelika","official":"Sāmoa Amelika"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".as"],"Languages":{"eng":"English","smo":"Samoan"},"Translations":{"FIN":{"common":"Amerikan Samoa","official":"Amerikan Samoa"},"FRA":{"common":"Samoa américaines","official":"Samoa américaines"},"ITA":{"common":"Samoa Americane","official":"Samoa americane"},"JPN":{"common":"アメリカ領サモア","official":"米サモア"},"NLD":{"common":"Amerikaans Samoa","official":"Amerikaans Samoa"},"RUS":{"common":"Американское Самоа","official":"американское Самоа"},"SPA":{"common":"Samoa Americana","official":"Samoa Americana"}},"currency":["USD"],"Borders":[],"cca2":"AS","cca3":"ASM","CIOC":"ASA","CCN3":"016","callingCode":["1684"],"InternationalPrefix":"011","region":"Oceania","subregion":"Polynesia","Continent":"Australia","capital":"Pago Pago","Area":199,"longitude":"170 00 W","latitude":"14 20 S","MinLongitude":-171.091873,"MinLatitude":-14.38247,"MaxLongitude":-169.416077,"MaxLatitude":-11.04969,"Latitude":-14.31956672668457,"Longitude":-170.7403564453125}
|
1
data/json/countries/at.json
Normal file
1
data/json/countries/at.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Austria","official":"Republic of Austria","Native":{"bar":{"common":"Österreich","official":"Republik Österreich"}}},"EuMember":true,"LandLocked":true,"Nationality":"","tld":[".at"],"Languages":{"bar":"Austro-Bavarian German"},"Translations":{"CYM":{"common":"Awstria","official":"Republic of Austria"},"FRA":{"common":"Autriche","official":"République d'Autriche"},"ITA":{"common":"Austria","official":"Repubblica d'Austria"},"JPN":{"common":"オーストリア","official":"オーストリア共和国"},"NLD":{"common":"Oostenrijk","official":"Republiek Oostenrijk"},"POR":{"common":"Áustria","official":"República da Áustria"},"SPA":{"common":"Austria","official":"República de Austria"}},"currency":["EUR"],"Borders":["CZE","DEU","HUN","ITA","LIE","SVK","SVN","CHE"],"cca2":"AT","cca3":"AUT","CIOC":"AUT","CCN3":"040","callingCode":["43"],"InternationalPrefix":"00","region":"Europe","subregion":"Western Europe","Continent":"Europe","capital":"Vienna","Area":83871,"longitude":"13 20 E","latitude":"47 20 N","MinLongitude":1.2,"MinLatitude":46.377222,"MaxLongitude":19,"MaxLatitude":49.016667,"Latitude":47.58843994140625,"Longitude":14.14021110534668}
|
1
data/json/countries/au.json
Normal file
1
data/json/countries/au.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Australia","official":"Commonwealth of Australia","Native":{"eng":{"common":"Australia","official":"Commonwealth of Australia"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".au"],"Languages":{"eng":"English"},"Translations":{"CYM":{"common":"Awstralia","official":"Commonwealth of Australia"},"DEU":{"common":"Australien","official":"Commonwealth Australien"},"FIN":{"common":"Australia","official":"Australian liittovaltio"},"FRA":{"common":"Australie","official":"Australie"},"HRV":{"common":"Australija","official":"Commonwealth of Australia"},"ITA":{"common":"Australia","official":"Commonwealth dell'Australia"},"POR":{"common":"Austrália","official":"Comunidade da Austrália"},"RUS":{"common":"Австралия","official":"Содружество Австралии"},"SPA":{"common":"Australia","official":"Mancomunidad de Australia"}},"currency":["AUD"],"Borders":[],"cca2":"AU","cca3":"AUS","CIOC":"AUS","CCN3":"036","callingCode":["61"],"InternationalPrefix":"0011","region":"Oceania","subregion":"Australia and New Zealand","Continent":"Australia","capital":"Canberra","Area":7.692024e+06,"longitude":"133 00 E","latitude":"27 00 S","MinLongitude":147.1,"MinLatitude":-29.472222,"MaxLongitude":159.119444,"MaxLatitude":-15.5,"Latitude":-25.585241317749023,"Longitude":134.50411987304688}
|
1
data/json/countries/aw.json
Normal file
1
data/json/countries/aw.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Aruba","official":"Aruba","Native":{"nld":{"common":"Aruba","official":"Aruba"},"pap":{"common":"Aruba","official":"Aruba"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".aw"],"Languages":{"nld":"Dutch","pap":"Papiamento"},"Translations":{"FIN":{"common":"Aruba","official":"Aruba"},"HRV":{"common":"Aruba","official":"Aruba"},"JPN":{"common":"アルバ","official":"アルバ"},"NLD":{"common":"Aruba","official":"Aruba"},"POR":{"common":"Aruba","official":"Aruba"},"RUS":{"common":"Аруба","official":"Аруба"},"SPA":{"common":"Aruba","official":"Aruba"}},"currency":["AWG"],"Borders":[],"cca2":"AW","cca3":"ABW","CIOC":"ARU","CCN3":"533","callingCode":["297"],"InternationalPrefix":"00","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Oranjestad","Area":180,"longitude":"69 58 W","latitude":"12 30 N","MinLongitude":-70.066667,"MinLatitude":12.416667,"MaxLongitude":-69.85,"MaxLatitude":12.616667,"Latitude":12.506523132324219,"Longitude":-69.96931457519531}
|
1
data/json/countries/ax.json
Normal file
1
data/json/countries/ax.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Åland Islands","official":"Åland Islands","Native":{"swe":{"common":"Åland","official":"Landskapet Åland"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ax"],"Languages":{"swe":"Swedish"},"Translations":{"DEU":{"common":"Åland","official":"Åland-Inseln"},"FIN":{"common":"Ahvenanmaa","official":"Ahvenanmaan maakunta"},"FRA":{"common":"Ahvenanmaa","official":"Ahvenanmaa"},"HRV":{"common":"Ålandski otoci","official":"Aland Islands"},"ITA":{"common":"Isole Aland","official":"Isole Åland"},"JPN":{"common":"オーランド諸島","official":"オーランド諸島"},"NLD":{"common":"Ålandeilanden","official":"Åland eilanden"},"RUS":{"common":"Аландские острова","official":"Аландские острова"},"SPA":{"common":"Alandia","official":"Islas Åland"}},"currency":["EUR"],"Borders":[],"cca2":"AX","cca3":"ALA","CIOC":"","CCN3":"248","callingCode":["358"],"InternationalPrefix":"","region":"Europe","subregion":"Northern Europe","Continent":"Europe","capital":"Mariehamn","Area":1580,"longitude":"","latitude":"","MinLongitude":19.2633194,"MinLatitude":59.7272227,"MaxLongitude":21.4858534,"MaxLatitude":60.7411127,"Latitude":60.2023811340332,"Longitude":19.96520233154297}
|
1
data/json/countries/az.json
Normal file
1
data/json/countries/az.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Azerbaijan","official":"Republic of Azerbaijan","Native":{"aze":{"common":"Azərbaycan","official":"Azərbaycan Respublikası"},"rus":{"common":"Азербайджан","official":"Азербайджанская Республика"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".az"],"Languages":{"aze":"Azerbaijani","rus":"Russian"},"Translations":{"DEU":{"common":"Aserbaidschan","official":"Republik Aserbaidschan"},"ITA":{"common":"Azerbaijan","official":"Repubblica dell'Azerbaigian"},"JPN":{"common":"アゼルバイジャン","official":"アゼルバイジャン共和国"},"POR":{"common":"Azerbeijão","official":"República do Azerbaijão"},"RUS":{"common":"Азербайджан","official":"Азербайджанская Республика"},"SPA":{"common":"Azerbaiyán","official":"República de Azerbaiyán"}},"currency":["AZN"],"Borders":["ARM","GEO","IRN","RUS","TUR"],"cca2":"AZ","cca3":"AZE","CIOC":"AZE","CCN3":"031","callingCode":["994"],"InternationalPrefix":"810","region":"Asia","subregion":"Western Asia","Continent":"Asia","capital":"Baku","Area":86600,"longitude":"47 30 E","latitude":"40 30 N","MinLongitude":44.876389,"MinLatitude":38.416667,"MaxLongitude":50.858333,"MaxLatitude":41.910556,"Latitude":40.33100509643555,"Longitude":47.80820083618164}
|
1
data/json/countries/ba.json
Normal file
1
data/json/countries/ba.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bosnia and Herzegovina","official":"Bosnia and Herzegovina","Native":{"bos":{"common":"Bosna i Hercegovina","official":"Bosna i Hercegovina"},"hrv":{"common":"Bosna i Hercegovina","official":"Bosna i Hercegovina"},"srp":{"common":"Боснa и Херцеговина","official":"Боснa и Херцеговина"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ba"],"Languages":{"bos":"Bosnian","hrv":"Croatian","srp":"Serbian"},"Translations":{"CYM":{"common":"Bosnia a Hercegovina","official":"Bosnia and Herzegovina"},"DEU":{"common":"Bosnien und Herzegowina","official":"Bosnien und Herzegowina"},"FRA":{"common":"Bosnie-Herzégovine","official":"Bosnie-et-Herzégovine"},"HRV":{"common":"Bosna i Hercegovina","official":"Bosna i Hercegovina"},"ITA":{"common":"Bosnia ed Erzegovina","official":"Bosnia-Erzegovina"},"JPN":{"common":"ボスニア・ヘルツェゴビナ","official":"ボスニア·ヘルツェゴビナ"},"NLD":{"common":"Bosnië en Herzegovina","official":"Bosnië-Herzegovina"},"POR":{"common":"Bósnia e Herzegovina","official":"Bósnia e Herzegovina"},"SPA":{"common":"Bosnia y Herzegovina","official":"Bosnia y Herzegovina"}},"currency":["BAM"],"Borders":["HRV","MNE","SRB"],"cca2":"BA","cca3":"BIH","CIOC":"BIH","CCN3":"070","callingCode":["387"],"InternationalPrefix":"00","region":"Europe","subregion":"Southern Europe","Continent":"Europe","capital":"Sarajevo","Area":51209,"longitude":"18 00 E","latitude":"44 00 N","MinLongitude":15.747222,"MinLatitude":42.558056,"MaxLongitude":19.618333,"MaxLatitude":45.268333,"Latitude":44.16533279418945,"Longitude":17.790241241455078}
|
1
data/json/countries/bb.json
Normal file
1
data/json/countries/bb.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Barbados","official":"Barbados","Native":{"eng":{"common":"Barbados","official":"Barbados"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bb"],"Languages":{"eng":"English"},"Translations":{"DEU":{"common":"Barbados","official":"Barbados"},"FIN":{"common":"Barbados","official":"Barbados"},"FRA":{"common":"Barbade","official":"Barbade"},"HRV":{"common":"Barbados","official":"Barbados"},"ITA":{"common":"Barbados","official":"Barbados"},"NLD":{"common":"Barbados","official":"Barbados"},"POR":{"common":"Barbados","official":"Barbados"},"SPA":{"common":"Barbados","official":"Barbados"}},"currency":["BBD"],"Borders":[],"cca2":"BB","cca3":"BRB","CIOC":"BAR","CCN3":"052","callingCode":["1246"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Bridgetown","Area":430,"longitude":"59 32 W","latitude":"13 10 N","MinLongitude":-59.65,"MinLatitude":13.033333,"MaxLongitude":-59.416667,"MaxLatitude":13.333333,"Latitude":13.178098678588867,"Longitude":-59.5485954284668}
|
1
data/json/countries/bd.json
Normal file
1
data/json/countries/bd.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bangladesh","official":"People's Republic of Bangladesh","Native":{"ben":{"common":"বাংলাদেশ","official":"বাংলাদেশ গণপ্রজাতন্ত্রী"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bd"],"Languages":{"ben":"Bengali"},"Translations":{"CYM":{"common":"Bangladesh","official":"People's Republic of Bangladesh"},"DEU":{"common":"Bangladesch","official":"Volksrepublik Bangladesch"},"FIN":{"common":"Bangladesh","official":"Bangladeshin kansantasavalta"},"FRA":{"common":"Bangladesh","official":"La République populaire du Bangladesh"},"ITA":{"common":"Bangladesh","official":"Repubblica popolare del Bangladesh"},"JPN":{"common":"バングラデシュ","official":"バングラデシュ人民共和国"},"SPA":{"common":"Bangladesh","official":"República Popular de Bangladesh"}},"currency":["BDT"],"Borders":["MMR","IND"],"cca2":"BD","cca3":"BGD","CIOC":"BAN","CCN3":"050","callingCode":["880"],"InternationalPrefix":"00","region":"Asia","subregion":"Southern Asia","Continent":"Asia","capital":"Dhaka","Area":147570,"longitude":"90 00 E","latitude":"24 00 N","MinLongitude":84,"MinLatitude":20.6,"MaxLongitude":92.683333,"MaxLatitude":26.5,"Latitude":23.730104446411133,"Longitude":90.30652618408203}
|
1
data/json/countries/be.json
Normal file
1
data/json/countries/be.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Belgium","official":"Kingdom of Belgium","Native":{"deu":{"common":"Belgien","official":"Königreich Belgien"},"fra":{"common":"Belgique","official":"Royaume de Belgique"},"nld":{"common":"België","official":"Koninkrijk België"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".be"],"Languages":{"deu":"German","fra":"French","nld":"Dutch"},"Translations":{"CYM":{"common":"Gwlad Belg","official":"Kingdom of Belgium"},"DEU":{"common":"Belgien","official":"Königreich Belgien"},"FIN":{"common":"Belgia","official":"Belgian kuningaskunta"},"FRA":{"common":"Belgique","official":"Royaume de Belgique"},"ITA":{"common":"Belgio","official":"Regno del Belgio"},"POR":{"common":"Bélgica","official":"Reino da Bélgica"},"RUS":{"common":"Бельгия","official":"Королевство Бельгия"}},"currency":["EUR"],"Borders":["FRA","DEU","LUX","NLD"],"cca2":"BE","cca3":"BEL","CIOC":"BEL","CCN3":"056","callingCode":["32"],"InternationalPrefix":"00","region":"Europe","subregion":"Western Europe","Continent":"Europe","capital":"Brussels","Area":30528,"longitude":"4 00 E","latitude":"50 50 N","MinLongitude":2.566667,"MinLatitude":49.516667,"MaxLongitude":6.4,"MaxLatitude":51.683333,"Latitude":50.648963928222656,"Longitude":4.641502380371094}
|
1
data/json/countries/bf.json
Normal file
1
data/json/countries/bf.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Burkina Faso","official":"Burkina Faso","Native":{"fra":{"common":"Burkina Faso","official":"République du Burkina"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".bf"],"Languages":{"fra":"French"},"Translations":{"DEU":{"common":"Burkina Faso","official":"Burkina Faso"},"FRA":{"common":"Burkina Faso","official":"République du Burkina"},"HRV":{"common":"Burkina Faso","official":"Burkina Faso"},"ITA":{"common":"Burkina Faso","official":"Burkina Faso"},"NLD":{"common":"Burkina Faso","official":"Burkina Faso"},"RUS":{"common":"Буркина-Фасо","official":"Буркина -Фасо"},"SPA":{"common":"Burkina Faso","official":"Burkina Faso"}},"currency":["XOF"],"Borders":["BEN","CIV","GHA","MLI","NER","TGO"],"cca2":"BF","cca3":"BFA","CIOC":"BUR","CCN3":"854","callingCode":["226"],"InternationalPrefix":"00","region":"Africa","subregion":"Western Africa","Continent":"Africa","capital":"Ouagadougou","Area":272967,"longitude":"2 00 W","latitude":"13 00 N","MinLongitude":-5.466667,"MinLatitude":9.45,"MaxLongitude":2.2655,"MaxLatitude":14.983333,"Latitude":12.284985542297363,"Longitude":-1.745560646057129}
|
1
data/json/countries/bg.json
Normal file
1
data/json/countries/bg.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bulgaria","official":"Republic of Bulgaria","Native":{"bul":{"common":"България","official":"Република България"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".bg"],"Languages":{"bul":"Bulgarian"},"Translations":{"DEU":{"common":"Bulgarien","official":"Republik Bulgarien"},"FIN":{"common":"Bulgaria","official":"Bulgarian tasavalta"},"FRA":{"common":"Bulgarie","official":"République de Bulgarie"},"HRV":{"common":"Bugarska","official":"Republika Bugarska"},"ITA":{"common":"Bulgaria","official":"Repubblica di Bulgaria"},"NLD":{"common":"Bulgarije","official":"Republiek Bulgarije"},"RUS":{"common":"Болгария","official":"Республика Болгария"},"SPA":{"common":"Bulgaria","official":"República de Bulgaria"}},"currency":["BGN"],"Borders":["GRC","MKD","ROU","SRB","TUR"],"cca2":"BG","cca3":"BGR","CIOC":"BUL","CCN3":"100","callingCode":["359"],"InternationalPrefix":"00","region":"Europe","subregion":"Eastern Europe","Continent":"Europe","capital":"Sofia","Area":110879,"longitude":"25 00 E","latitude":"43 00 N","MinLongitude":22.371389,"MinLatitude":41,"MaxLongitude":28.6,"MaxLatitude":44.193611,"Latitude":42.7661018371582,"Longitude":25.283733367919922}
|
1
data/json/countries/bh.json
Normal file
1
data/json/countries/bh.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bahrain","official":"Kingdom of Bahrain","Native":{"ara":{"common":"البحرين","official":"مملكة البحرين"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bh"],"Languages":{"ara":"Arabic"},"Translations":{"CYM":{"common":"Bahrain","official":"Kingdom of Bahrain"},"FIN":{"common":"Bahrain","official":"Bahrainin kuningaskunta"},"FRA":{"common":"Bahreïn","official":"Royaume de Bahreïn"},"HRV":{"common":"Bahrein","official":"Kraljevina Bahrein"},"JPN":{"common":"バーレーン","official":"バーレーン王国"},"NLD":{"common":"Bahrein","official":"Koninkrijk Bahrein"},"SPA":{"common":"Bahrein","official":"Reino de Bahrein"}},"currency":["BHD"],"Borders":[],"cca2":"BH","cca3":"BHR","CIOC":"BRN","CCN3":"048","callingCode":["973"],"InternationalPrefix":"00","region":"Asia","subregion":"Western Asia","Continent":"Asia","capital":"Manama","Area":765,"longitude":"50 33 E","latitude":"26 00 N","MinLongitude":45,"MinLatitude":25,"MaxLongitude":50.823333,"MaxLatitude":26.416667,"Latitude":26.094240188598633,"Longitude":50.54299545288086}
|
1
data/json/countries/bi.json
Normal file
1
data/json/countries/bi.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Burundi","official":"Republic of Burundi","Native":{"fra":{"common":"Burundi","official":"République du Burundi"},"run":{"common":"Uburundi","official":"Republika y'Uburundi "}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".bi"],"Languages":{"fra":"French","run":"Kirundi"},"Translations":{"CYM":{"common":"Bwrwndi","official":"Republic of Burundi"},"FIN":{"common":"Burundi","official":"Burundin tasavalta"},"FRA":{"common":"Burundi","official":"République du Burundi"},"HRV":{"common":"Burundi","official":"Burundi"},"ITA":{"common":"Burundi","official":"Repubblica del Burundi"},"NLD":{"common":"Burundi","official":"Republiek Burundi"},"POR":{"common":"Burundi","official":"República do Burundi"},"RUS":{"common":"Бурунди","official":"Республика Бурунди"},"SPA":{"common":"Burundi","official":"República de Burundi"}},"currency":["BIF"],"Borders":["COD","RWA","TZA"],"cca2":"BI","cca3":"BDI","CIOC":"BDI","CCN3":"108","callingCode":["257"],"InternationalPrefix":"00","region":"Africa","subregion":"Eastern Africa","Continent":"Africa","capital":"Bujumbura","Area":27834,"longitude":"30 00 E","latitude":"3 30 S","MinLongitude":29.023889,"MinLatitude":-4.443333,"MaxLongitude":30.831389,"MaxLatitude":-2.3425,"Latitude":-3.365208148956299,"Longitude":29.88650894165039}
|
1
data/json/countries/bj.json
Normal file
1
data/json/countries/bj.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Benin","official":"Republic of Benin","Native":{"fra":{"common":"Bénin","official":"République du Bénin"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bj"],"Languages":{"fra":"French"},"Translations":{"CYM":{"common":"Benin","official":"Republic of Benin"},"FIN":{"common":"Benin","official":"Beninin tasavalta"},"FRA":{"common":"Bénin","official":"République du Bénin"},"HRV":{"common":"Benin","official":"Republika Benin"},"JPN":{"common":"ベナン","official":"ベナン共和国"},"NLD":{"common":"Benin","official":"Republiek Benin"},"POR":{"common":"Benin","official":"República do Benin"},"SPA":{"common":"Benín","official":"República de Benin"}},"currency":["XOF"],"Borders":["BFA","NER","NGA","TGO"],"cca2":"BJ","cca3":"BEN","CIOC":"BEN","CCN3":"204","callingCode":["229"],"InternationalPrefix":"00","region":"Africa","subregion":"Western Africa","Continent":"Africa","capital":"Porto-Novo","Area":112622,"longitude":"2 15 E","latitude":"9 30 N","MinLongitude":-4,"MinLatitude":6.233333,"MaxLongitude":3.816667,"MaxLatitude":12.3614,"Latitude":9.624112129211426,"Longitude":2.3377387523651123}
|
1
data/json/countries/bl.json
Normal file
1
data/json/countries/bl.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Saint Barthélemy","official":"Collectivity of Saint Barthélemy","Native":{"fra":{"common":"Saint-Barthélemy","official":"Collectivité de Saint-Barthélemy"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bl"],"Languages":{"fra":"French"},"Translations":{"FRA":{"common":"Saint-Barthélemy","official":"Collectivité de Saint-Barthélemy"},"ITA":{"common":"Antille Francesi","official":"Collettività di Saint Barthélemy"},"JPN":{"common":"サン・バルテルミー","official":"サン·バルテルミー島の集合体"},"NLD":{"common":"Saint Barthélemy","official":"Gemeenschap Saint Barthélemy"},"POR":{"common":"São Bartolomeu","official":"Coletividade de Saint Barthélemy"},"RUS":{"common":"Сен-Бартелеми","official":"Коллективность Санкт -Бартельми"},"SPA":{"common":"San Bartolomé","official":"Colectividad de San Barthélemy"}},"currency":["EUR"],"Borders":[],"cca2":"BL","cca3":"BLM","CIOC":"","CCN3":"652","callingCode":["590"],"InternationalPrefix":"","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Gustavia","Area":21,"longitude":"62 85 W","latitude":"17 90 N","MinLongitude":-62.9118453,"MinLatitude":17.8708287,"MaxLongitude":-62.7892148,"MaxLatitude":17.960853,"Latitude":17.89626121520996,"Longitude":-62.83061218261719}
|
1
data/json/countries/bm.json
Normal file
1
data/json/countries/bm.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bermuda","official":"Bermuda","Native":{"eng":{"common":"Bermuda","official":"Bermuda"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bm"],"Languages":{"eng":"English"},"Translations":{"FRA":{"common":"Bermudes","official":"Bermudes"},"ITA":{"common":"Bermuda","official":"Bermuda"},"JPN":{"common":"バミューダ","official":"バミューダ"},"SPA":{"common":"Bermudas","official":"Bermuda"}},"currency":["BMD"],"Borders":[],"cca2":"BM","cca3":"BMU","CIOC":"BER","CCN3":"060","callingCode":["1441"],"InternationalPrefix":"011","region":"Americas","subregion":"Northern America","Continent":"North America","capital":"Hamilton","Area":54,"longitude":"64 45 W","latitude":"32 20 N","MinLongitude":-64.882778,"MinLatitude":32.246944,"MaxLongitude":-64.633333,"MaxLatitude":32.390556,"Latitude":32.302669525146484,"Longitude":-64.7516860961914}
|
1
data/json/countries/bn.json
Normal file
1
data/json/countries/bn.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Brunei","official":"Nation of Brunei, Abode of Peace","Native":{"msa":{"common":"Negara Brunei Darussalam","official":"Nation of Brunei, Abode Damai"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bn"],"Languages":{"msa":"Malay"},"Translations":{"DEU":{"common":"Brunei","official":"Nation von Brunei, Wohnung des Friedens"},"FIN":{"common":"Brunei","official":"Brunei Darussalamin valtio"},"HRV":{"common":"Brunej","official":"Nacija od Bruneja, Kuću Mira"},"ITA":{"common":"Brunei","official":"Nazione di Brunei, Dimora della Pace"},"JPN":{"common":"ブルネイ・ダルサラーム","official":"ブルネイ、平和の精舎の国家"},"NLD":{"common":"Brunei","official":"Natie van Brunei, de verblijfplaats van de Vrede"},"RUS":{"common":"Бруней","official":"Нация Бруней, обитель мира"}},"currency":["BND"],"Borders":["MYS"],"cca2":"BN","cca3":"BRN","CIOC":"BRU","CCN3":"096","callingCode":["673"],"InternationalPrefix":"00","region":"Asia","subregion":"South-Eastern Asia","Continent":"Asia","capital":"Bandar Seri Begawan","Area":5765,"longitude":"114 40 E","latitude":"4 30 N","MinLongitude":110,"MinLatitude":-2,"MaxLongitude":120,"MaxLatitude":5.05,"Latitude":4.5703840255737305,"Longitude":114.74818420410156}
|
1
data/json/countries/bo.json
Normal file
1
data/json/countries/bo.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bolivia","official":"Plurinational State of Bolivia","Native":{"aym":{"common":"Wuliwya","official":"Wuliwya Suyu"},"grn":{"common":"Volívia","official":"Tetã Volívia"},"que":{"common":"Buliwya","official":"Buliwya Mamallaqta"},"spa":{"common":"Bolivia","official":"Estado Plurinacional de Bolivia"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".bo"],"Languages":{"aym":"Aymara","grn":"Guaraní","que":"Quechua","spa":"Spanish"},"Translations":{"CYM":{"common":"Bolifia","official":"Plurinational State of Bolivia"},"FRA":{"common":"Bolivie","official":"État plurinational de Bolivie"},"HRV":{"common":"Bolivija","official":"Plurinational State of Bolivia"},"ITA":{"common":"Bolivia","official":"Stato Plurinazionale della Bolivia"},"JPN":{"common":"ボリビア多民族国","official":"ボリビアの多民族国"},"POR":{"common":"Bolívia","official":"Estado Plurinacional da Bolívia"},"RUS":{"common":"Боливия","official":"Многонациональное Государство Боливия"},"SPA":{"common":"Bolivia","official":"Estado Plurinacional de Bolivia"}},"currency":["BOB","BOV"],"Borders":["ARG","BRA","CHL","PRY","PER"],"cca2":"BO","cca3":"BOL","CIOC":"BOL","CCN3":"068","callingCode":["591"],"InternationalPrefix":"0010","region":"Americas","subregion":"South America","Continent":"South America","capital":"Sucre","Area":1.098581e+06,"longitude":"65 00 W","latitude":"17 00 S","MinLongitude":-69.6,"MinLatitude":-22.883333,"MaxLongitude":-57.566667,"MaxLatitude":-9.666667,"Latitude":-16.713054656982422,"Longitude":-64.6666488647461}
|
1
data/json/countries/br.json
Normal file
1
data/json/countries/br.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Brazil","official":"Federative Republic of Brazil","Native":{"por":{"common":"Brasil","official":"República Federativa do Brasil"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".br"],"Languages":{"por":"Portuguese"},"Translations":{"DEU":{"common":"Brasilien","official":"Föderative Republik Brasilien"},"FRA":{"common":"Brésil","official":"République fédérative du Brésil"},"ITA":{"common":"Brasile","official":"Repubblica federativa del Brasile"},"JPN":{"common":"ブラジル","official":"ブラジル連邦共和国"},"NLD":{"common":"Brazilië","official":"Federale Republiek Brazilië"},"RUS":{"common":"Бразилия","official":"Федеративная Республика Бразилия"}},"currency":["BRL"],"Borders":["ARG","BOL","COL","GUF","GUY","PRY","PER","SUR","URY","VEN"],"cca2":"BR","cca3":"BRA","CIOC":"BRA","CCN3":"076","callingCode":["55"],"InternationalPrefix":"0014","region":"Americas","subregion":"South America","Continent":"South America","capital":"Brasília","Area":8.515767e+06,"longitude":"55 00 W","latitude":"10 00 S","MinLongitude":-73.75,"MinLatitude":-33.733333,"MaxLongitude":-28.85,"MaxLatitude":5.266667,"Latitude":-10.81045150756836,"Longitude":-52.97311782836914}
|
1
data/json/countries/bs.json
Normal file
1
data/json/countries/bs.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bahamas","official":"Commonwealth of the Bahamas","Native":{"eng":{"common":"Bahamas","official":"Commonwealth of the Bahamas"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bs"],"Languages":{"eng":"English"},"Translations":{"CYM":{"common":"Bahamas","official":"Commonwealth of the Bahamas"},"FIN":{"common":"Bahamasaaret","official":"Bahaman liittovaltio"},"FRA":{"common":"Bahamas","official":"Commonwealth des Bahamas"},"HRV":{"common":"Bahami","official":"Zajednica Bahama"},"ITA":{"common":"Bahamas","official":"Commonwealth delle Bahamas"},"JPN":{"common":"バハマ","official":"バハマ"},"RUS":{"common":"Багамские Острова","official":"Содружество Багамских Островов"},"SPA":{"common":"Bahamas","official":"Commonwealth de las Bahamas"}},"currency":["BSD"],"Borders":[],"cca2":"BS","cca3":"BHS","CIOC":"BAH","CCN3":"044","callingCode":["1242"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Nassau","Area":13943,"longitude":"76 00 W","latitude":"24 15 N","MinLongitude":-80.483333,"MinLatitude":20,"MaxLongitude":-70,"MaxLatitude":29.375,"Latitude":25.035648345947266,"Longitude":-77.39512634277344}
|
1
data/json/countries/bt.json
Normal file
1
data/json/countries/bt.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bhutan","official":"Kingdom of Bhutan","Native":{"dzo":{"common":"འབྲུག་ཡུལ་","official":"འབྲུག་རྒྱལ་ཁབ་"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".bt"],"Languages":{"dzo":"Dzongkha"},"Translations":{"CYM":{"common":"Bhwtan","official":"Kingdom of Bhutan"},"DEU":{"common":"Bhutan","official":"Königreich Bhutan"},"FIN":{"common":"Bhutan","official":"Bhutanin kuningaskunta"},"JPN":{"common":"ブータン","official":"ブータン王国"},"NLD":{"common":"Bhutan","official":"Koninkrijk Bhutan"},"POR":{"common":"Butão","official":"Reino do Butão"},"RUS":{"common":"Бутан","official":"Королевство Бутан"},"SPA":{"common":"Bután","official":"Reino de Bután"}},"currency":["BTN","INR"],"Borders":["CHN","IND"],"cca2":"BT","cca3":"BTN","CIOC":"BHU","CCN3":"064","callingCode":["975"],"InternationalPrefix":"00","region":"Asia","subregion":"Southern Asia","Continent":"Asia","capital":"Thimphu","Area":38394,"longitude":"90 30 E","latitude":"27 30 N","MinLongitude":80,"MinLatitude":26.716667,"MaxLongitude":92.033333,"MaxLatitude":30,"Latitude":27.416879653930664,"Longitude":90.43476104736328}
|
1
data/json/countries/bv.json
Normal file
1
data/json/countries/bv.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Bouvet Island","official":"Bouvet Island","Native":{"nor":{"common":"Bouvetøya","official":"Bouvetøya"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bv"],"Languages":{"nor":"Norwegian"},"Translations":{"FIN":{"common":"Bouvet'nsaari","official":"Bouvet'nsaari"},"FRA":{"common":"Île Bouvet","official":"Île Bouvet"},"HRV":{"common":"Otok Bouvet","official":"Bouvet Island"},"NLD":{"common":"Bouveteiland","official":"Bouvet Island"},"POR":{"common":"Ilha Bouvet","official":"Ilha Bouvet"},"SPA":{"common":"Isla Bouvet","official":"Isla Bouvet"}},"currency":["NOK"],"Borders":[],"cca2":"BV","cca3":"BVT","CIOC":"","CCN3":"074","callingCode":[],"InternationalPrefix":"","region":"","subregion":"","Continent":"Antarctica","capital":"","Area":49,"longitude":"3 24 E","latitude":"54 26 S","MinLongitude":3.285278,"MinLatitude":-54.452778,"MaxLongitude":3.433889,"MaxLatitude":-54.386111,"Latitude":-54.4342041015625,"Longitude":3.4102511405944824}
|
1
data/json/countries/bw.json
Normal file
1
data/json/countries/bw.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Botswana","official":"Republic of Botswana","Native":{"eng":{"common":"Botswana","official":"Republic of Botswana"},"tsn":{"common":"Botswana","official":"Lefatshe la Botswana"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".bw"],"Languages":{"eng":"English","tsn":"Tswana"},"Translations":{"FIN":{"common":"Botswana","official":"Botswanan tasavalta"},"FRA":{"common":"Botswana","official":"République du Botswana"},"NLD":{"common":"Botswana","official":"Republiek Botswana"},"POR":{"common":"Botswana","official":"República do Botswana"},"SPA":{"common":"Botswana","official":"República de Botswana"}},"currency":["BWP"],"Borders":["NAM","ZAF","ZMB","ZWE"],"cca2":"BW","cca3":"BWA","CIOC":"BOT","CCN3":"072","callingCode":["267"],"InternationalPrefix":"00","region":"Africa","subregion":"Southern Africa","Continent":"Africa","capital":"Gaborone","Area":582000,"longitude":"24 00 E","latitude":"22 00 S","MinLongitude":20,"MinLatitude":-26.833333,"MaxLongitude":29.016667,"MaxLatitude":-17.833333,"Latitude":-22.186752319335938,"Longitude":23.81494140625}
|
1
data/json/countries/by.json
Normal file
1
data/json/countries/by.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Belarus","official":"Republic of Belarus","Native":{"bel":{"common":"Белару́сь","official":"Рэспубліка Беларусь"},"rus":{"common":"Белоруссия","official":"Республика Беларусь"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".by"],"Languages":{"bel":"Belarusian","rus":"Russian"},"Translations":{"CYM":{"common":"Belarws","official":"Republic of Belarus"},"DEU":{"common":"Weißrussland","official":"Republik Belarus"},"FIN":{"common":"Valko-Venäjä","official":"Valko-Venäjän tasavalta"},"FRA":{"common":"Biélorussie","official":"République de Biélorussie"},"HRV":{"common":"Bjelorusija","official":"Republika Bjelorusija"},"ITA":{"common":"Bielorussia","official":"Repubblica di Belarus"},"JPN":{"common":"ベラルーシ","official":"ベラルーシ共和国"},"NLD":{"common":"Wit-Rusland","official":"Republiek Belarus"},"RUS":{"common":"Белоруссия","official":"Республика Беларусь"},"SPA":{"common":"Bielorrusia","official":"República de Belarús"}},"currency":["BYR"],"Borders":["LVA","LTU","POL","RUS","UKR"],"cca2":"BY","cca3":"BLR","CIOC":"BLR","CCN3":"112","callingCode":["375"],"InternationalPrefix":"810","region":"Europe","subregion":"Eastern Europe","Continent":"Europe","capital":"Minsk","Area":207600,"longitude":"28 00 E","latitude":"53 00 N","MinLongitude":22.55,"MinLatitude":50.716667,"MaxLongitude":32.708056,"MaxLatitude":56.066667,"Latitude":53.54347229003906,"Longitude":28.054094314575195}
|
1
data/json/countries/bz.json
Normal file
1
data/json/countries/bz.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Belize","official":"Belize","Native":{"bjz":{"common":"Belize","official":"Belize"},"eng":{"common":"Belize","official":"Belize"},"spa":{"common":"Belice","official":"Belice"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".bz"],"Languages":{"bjz":"Belizean Creole","eng":"English","spa":"Spanish"},"Translations":{"DEU":{"common":"Belize","official":"Belize"},"FIN":{"common":"Belize","official":"Belize"},"FRA":{"common":"Belize","official":"Belize"},"HRV":{"common":"Belize","official":"Belize"},"ITA":{"common":"Belize","official":"Belize"},"JPN":{"common":"ベリーズ","official":"ベリーズ"},"NLD":{"common":"Belize","official":"Belize"},"POR":{"common":"Belize","official":"Belize"},"RUS":{"common":"Белиз","official":"Белиз"},"SPA":{"common":"Belice","official":"Belice"}},"currency":["BZD"],"Borders":["GTM","MEX"],"cca2":"BZ","cca3":"BLZ","CIOC":"BIZ","CCN3":"084","callingCode":["501"],"InternationalPrefix":"00","region":"Americas","subregion":"Central America","Continent":"North America","capital":"Belmopan","Area":22966,"longitude":"88 45 W","latitude":"17 15 N","MinLongitude":-89.216944,"MinLatitude":15.9,"MaxLongitude":-87.483333,"MaxLatitude":18.483333,"Latitude":17.225292205810547,"Longitude":-88.66973876953125}
|
1
data/json/countries/ca.json
Normal file
1
data/json/countries/ca.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Canada","official":"Canada","Native":{"eng":{"common":"Canada","official":"Canada"},"fra":{"common":"Canada","official":"Canada"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ca"],"Languages":{"eng":"English","fra":"French"},"Translations":{"FRA":{"common":"Canada","official":"Canada"},"HRV":{"common":"Kanada","official":"Kanada"},"JPN":{"common":"カナダ","official":"カナダ"},"NLD":{"common":"Canada","official":"Canada"},"RUS":{"common":"Канада","official":"Канада"},"SPA":{"common":"Canadá","official":"Canadá"}},"currency":["CAD"],"Borders":["USA"],"cca2":"CA","cca3":"CAN","CIOC":"CAN","CCN3":"124","callingCode":["1"],"InternationalPrefix":"011","region":"Americas","subregion":"Northern America","Continent":"North America","capital":"Ottawa","Area":9.98467e+06,"longitude":"95 00 W","latitude":"60 00 N","MinLongitude":-141.666667,"MinLatitude":40,"MaxLongitude":-52.666667,"MaxLatitude":83.116667,"Latitude":62.832908630371094,"Longitude":-95.91332244873047}
|
1
data/json/countries/cc.json
Normal file
1
data/json/countries/cc.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cocos (Keeling) Islands","official":"Territory of the Cocos (Keeling) Islands","Native":{"eng":{"common":"Cocos (Keeling) Islands","official":"Territory of the Cocos (Keeling) Islands"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cc"],"Languages":{"eng":"English"},"Translations":{"CYM":{"common":"Ynysoedd Cocos","official":"Territory of the Cocos (Keeling) Islands"},"DEU":{"common":"Kokosinseln","official":"Gebiet der Cocos (Keeling) Islands"},"FRA":{"common":"Îles Cocos","official":"Territoire des îles Cocos (Keeling)"},"HRV":{"common":"Kokosovi Otoci","official":"Teritoriju Kokosovi (Keeling) Islands"},"ITA":{"common":"Isole Cocos e Keeling","official":"Territorio della (Keeling) Isole Cocos"},"NLD":{"common":"Cocoseilanden","official":"Grondgebied van de Eilanden Cocos (Keeling )"},"POR":{"common":"Ilhas Cocos (Keeling)","official":"Território dos Cocos (Keeling)"},"RUS":{"common":"Кокосовые острова","official":"Территория Кокосовые (Килинг) острова"},"SPA":{"common":"Islas Cocos o Islas Keeling","official":"Territorio de los (Keeling) Islas Cocos"}},"currency":["AUD"],"Borders":[],"cca2":"CC","cca3":"CCK","CIOC":"","CCN3":"166","callingCode":["61"],"InternationalPrefix":"0011","region":"Oceania","subregion":"Australia and New Zealand","Continent":"Asia","capital":"West Island","Area":14,"longitude":"96 50 E","latitude":"12 30 S","MinLongitude":96.816667,"MinLatitude":-12.204167,"MaxLongitude":96.918056,"MaxLatitude":-11.833333,"Latitude":-12.200602531433105,"Longitude":96.85894012451172}
|
1
data/json/countries/cd.json
Normal file
1
data/json/countries/cd.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"DR Congo","official":"Democratic Republic of the Congo","Native":{"fra":{"common":"RD Congo","official":"République démocratique du Congo"},"kon":{"common":"Repubilika ya Kongo Demokratiki","official":"Repubilika ya Kongo Demokratiki"},"lin":{"common":"Republiki ya Kongó Demokratiki","official":"Republiki ya Kongó Demokratiki"},"lua":{"common":"Ditunga dia Kongu wa Mungalaata","official":"Ditunga dia Kongu wa Mungalaata"},"swa":{"common":"Jamhuri ya Kidemokrasia ya Kongo","official":"Jamhuri ya Kidemokrasia ya Kongo"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cd"],"Languages":{"fra":"French","kon":"Kikongo","lin":"Lingala","lua":"Tshiluba","swa":"Swahili"},"Translations":{"CYM":{"common":"Gweriniaeth Ddemocrataidd Congo","official":"Democratic Republic of the Congo"},"DEU":{"common":"Kongo (Dem. Rep.)","official":"Demokratische Republik Kongo"},"HRV":{"common":"Kongo, Demokratska Republika","official":"Demokratska Republika Kongo"},"ITA":{"common":"Congo (Rep. Dem.)","official":"Repubblica Democratica del Congo"},"JPN":{"common":"コンゴ民主共和国","official":"コンゴ民主共和国"},"NLD":{"common":"Congo (DRC)","official":"Democratische Republiek Congo"},"POR":{"common":"República Democrática do Congo","official":"República Democrática do Congo"},"RUS":{"common":"Демократическая Республика Конго","official":"Демократическая Республика Конго"},"SPA":{"common":"Congo (Rep. Dem.)","official":"República Democrática del Congo"}},"currency":["CDF"],"Borders":["AGO","BDI","CAF","COG","RWA","SSD","TZA","UGA","ZMB"],"cca2":"CD","cca3":"COD","CIOC":"COD","CCN3":"180","callingCode":["243"],"InternationalPrefix":"00","region":"Africa","subregion":"Middle Africa","Continent":"Africa","capital":"Kinshasa","Area":2.344858e+06,"longitude":"25 00 E","latitude":"0 00 N","MinLongitude":12.266667,"MinLatitude":-13.466667,"MaxLongitude":31.233333,"MaxLatitude":5.133333,"Latitude":-2.879866123199463,"Longitude":23.6563777923584}
|
1
data/json/countries/cf.json
Normal file
1
data/json/countries/cf.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Central African Republic","official":"Central African Republic","Native":{"fra":{"common":"République centrafricaine","official":"République centrafricaine"},"sag":{"common":"Bêafrîka","official":"Ködörösêse tî Bêafrîka"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".cf"],"Languages":{"fra":"French","sag":"Sango"},"Translations":{"CYM":{"common":"Gweriniaeth Canolbarth Affrica","official":"Central African Republic"},"DEU":{"common":"Zentralafrikanische Republik","official":"Zentralafrikanische Republik"},"FIN":{"common":"Keski-Afrikan tasavalta","official":"Keski-Afrikan tasavalta"},"FRA":{"common":"République centrafricaine","official":"République centrafricaine"},"HRV":{"common":"Srednjoafrička Republika","official":"Centralna Afrička Republika"},"NLD":{"common":"Centraal-Afrikaanse Republiek","official":"Centraal-Afrikaanse Republiek"},"POR":{"common":"República Centro-Africana","official":"República Centro-Africano"},"RUS":{"common":"Центральноафриканская Республика","official":"Центрально-Африканская Республика"}},"currency":["XAF"],"Borders":["CMR","TCD","COD","COG","SSD","SDN"],"cca2":"CF","cca3":"CAF","CIOC":"CAF","CCN3":"140","callingCode":["236"],"InternationalPrefix":"00","region":"Africa","subregion":"Middle Africa","Continent":"Africa","capital":"Bangui","Area":622984,"longitude":"21 00 E","latitude":"7 00 N","MinLongitude":14.533333,"MinLatitude":2.433333,"MaxLongitude":27.216667,"MaxLatitude":10.7,"Latitude":6.574123382568359,"Longitude":20.486923217773438}
|
1
data/json/countries/cg.json
Normal file
1
data/json/countries/cg.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Republic of the Congo","official":"Republic of the Congo","Native":{"fra":{"common":"République du Congo","official":"République du Congo"},"kon":{"common":"Repubilika ya Kongo","official":"Repubilika ya Kongo"},"lin":{"common":"Republíki ya Kongó","official":"Republíki ya Kongó"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cg"],"Languages":{"fra":"French","kon":"Kikongo","lin":"Lingala"},"Translations":{"CYM":{"common":"Gweriniaeth y Congo","official":"Republic of the Congo"},"DEU":{"common":"Kongo","official":"Republik Kongo"},"FRA":{"common":"Congo","official":"République du Congo"},"HRV":{"common":"Kongo","official":"Republika Kongo"},"JPN":{"common":"コンゴ共和国","official":"コンゴ共和国"},"NLD":{"common":"Congo","official":"Republiek Congo"},"POR":{"common":"Congo","official":"República do Congo"},"RUS":{"common":"Республика Конго","official":"Республика Конго"},"SPA":{"common":"Congo","official":"República del Congo"}},"currency":["XAF"],"Borders":["AGO","CMR","CAF","COD","GAB"],"cca2":"CG","cca3":"COG","CIOC":"CGO","CCN3":"178","callingCode":["242"],"InternationalPrefix":"00","region":"Africa","subregion":"Middle Africa","Continent":"Africa","capital":"Brazzaville","Area":342000,"longitude":"15 00 E","latitude":"1 00 S","MinLongitude":11.166667,"MinLatitude":-4.995556,"MaxLongitude":20,"MaxLatitude":3.866667,"Latitude":-2.879866123199463,"Longitude":23.6563777923584}
|
1
data/json/countries/ch.json
Normal file
1
data/json/countries/ch.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Switzerland","official":"Swiss Confederation","Native":{"fra":{"common":"Suisse","official":"Confédération suisse"},"gsw":{"common":"Schweiz","official":"Schweizerische Eidgenossenschaft"},"ita":{"common":"Svizzera","official":"Confederazione Svizzera"},"roh":{"common":"Svizra","official":"Confederaziun svizra"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".ch"],"Languages":{"fra":"French","gsw":"Swiss German","ita":"Italian","roh":"Romansh"},"Translations":{"FRA":{"common":"Suisse","official":"Confédération suisse"},"ITA":{"common":"Svizzera","official":"Confederazione svizzera"},"JPN":{"common":"スイス","official":"スイス連邦"},"NLD":{"common":"Zwitserland","official":"Zwitserse Confederatie"},"POR":{"common":"Suíça","official":"Confederação Suíça"},"RUS":{"common":"Швейцария","official":"Швейцарская Конфедерация"},"SPA":{"common":"Suiza","official":"Confederación Suiza"}},"currency":["CHE","CHF","CHW"],"Borders":["AUT","FRA","ITA","LIE","DEU"],"cca2":"CH","cca3":"CHE","CIOC":"SUI","CCN3":"756","callingCode":["41"],"InternationalPrefix":"00","region":"Europe","subregion":"Western Europe","Continent":"Europe","capital":"Bern","Area":41284,"longitude":"8 00 E","latitude":"47 00 N","MinLongitude":6,"MinLatitude":45.366667,"MaxLongitude":10.5,"MaxLatitude":47.8085,"Latitude":46.80379867553711,"Longitude":8.222854614257812}
|
1
data/json/countries/ci.json
Normal file
1
data/json/countries/ci.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Ivory Coast","official":"Republic of Côte d'Ivoire","Native":{"fra":{"common":"Côte d'Ivoire","official":"République de Côte d'Ivoire"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ci"],"Languages":{"fra":"French"},"Translations":{"DEU":{"common":"Elfenbeinküste","official":"Republik Côte d'Ivoire"},"FIN":{"common":"Norsunluurannikko","official":"Norsunluurannikon tasavalta"},"FRA":{"common":"Côte d'Ivoire","official":"République de Côte d' Ivoire"},"HRV":{"common":"Obala Bjelokosti","official":"Republika Côte d'Ivoire"},"JPN":{"common":"コートジボワール","official":"コートジボワール共和国"},"POR":{"common":"Costa do Marfim","official":"República da Côte d'Ivoire"},"SPA":{"common":"Costa de Marfil","official":"República de Côte d'Ivoire"}},"currency":["XOF"],"Borders":["BFA","GHA","GIN","LBR","MLI"],"cca2":"CI","cca3":"CIV","CIOC":"CIV","CCN3":"384","callingCode":["225"],"InternationalPrefix":"00","region":"Africa","subregion":"Western Africa","Continent":"Africa","capital":"Yamoussoukro","Area":322463,"longitude":"5 00 W","latitude":"8 00 N","MinLongitude":-8.538889,"MinLatitude":4.35,"MaxLongitude":-2.566667,"MaxLatitude":10.652222,"Latitude":7.598755359649658,"Longitude":-5.552574634552002}
|
1
data/json/countries/ck.json
Normal file
1
data/json/countries/ck.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cook Islands","official":"Cook Islands","Native":{"eng":{"common":"Cook Islands","official":"Cook Islands"},"rar":{"common":"Kūki 'Āirani","official":"Kūki 'Āirani"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ck"],"Languages":{"eng":"English","rar":"Cook Islands Māori"},"Translations":{"CYM":{"common":"Ynysoedd Cook","official":"Cook Islands"},"DEU":{"common":"Cookinseln","official":"Cook-Inseln"},"FIN":{"common":"Cookinsaaret","official":"Cookinsaaret"},"FRA":{"common":"Îles Cook","official":"Îles Cook"},"ITA":{"common":"Isole Cook","official":"Isole Cook"},"JPN":{"common":"クック諸島","official":"クック諸島"},"NLD":{"common":"Cookeilanden","official":"Cook eilanden"},"SPA":{"common":"Islas Cook","official":"Islas Cook"}},"currency":["NZD"],"Borders":[],"cca2":"CK","cca3":"COK","CIOC":"COK","CCN3":"184","callingCode":["682"],"InternationalPrefix":"00","region":"Oceania","subregion":"Polynesia","Continent":"Australia","capital":"Avarua","Area":236,"longitude":"159 46 W","latitude":"21 14 S","MinLongitude":-171.783333,"MinLatitude":-21.953056,"MaxLongitude":-157.3375,"MaxLatitude":-8.918611,"Latitude":-21.22330665588379,"Longitude":-159.7405548095703}
|
1
data/json/countries/cl.json
Normal file
1
data/json/countries/cl.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Chile","official":"Republic of Chile","Native":{"spa":{"common":"Chile","official":"República de Chile"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cl"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Chile","official":"Republic of Chile"},"DEU":{"common":"Chile","official":"Republik Chile"},"FIN":{"common":"Chile","official":"Chilen tasavalta"},"FRA":{"common":"Chili","official":"République du Chili"},"HRV":{"common":"Čile","official":"Republika Čile"},"ITA":{"common":"Cile","official":"Repubblica del Cile"},"NLD":{"common":"Chili","official":"Republiek Chili"},"RUS":{"common":"Чили","official":"Республика Чили"},"SPA":{"common":"Chile","official":"República de Chile"}},"currency":["CLF","CLP"],"Borders":["ARG","BOL","PER"],"cca2":"CL","cca3":"CHL","CIOC":"CHI","CCN3":"152","callingCode":["56"],"InternationalPrefix":"00","region":"Americas","subregion":"South America","Continent":"South America","capital":"Santiago","Area":756102,"longitude":"71 00 W","latitude":"30 00 S","MinLongitude":-109.466667,"MinLatitude":-56.533333,"MaxLongitude":-66.433333,"MaxLatitude":-17.53,"Latitude":-35.78622817993164,"Longitude":-71.67467498779297}
|
1
data/json/countries/cm.json
Normal file
1
data/json/countries/cm.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cameroon","official":"Republic of Cameroon","Native":{"eng":{"common":"Cameroon","official":"Republic of Cameroon"},"fra":{"common":"Cameroun","official":"République du Cameroun"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cm"],"Languages":{"eng":"English","fra":"French"},"Translations":{"DEU":{"common":"Kamerun","official":"Republik Kamerun"},"FRA":{"common":"Cameroun","official":"République du Cameroun"},"HRV":{"common":"Kamerun","official":"Republika Kamerun"},"ITA":{"common":"Camerun","official":"Repubblica del Camerun"},"JPN":{"common":"カメルーン","official":"カメルーン共和国"},"NLD":{"common":"Kameroen","official":"Republiek Kameroen"},"POR":{"common":"Camarões","official":"República dos Camarões"},"RUS":{"common":"Камерун","official":"Республика Камерун"}},"currency":["XAF"],"Borders":["CAF","TCD","COG","GNQ","GAB","NGA"],"cca2":"CM","cca3":"CMR","CIOC":"CMR","CCN3":"120","callingCode":["237"],"InternationalPrefix":"00","region":"Africa","subregion":"Middle Africa","Continent":"Africa","capital":"Yaoundé","Area":475442,"longitude":"12 00 E","latitude":"6 00 N","MinLongitude":8.483333,"MinLatitude":2.016667,"MaxLongitude":16,"MaxLatitude":16,"Latitude":5.685476779937744,"Longitude":12.722877502441406}
|
1
data/json/countries/cn.json
Normal file
1
data/json/countries/cn.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"China","official":"People's Republic of China","Native":{"cmn":{"common":"中国","official":"中华人民共和国"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cn",".中国",".中國",".公司",".网络"],"Languages":{"cmn":"Mandarin"},"Translations":{"FRA":{"common":"Chine","official":"République populaire de Chine"},"ITA":{"common":"Cina","official":"Repubblica popolare cinese"},"JPN":{"common":"中国","official":"中華人民共和国"},"NLD":{"common":"China","official":"Volksrepubliek China"},"POR":{"common":"China","official":"República Popular da China"},"RUS":{"common":"Китай","official":"Народная Республика Китай"},"SPA":{"common":"China","official":"República Popular de China"}},"currency":["CNY"],"Borders":["AFG","BTN","MMR","HKG","IND","KAZ","PRK","KGZ","LAO","MAC","MNG","PAK","RUS","TJK","VNM"],"cca2":"CN","cca3":"CHN","CIOC":"CHN","CCN3":"156","callingCode":["86"],"InternationalPrefix":"00","region":"Asia","subregion":"Eastern Asia","Continent":"Asia","capital":"Beijing","Area":9.706961e+06,"longitude":"105 00 E","latitude":"35 00 N","MinLongitude":106.7,"MinLatitude":6.183333,"MaxLongitude":117.816667,"MaxLatitude":20.7,"Latitude":36.55308532714844,"Longitude":103.97543334960938}
|
1
data/json/countries/co.json
Normal file
1
data/json/countries/co.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Colombia","official":"Republic of Colombia","Native":{"spa":{"common":"Colombia","official":"República de Colombia"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".co"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Colombia","official":"Republic of Colombia"},"DEU":{"common":"Kolumbien","official":"Republik Kolumbien"},"FIN":{"common":"Kolumbia","official":"Kolumbian tasavalta"},"FRA":{"common":"Colombie","official":"République de Colombie"},"HRV":{"common":"Kolumbija","official":"Republika Kolumbija"},"ITA":{"common":"Colombia","official":"Repubblica di Colombia"},"JPN":{"common":"コロンビア","official":"コロンビア共和国"},"POR":{"common":"Colômbia","official":"República da Colômbia"}},"currency":["COP"],"Borders":["BRA","ECU","PAN","PER","VEN"],"cca2":"CO","cca3":"COL","CIOC":"COL","CCN3":"170","callingCode":["57"],"InternationalPrefix":"005","region":"Americas","subregion":"South America","Continent":"South America","capital":"Bogotá","Area":1.141748e+06,"longitude":"72 00 W","latitude":"4 00 N","MinLongitude":-81.85,"MinLatitude":-4.214722,"MaxLongitude":-66.854722,"MaxLatitude":13.383333,"Latitude":3.9976072311401367,"Longitude":-73.27796936035156}
|
1
data/json/countries/cr.json
Normal file
1
data/json/countries/cr.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Costa Rica","official":"Republic of Costa Rica","Native":{"spa":{"common":"Costa Rica","official":"República de Costa Rica"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cr"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Costa Rica","official":"Republic of Costa Rica"},"HRV":{"common":"Kostarika","official":"Republika Kostarika"},"ITA":{"common":"Costa Rica","official":"Repubblica di Costa Rica"},"JPN":{"common":"コスタリカ","official":"コスタリカ共和国"},"NLD":{"common":"Costa Rica","official":"Republiek Costa Rica"},"POR":{"common":"Costa Rica","official":"República da Costa Rica"},"SPA":{"common":"Costa Rica","official":"República de Costa Rica"}},"currency":["CRC"],"Borders":["NIC","PAN"],"cca2":"CR","cca3":"CRI","CIOC":"CRC","CCN3":"188","callingCode":["506"],"InternationalPrefix":"00","region":"Americas","subregion":"Central America","Continent":"North America","capital":"San José","Area":51100,"longitude":"84 00 W","latitude":"10 00 N","MinLongitude":-87.1,"MinLatitude":5.5,"MaxLongitude":-82.05,"MaxLatitude":11.216667,"Latitude":9.884991645812988,"Longitude":-84.22723388671875}
|
1
data/json/countries/cu.json
Normal file
1
data/json/countries/cu.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cuba","official":"Republic of Cuba","Native":{"spa":{"common":"Cuba","official":"República de Cuba"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cu"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Ciwba","official":"Republic of Cuba"},"DEU":{"common":"Kuba","official":"Republik Kuba"},"FIN":{"common":"Kuuba","official":"Kuuban tasavalta"},"HRV":{"common":"Kuba","official":"Republika Kuba"},"ITA":{"common":"Cuba","official":"Repubblica di Cuba"},"JPN":{"common":"キューバ","official":"キューバ共和国"},"NLD":{"common":"Cuba","official":"Republiek Cuba"},"POR":{"common":"Cuba","official":"República de Cuba"}},"currency":["CUC","CUP"],"Borders":[],"cca2":"CU","cca3":"CUB","CIOC":"CUB","CCN3":"192","callingCode":["53"],"InternationalPrefix":"119","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Havana","Area":109884,"longitude":"80 00 W","latitude":"21 30 N","MinLongitude":-84.950833,"MinLatitude":19.828056,"MaxLongitude":-74.135,"MaxLatitude":23.265833,"Latitude":22.066335678100586,"Longitude":-79.4531478881836}
|
1
data/json/countries/cv.json
Normal file
1
data/json/countries/cv.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cape Verde","official":"Republic of Cabo Verde","Native":{"por":{"common":"Cabo Verde","official":"República de Cabo Verde"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cv"],"Languages":{"por":"Portuguese"},"Translations":{"FIN":{"common":"Kap Verde","official":"Kap Verden tasavalta"},"FRA":{"common":"Îles du Cap-Vert","official":"République du Cap-Vert"},"JPN":{"common":"カーボベルデ","official":"カーボベルデ共和国"},"NLD":{"common":"Kaapverdië","official":"Republiek van Cabo Verde"},"POR":{"common":"Cabo Verde","official":"República de Cabo Verde"},"RUS":{"common":"Кабо-Верде","official":"Республика Кабо -Верде"},"SPA":{"common":"Cabo Verde","official":"República de Cabo Verde"}},"currency":["CVE"],"Borders":[],"cca2":"CV","cca3":"CPV","CIOC":"CPV","CCN3":"132","callingCode":["238"],"InternationalPrefix":"00","region":"Africa","subregion":"Western Africa","Continent":"Africa","capital":"Praia","Area":4033,"longitude":"24 00 W","latitude":"16 00 N","MinLongitude":-25.366667,"MinLatitude":14.8,"MaxLongitude":-22.666667,"MaxLatitude":17.2,"Latitude":15.183002471923828,"Longitude":-23.70345115661621}
|
1
data/json/countries/cw.json
Normal file
1
data/json/countries/cw.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Curaçao","official":"Country of Curaçao","Native":{"eng":{"common":"Curaçao","official":"Country of Curaçao"},"nld":{"common":"Curaçao","official":"Land Curaçao"},"pap":{"common":"Pais Kòrsou","official":"Pais Kòrsou"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cw"],"Languages":{"eng":"English","nld":"Dutch","pap":"Papiamento"},"Translations":{"FIN":{"common":"Curaçao","official":"Curaçao"},"NLD":{"common":"Curaçao","official":"Land Curaçao"},"POR":{"common":"ilha da Curação","official":"País de Curaçao"},"RUS":{"common":"Кюрасао","official":"Страна Кюрасао"},"SPA":{"common":"Curazao","official":"País de Curazao"}},"currency":["ANG"],"Borders":[],"cca2":"CW","cca3":"CUW","CIOC":"","CCN3":"531","callingCode":["5999"],"InternationalPrefix":"00","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Willemstad","Area":444,"longitude":"69 0 W","latitude":"12 11 N","MinLongitude":-69.157204,"MinLatitude":11.97319,"MaxLongitude":-68.639328,"MaxLatitude":12.38567,"Latitude":12.163220405578613,"Longitude":-68.94505310058594}
|
1
data/json/countries/cx.json
Normal file
1
data/json/countries/cx.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Christmas Island","official":"Territory of Christmas Island","Native":{"eng":{"common":"Christmas Island","official":"Territory of Christmas Island"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".cx"],"Languages":{"eng":"English"},"Translations":{"JPN":{"common":"クリスマス島","official":"クリスマス島の領土"},"POR":{"common":"Ilha do Natal","official":"Território da Ilha Christmas"},"RUS":{"common":"Остров Рождества","official":"Территория острова Рождества"},"SPA":{"common":"Isla de Navidad","official":"Territorio de la Isla de Navidad"}},"currency":["AUD"],"Borders":[],"cca2":"CX","cca3":"CXR","CIOC":"","CCN3":"162","callingCode":["61"],"InternationalPrefix":"0011","region":"Oceania","subregion":"Australia and New Zealand","Continent":"Asia","capital":"Flying Fish Cove","Area":135,"longitude":"105 40 E","latitude":"10 30 S","MinLongitude":105.566667,"MinLatitude":-10.566667,"MaxLongitude":105.75,"MaxLatitude":-10.4,"Latitude":-10.490290641784668,"Longitude":105.63275146484375}
|
1
data/json/countries/cy.json
Normal file
1
data/json/countries/cy.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Cyprus","official":"Republic of Cyprus","Native":{"ell":{"common":"Κύπρος","official":"Δημοκρατία της Κύπρος"},"tur":{"common":"Kıbrıs","official":"Kıbrıs Cumhuriyeti"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".cy"],"Languages":{"ell":"Greek","tur":"Turkish"},"Translations":{"FIN":{"common":"Kypros","official":"Kyproksen tasavalta"},"FRA":{"common":"Chypre","official":"République de Chypre"},"HRV":{"common":"Cipar","official":"Republika Cipar"},"ITA":{"common":"Cipro","official":"Repubblica di Cipro"},"JPN":{"common":"キプロス","official":"キプロス共和国"},"RUS":{"common":"Кипр","official":"Республика Кипр"},"SPA":{"common":"Chipre","official":"República de Chipre"}},"currency":["EUR"],"Borders":["GBR"],"cca2":"CY","cca3":"CYP","CIOC":"CYP","CCN3":"196","callingCode":["357"],"InternationalPrefix":"00","region":"Europe","subregion":"Eastern Europe","Continent":"Asia","capital":"Nicosia","Area":9251,"longitude":"33 00 E","latitude":"35 00 N","MinLongitude":32.270833,"MinLatitude":34.566667,"MaxLongitude":34.6,"MaxLatitude":35.7,"Latitude":35.11473846435547,"Longitude":33.486717224121094}
|
1
data/json/countries/cz.json
Normal file
1
data/json/countries/cz.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Czech Republic","official":"Czech Republic","Native":{"ces":{"common":"Česká republika","official":"česká republika"},"slk":{"common":"Česká republika","official":"Česká republika"}}},"EuMember":true,"LandLocked":true,"Nationality":"","tld":[".cz"],"Languages":{"ces":"Czech","slk":"Slovak"},"Translations":{"CYM":{"common":"Y Weriniaeth Tsiec","official":"Czech Republic"},"FIN":{"common":"Tšekki","official":"Tšekin tasavalta"},"FRA":{"common":"République tchèque","official":"République tchèque"},"ITA":{"common":"Repubblica Ceca","official":"Repubblica Ceca"},"JPN":{"common":"チェコ","official":"チェコ共和国"},"SPA":{"common":"República Checa","official":"República Checa"}},"currency":["CZK"],"Borders":["AUT","DEU","POL","SVK"],"cca2":"CZ","cca3":"CZE","CIOC":"CZE","CCN3":"203","callingCode":["420"],"InternationalPrefix":"00","region":"Europe","subregion":"Eastern Europe","Continent":"Europe","capital":"Prague","Area":78865,"longitude":"15 30 E","latitude":"49 45 N","MinLongitude":12.116667,"MinLatitude":40.65,"MaxLongitude":25.5,"MaxLatitude":59.65,"Latitude":49.739105224609375,"Longitude":15.331501007080078}
|
1
data/json/countries/de.json
Normal file
1
data/json/countries/de.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Germany","official":"Federal Republic of Germany","Native":{"deu":{"common":"Deutschland","official":"Bundesrepublik Deutschland"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".de"],"Languages":{"deu":"German"},"Translations":{"DEU":{"common":"Deutschland","official":"Bundesrepublik Deutschland"},"FIN":{"common":"Saksa","official":"Saksan liittotasavalta"},"FRA":{"common":"Allemagne","official":"République fédérale d'Allemagne"},"HRV":{"common":"Njemačka","official":"Njemačka Federativna Republika"},"ITA":{"common":"Germania","official":"Repubblica federale di Germania"},"JPN":{"common":"ドイツ","official":"ドイツ連邦共和国"},"NLD":{"common":"Duitsland","official":"Bondsrepubliek Duitsland"},"POR":{"common":"Alemanha","official":"República Federal da Alemanha"}},"currency":["EUR"],"Borders":["AUT","BEL","CZE","DNK","FRA","LUX","NLD","POL","CHE"],"cca2":"DE","cca3":"DEU","CIOC":"GER","CCN3":"276","callingCode":["49"],"InternationalPrefix":"00","region":"Europe","subregion":"Western Europe","Continent":"Europe","capital":"Berlin","Area":357114,"longitude":"9 00 E","latitude":"51 00 N","MinLongitude":5.9,"MinLatitude":47.266667,"MaxLongitude":15.033333,"MaxLatitude":55.05,"Latitude":51.20246505737305,"Longitude":10.382203102111816}
|
1
data/json/countries/dj.json
Normal file
1
data/json/countries/dj.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Djibouti","official":"Republic of Djibouti","Native":{"ara":{"common":"جيبوتي","official":"جمهورية جيبوتي"},"fra":{"common":"Djibouti","official":"République de Djibouti"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".dj"],"Languages":{"ara":"Arabic","fra":"French"},"Translations":{"DEU":{"common":"Dschibuti","official":"Republik Dschibuti"},"FIN":{"common":"Dijibouti","official":"Dijiboutin tasavalta"},"FRA":{"common":"Djibouti","official":"République de Djibouti"},"HRV":{"common":"Džibuti","official":"Republika Džibuti"},"NLD":{"common":"Djibouti","official":"Republiek Djibouti"},"POR":{"common":"Djibouti","official":"República do Djibouti"},"RUS":{"common":"Джибути","official":"Республика Джибути"},"SPA":{"common":"Djibouti","official":"República de Djibouti"}},"currency":["DJF"],"Borders":["ERI","ETH","SOM"],"cca2":"DJ","cca3":"DJI","CIOC":"DJI","CCN3":"262","callingCode":["253"],"InternationalPrefix":"00","region":"Africa","subregion":"Eastern Africa","Continent":"Africa","capital":"Djibouti","Area":23200,"longitude":"43 00 E","latitude":"11 30 N","MinLongitude":41,"MinLatitude":10.9825,"MaxLongitude":43.451944,"MaxLatitude":13,"Latitude":11.742591857910156,"Longitude":42.63182830810547}
|
1
data/json/countries/dk.json
Normal file
1
data/json/countries/dk.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Denmark","official":"Kingdom of Denmark","Native":{"dan":{"common":"Danmark","official":"Kongeriget Danmark"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".dk"],"Languages":{"dan":"Danish"},"Translations":{"FIN":{"common":"Tanska","official":"Tanskan kuningaskunta"},"FRA":{"common":"Danemark","official":"Royaume du Danemark"},"HRV":{"common":"Danska","official":"Kraljevina Danska"},"ITA":{"common":"Danimarca","official":"Regno di Danimarca"},"JPN":{"common":"デンマーク","official":"デンマーク王国"},"NLD":{"common":"Denemarken","official":"Koninkrijk Denemarken"},"POR":{"common":"Dinamarca","official":"Reino da Dinamarca"},"RUS":{"common":"Дания","official":"Королевство Дания"},"SPA":{"common":"Dinamarca","official":"Reino de Dinamarca"}},"currency":["DKK"],"Borders":["DEU"],"cca2":"DK","cca3":"DNK","CIOC":"DEN","CCN3":"208","callingCode":["45"],"InternationalPrefix":"00","region":"Europe","subregion":"Northern Europe","Continent":"Europe","capital":"Copenhagen","Area":43094,"longitude":"10 00 E","latitude":"56 00 N","MinLongitude":4.516667,"MinLatitude":53.583333,"MaxLongitude":18,"MaxLatitude":64,"Latitude":56.10176086425781,"Longitude":9.555907249450684}
|
1
data/json/countries/dm.json
Normal file
1
data/json/countries/dm.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Dominica","official":"Commonwealth of Dominica","Native":{"eng":{"common":"Dominica","official":"Commonwealth of Dominica"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".dm"],"Languages":{"eng":"English"},"Translations":{"CYM":{"common":"Dominica","official":"Commonwealth of Dominica"},"DEU":{"common":"Dominica","official":"Commonwealth von Dominica"},"FIN":{"common":"Dominica","official":"Dominican liittovaltio"},"HRV":{"common":"Dominika","official":"Zajednica Dominika"},"ITA":{"common":"Dominica","official":"Commonwealth di Dominica"},"JPN":{"common":"ドミニカ国","official":"ドミニカ国"}},"currency":["XCD"],"Borders":[],"cca2":"DM","cca3":"DMA","CIOC":"DMA","CCN3":"212","callingCode":["1767"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Roseau","Area":751,"longitude":"61 20 W","latitude":"15 25 N","MinLongitude":-61.483333,"MinLatitude":15.2,"MaxLongitude":-61.25,"MaxLatitude":15.633333,"Latitude":15.3991060256958,"Longitude":-61.33945846557617}
|
1
data/json/countries/do.json
Normal file
1
data/json/countries/do.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Dominican Republic","official":"Dominican Republic","Native":{"spa":{"common":"República Dominicana","official":"República Dominicana"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".do"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Gweriniaeth_Dominica","official":"Dominican Republic"},"FIN":{"common":"Dominikaaninen tasavalta","official":"Dominikaaninen tasavalta"},"FRA":{"common":"République dominicaine","official":"République Dominicaine"},"ITA":{"common":"Repubblica Dominicana","official":"Repubblica Dominicana"},"JPN":{"common":"ドミニカ共和国","official":"ドミニカ共和国"},"POR":{"common":"República Dominicana","official":"República Dominicana"},"RUS":{"common":"Доминиканская Республика","official":"Доминиканская Республика"},"SPA":{"common":"República Dominicana","official":"República Dominicana"}},"currency":["DOP"],"Borders":["HTI"],"cca2":"DO","cca3":"DOM","CIOC":"DOM","CCN3":"214","callingCode":["1809","1829","1849"],"InternationalPrefix":"011","region":"Americas","subregion":"Caribbean","Continent":"North America","capital":"Santo Domingo","Area":48671,"longitude":"70 40 W","latitude":"19 00 N","MinLongitude":-71.966667,"MinLatitude":17.473056,"MaxLongitude":-68.316667,"MaxLatitude":19.933333,"Latitude":19.019824981689453,"Longitude":-70.79285430908203}
|
1
data/json/countries/dz.json
Normal file
1
data/json/countries/dz.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Algeria","official":"People's Democratic Republic of Algeria","Native":{"ara":{"common":"الجزائر","official":"الجمهورية الديمقراطية الشعبية الجزائرية"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".dz","الجزائر."],"Languages":{"ara":"Arabic"},"Translations":{"CYM":{"common":"Algeria","official":"People's Democratic Republic of Algeria"},"DEU":{"common":"Algerien","official":"Demokratische Volksrepublik Algerien"},"FIN":{"common":"Algeria","official":"Algerian demokraattinen kansantasavalta"},"HRV":{"common":"Alžir","official":"Narodna Demokratska Republika Alžir"},"ITA":{"common":"Algeria","official":"Repubblica popolare democratica di Algeria"},"NLD":{"common":"Algerije","official":"Democratische Volksrepubliek Algerije"},"POR":{"common":"Argélia","official":"República Argelina Democrática e Popular"},"SPA":{"common":"Argelia","official":"República Argelina Democrática y Popular"}},"currency":["DZD"],"Borders":["TUN","LBY","NER","ESH","MRT","MLI","MAR"],"cca2":"DZ","cca3":"DZA","CIOC":"ALG","CCN3":"012","callingCode":["213"],"InternationalPrefix":"00","region":"Africa","subregion":"Northern Africa","Continent":"Africa","capital":"Algiers","Area":2.381741e+06,"longitude":"3 00 E","latitude":"28 00 N","MinLongitude":-8.666667,"MinLatitude":19,"MaxLongitude":13,"MaxLatitude":37.116667,"Latitude":28.213645935058594,"Longitude":2.6547281742095947}
|
1
data/json/countries/ec.json
Normal file
1
data/json/countries/ec.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Ecuador","official":"Republic of Ecuador","Native":{"spa":{"common":"Ecuador","official":"República del Ecuador"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".ec"],"Languages":{"spa":"Spanish"},"Translations":{"CYM":{"common":"Ecwador","official":"Republic of Ecuador"},"FRA":{"common":"Équateur","official":"République de l'Équateur"},"HRV":{"common":"Ekvador","official":"Republika Ekvador"},"NLD":{"common":"Ecuador","official":"Republiek Ecuador"},"POR":{"common":"Equador","official":"República do Equador"},"RUS":{"common":"Эквадор","official":"Республика Эквадор"}},"currency":["USD"],"Borders":["COL","PER"],"cca2":"EC","cca3":"ECU","CIOC":"ECU","CCN3":"218","callingCode":["593"],"InternationalPrefix":"00","region":"Americas","subregion":"South America","Continent":"South America","capital":"Quito","Area":276841,"longitude":"77 30 W","latitude":"2 00 S","MinLongitude":-92,"MinLatitude":-4.95,"MaxLongitude":-75.216667,"MaxLatitude":1.65,"Latitude":-1.421528935432434,"Longitude":-78.87104034423828}
|
1
data/json/countries/ee.json
Normal file
1
data/json/countries/ee.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Estonia","official":"Republic of Estonia","Native":{"est":{"common":"Eesti","official":"Eesti Vabariik"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".ee"],"Languages":{"est":"Estonian"},"Translations":{"CYM":{"common":"Estonia","official":"Republic of Estonia"},"DEU":{"common":"Estland","official":"Republik Estland"},"FIN":{"common":"Viro","official":"Viron tasavalta"},"HRV":{"common":"Estonija","official":"Republika Estonija"},"ITA":{"common":"Estonia","official":"Repubblica di Estonia"},"NLD":{"common":"Estland","official":"Republiek Estland"},"SPA":{"common":"Estonia","official":"República de Estonia"}},"currency":["EUR"],"Borders":["LVA","RUS"],"cca2":"EE","cca3":"EST","CIOC":"EST","CCN3":"233","callingCode":["372"],"InternationalPrefix":"00","region":"Europe","subregion":"Northern Europe","Continent":"Europe","capital":"Tallinn","Area":45227,"longitude":"26 00 E","latitude":"59 00 N","MinLongitude":21.795833,"MinLatitude":57.521389,"MaxLongitude":28.883333,"MaxLatitude":59.983333,"Latitude":58.69374465942383,"Longitude":25.24162483215332}
|
1
data/json/countries/eg.json
Normal file
1
data/json/countries/eg.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Egypt","official":"Arab Republic of Egypt","Native":{"ara":{"common":"مصر","official":"جمهورية مصر العربية"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".eg",".مصر"],"Languages":{"ara":"Arabic"},"Translations":{"DEU":{"common":"Ägypten","official":"Arabische Republik Ägypten"},"FIN":{"common":"Egypti","official":"Egyptin arabitasavalta"},"HRV":{"common":"Egipat","official":"Arapska Republika Egipat"},"JPN":{"common":"エジプト","official":"エジプト·アラブ共和国"},"NLD":{"common":"Egypte","official":"Arabische Republiek Egypte"},"POR":{"common":"Egito","official":"República Árabe do Egipto"},"RUS":{"common":"Египет","official":"Арабская Республика Египет"}},"currency":["EGP"],"Borders":["ISR","LBY","SDN"],"cca2":"EG","cca3":"EGY","CIOC":"EGY","CCN3":"818","callingCode":["20"],"InternationalPrefix":"00","region":"Africa","subregion":"Northern Africa","Continent":"Africa","capital":"Cairo","Area":1.00245e+06,"longitude":"30 00 E","latitude":"27 00 N","MinLongitude":24.7,"MinLatitude":20.383333,"MaxLongitude":36.333333,"MaxLatitude":31.916667,"Latitude":26.756103515625,"Longitude":29.86229705810547}
|
1
data/json/countries/eh.json
Normal file
1
data/json/countries/eh.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Western Sahara","official":"Sahrawi Arab Democratic Republic","Native":{"ber":{"common":"Western Sahara","official":"Sahrawi Arab Democratic Republic"},"mey":{"common":"الصحراء الغربية","official":"الجمهورية العربية الصحراوية الديمقراطية"},"spa":{"common":"Sahara Occidental","official":"República Árabe Saharaui Democrática"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".eh"],"Languages":{"ber":"Berber","mey":"Hassaniya","spa":"Spanish"},"Translations":{"DEU":{"common":"Westsahara","official":"Demokratische Arabische Republik Sahara"},"FRA":{"common":"Sahara Occidental","official":"République arabe sahraouie démocratique"},"HRV":{"common":"Zapadna Sahara","official":"Sahrawi Arab Demokratska Republika"},"ITA":{"common":"Sahara Occidentale","official":"Repubblica Araba Saharawi Democratica"},"JPN":{"common":"西サハラ","official":"サハラアラブ民主共和国"},"NLD":{"common":"Westelijke Sahara","official":"Sahrawi Arabische Democratische Republiek"},"POR":{"common":"Saara Ocidental","official":"República Árabe Saharaui Democrática"},"RUS":{"common":"Западная Сахара","official":"Sahrawi Арабская Демократическая Республика"},"SPA":{"common":"Sahara Occidental","official":"República Árabe Saharaui Democrática"}},"currency":["MAD","DZD","MRO"],"Borders":["DZA","MRT","MAR"],"cca2":"EH","cca3":"ESH","CIOC":"","CCN3":"732","callingCode":["212"],"InternationalPrefix":"","region":"Africa","subregion":"Northern Africa","Continent":"Africa","capital":"El Aaiún","Area":266000,"longitude":"13 00 W","latitude":"24 30 N","MinLongitude":-17.110556,"MinLatitude":20.8,"MaxLongitude":-8.666667,"MaxLatitude":27.666667,"Latitude":25,"Longitude":-13}
|
1
data/json/countries/er.json
Normal file
1
data/json/countries/er.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Eritrea","official":"State of Eritrea","Native":{"ara":{"common":"إرتريا","official":"دولة إرتريا"},"eng":{"common":"Eritrea","official":"State of Eritrea"},"tir":{"common":"ኤርትራ","official":"ሃገረ ኤርትራ"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".er"],"Languages":{"ara":"Arabic","eng":"English","tir":"Tigrinya"},"Translations":{"CYM":{"common":"Eritrea","official":"State of Eritrea"},"DEU":{"common":"Eritrea","official":"Staat Eritrea"},"FRA":{"common":"Érythrée","official":"État d'Érythrée"},"ITA":{"common":"Eritrea","official":"Stato di Eritrea"},"JPN":{"common":"エリトリア","official":"エリトリア国"},"NLD":{"common":"Eritrea","official":"Staat Eritrea"},"RUS":{"common":"Эритрея","official":"Государство Эритрея"}},"currency":["ERN"],"Borders":["DJI","ETH","SDN"],"cca2":"ER","cca3":"ERI","CIOC":"ERI","CCN3":"232","callingCode":["291"],"InternationalPrefix":"00","region":"Africa","subregion":"Eastern Africa","Continent":"Africa","capital":"Asmara","Area":117600,"longitude":"39 00 E","latitude":"15 00 N","MinLongitude":36.483333,"MinLatitude":12.383333,"MaxLongitude":43.114722,"MaxLatitude":18.033333,"Latitude":15.397199630737305,"Longitude":39.087188720703125}
|
1
data/json/countries/es.json
Normal file
1
data/json/countries/es.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Spain","official":"Kingdom of Spain","Native":{"cat":{"common":"Espanya","official":"Regne d'Espanya"},"eus":{"common":"Espainia","official":"Espainiako Erresuma"},"glg":{"common":"","official":"Reino de España"},"oci":{"common":"Espanha","official":"Reialme d'Espanha"},"spa":{"common":"España","official":"Reino de España"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".es"],"Languages":{"cat":"Catalan","eus":"Basque","glg":"Galician","oci":"Occitan","spa":"Spanish"},"Translations":{"DEU":{"common":"Spanien","official":"Königreich Spanien"},"FRA":{"common":"Espagne","official":"Royaume d'Espagne"},"HRV":{"common":"Španjolska","official":"Kraljevina Španjolska"},"ITA":{"common":"Spagna","official":"Regno di Spagna"},"JPN":{"common":"スペイン","official":"スペイン王国"},"NLD":{"common":"Spanje","official":"Koninkrijk Spanje"},"POR":{"common":"Espanha","official":"Reino de Espanha"}},"currency":["EUR"],"Borders":["AND","FRA","GIB","PRT","MAR"],"cca2":"ES","cca3":"ESP","CIOC":"ESP","CCN3":"724","callingCode":["34"],"InternationalPrefix":"00","region":"Europe","subregion":"Southern Europe","Continent":"Europe","capital":"Madrid","Area":505992,"longitude":"4 00 W","latitude":"40 00 N","MinLongitude":-18.166667,"MinLatitude":27.633333,"MaxLongitude":4.333333,"MaxLatitude":43.916667,"Latitude":40.396026611328125,"Longitude":-3.550692558288574}
|
1
data/json/countries/et.json
Normal file
1
data/json/countries/et.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Ethiopia","official":"Federal Democratic Republic of Ethiopia","Native":{"amh":{"common":"ኢትዮጵያ","official":"የኢትዮጵያ ፌዴራላዊ ዲሞክራሲያዊ ሪፐብሊክ"}}},"EuMember":false,"LandLocked":true,"Nationality":"","tld":[".et"],"Languages":{"amh":"Amharic"},"Translations":{"CYM":{"common":"Ethiopia","official":"Federal Democratic Republic of Ethiopia"},"FIN":{"common":"Etiopia","official":"Etiopian demokraattinen liittotasavalta"},"FRA":{"common":"Éthiopie","official":"République fédérale démocratique d'Éthiopie"},"HRV":{"common":"Etiopija","official":"Savezna Demokratska Republika Etiopija"},"ITA":{"common":"Etiopia","official":"Repubblica federale democratica di Etiopia"},"JPN":{"common":"エチオピア","official":"エチオピア連邦民主共和国"},"POR":{"common":"Etiópia","official":"República Federal Democrática da Etiópia"}},"currency":["ETB"],"Borders":["DJI","ERI","KEN","SOM","SSD","SDN"],"cca2":"ET","cca3":"ETH","CIOC":"ETH","CCN3":"231","callingCode":["251"],"InternationalPrefix":"00","region":"Africa","subregion":"Eastern Africa","Continent":"Africa","capital":"Addis Ababa","Area":1.1043e+06,"longitude":"38 00 E","latitude":"8 00 N","MinLongitude":33.033333,"MinLatitude":3.433333,"MaxLongitude":47.45,"MaxLatitude":14.698889,"Latitude":8.626703262329102,"Longitude":39.63755416870117}
|
1
data/json/countries/fi.json
Normal file
1
data/json/countries/fi.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Finland","official":"Republic of Finland","Native":{"fin":{"common":"Suomi","official":"Suomen tasavalta"},"swe":{"common":"Finland","official":"Republiken Finland"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".fi"],"Languages":{"fin":"Finnish","swe":"Swedish"},"Translations":{"FRA":{"common":"Finlande","official":"République de Finlande"},"HRV":{"common":"Finska","official":"Republika Finska"},"ITA":{"common":"Finlandia","official":"Repubblica di Finlandia"},"JPN":{"common":"フィンランド","official":"フィンランド共和国"},"NLD":{"common":"Finland","official":"Republiek Finland"},"POR":{"common":"Finlândia","official":"República da Finlândia"},"RUS":{"common":"Финляндия","official":"Финляндская Республика"},"SPA":{"common":"Finlandia","official":"República de Finlandia"}},"currency":["EUR"],"Borders":["NOR","SWE","RUS"],"cca2":"FI","cca3":"FIN","CIOC":"FIN","CCN3":"246","callingCode":["358"],"InternationalPrefix":"00","region":"Europe","subregion":"Northern Europe","Continent":"Europe","capital":"Helsinki","Area":338424,"longitude":"26 00 E","latitude":"64 00 N","MinLongitude":18,"MinLatitude":58.83,"MaxLongitude":32,"MaxLatitude":70.083333,"Latitude":64.28858184814453,"Longitude":25.989402770996094}
|
1
data/json/countries/fj.json
Normal file
1
data/json/countries/fj.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Fiji","official":"Republic of Fiji","Native":{"eng":{"common":"Fiji","official":"Republic of Fiji"},"fij":{"common":"Viti","official":"Matanitu Tugalala o Viti"},"hif":{"common":"फिजी","official":"रिपब्लिक ऑफ फीजी"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".fj"],"Languages":{"eng":"English","fij":"Fijian","hif":"Fiji Hindi"},"Translations":{"DEU":{"common":"Fidschi","official":"Republik Fidschi"},"FIN":{"common":"Fidži","official":"Fidžin tasavalta"},"FRA":{"common":"Fidji","official":"République des Fidji"},"ITA":{"common":"Figi","official":"Repubblica di Figi"},"JPN":{"common":"フィジー","official":"フィジー共和国"},"NLD":{"common":"Fiji","official":"Republiek Fiji"},"SPA":{"common":"Fiyi","official":"República de Fiji"}},"currency":["FJD"],"Borders":[],"cca2":"FJ","cca3":"FJI","CIOC":"FIJ","CCN3":"242","callingCode":["679"],"InternationalPrefix":"00","region":"Oceania","subregion":"Melanesia","Continent":"Australia","capital":"Suva","Area":18272,"longitude":"175 00 E","latitude":"18 00 S","MinLongitude":180,"MinLatitude":-21.016667,"MaxLongitude":-179.983333,"MaxLatitude":-12.466667,"Latitude":-17.658161163330078,"Longitude":178.1472625732422}
|
1
data/json/countries/fk.json
Normal file
1
data/json/countries/fk.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Falkland Islands","official":"Falkland Islands","Native":{"eng":{"common":"Falkland Islands","official":"Falkland Islands"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".fk"],"Languages":{"eng":"English"},"Translations":{"DEU":{"common":"Falklandinseln","official":"Falkland-Inseln"},"FIN":{"common":"Falkandinsaaret","official":"Falkandinsaaret"},"FRA":{"common":"Îles Malouines","official":"Îles Malouines"},"HRV":{"common":"Falklandski Otoci","official":"Falklandski otoci"},"ITA":{"common":"Isole Falkland o Isole Malvine","official":"Isole Falkland"},"NLD":{"common":"Falklandeilanden","official":"Falkland eilanden"},"SPA":{"common":"Islas Malvinas","official":"islas Malvinas"}},"currency":["FKP"],"Borders":[],"cca2":"FK","cca3":"FLK","CIOC":"","CCN3":"238","callingCode":["500"],"InternationalPrefix":"00","region":"Americas","subregion":"South America","Continent":"South America","capital":"Stanley","Area":12173,"longitude":"59 00 W","latitude":"51 45 S","MinLongitude":-61.433333,"MinLatitude":-52.966667,"MaxLongitude":-57.666667,"MaxLatitude":-50.966667,"Latitude":-51.77312469482422,"Longitude":-59.727909088134766}
|
1
data/json/countries/fm.json
Normal file
1
data/json/countries/fm.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Micronesia","official":"Federated States of Micronesia","Native":{"eng":{"common":"Micronesia","official":"Federated States of Micronesia"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".fm"],"Languages":{"eng":"English"},"Translations":{"DEU":{"common":"Mikronesien","official":"Föderierte Staaten von Mikronesien"},"FIN":{"common":"Mikronesia","official":"Mikronesian liittovaltio"},"FRA":{"common":"Micronésie","official":"États fédérés de Micronésie"},"HRV":{"common":"Mikronezija","official":"Savezne Države Mikronezije"},"JPN":{"common":"ミクロネシア連邦","official":"ミクロネシア連邦"},"NLD":{"common":"Micronesië","official":"Federale Staten van Micronesia"},"POR":{"common":"Micronésia","official":"Estados Federados da Micronésia"},"SPA":{"common":"Micronesia","official":"Estados Federados de Micronesia"}},"currency":["USD"],"Borders":[],"cca2":"FM","cca3":"FSM","CIOC":"FSM","CCN3":"583","callingCode":["691"],"InternationalPrefix":"011","region":"Oceania","subregion":"Micronesia","Continent":"Australia","capital":"Palikir","Area":702,"longitude":"158 15 E","latitude":"6 55 N","MinLongitude":137.425,"MinLatitude":1.026389,"MaxLongitude":163.034444,"MaxLatitude":10.093611,"Latitude":6.869349002838135,"Longitude":158.187255859375}
|
1
data/json/countries/fo.json
Normal file
1
data/json/countries/fo.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"Faroe Islands","official":"Faroe Islands","Native":{"dan":{"common":"Færøerne","official":"Færøerne"},"fao":{"common":"Føroyar","official":"Føroyar"}}},"EuMember":false,"LandLocked":false,"Nationality":"","tld":[".fo"],"Languages":{"dan":"Danish","fao":"Faroese"},"Translations":{"DEU":{"common":"Färöer-Inseln","official":"Färöer"},"FIN":{"common":"Färsaaret","official":"Färsaaret"},"FRA":{"common":"Îles Féroé","official":"Îles Féroé"},"JPN":{"common":"フェロー諸島","official":"フェロー諸島"},"NLD":{"common":"Faeröer","official":"Faeröer"},"POR":{"common":"Ilhas Faroé","official":"Ilhas Faroe"},"RUS":{"common":"Фарерские острова","official":"Фарерские острова"}},"currency":["DKK"],"Borders":[],"cca2":"FO","cca3":"FRO","CIOC":"","CCN3":"234","callingCode":["298"],"InternationalPrefix":"00","region":"Europe","subregion":"Northern Europe","Continent":"Europe","capital":"Tórshavn","Area":1393,"longitude":"7 00 W","latitude":"62 00 N","MinLongitude":-7.8,"MinLatitude":61.333333,"MaxLongitude":-6.25,"MaxLatitude":62.4,"Latitude":62.009559631347656,"Longitude":-6.818255424499512}
|
1
data/json/countries/fr.json
Normal file
1
data/json/countries/fr.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":{"common":"France","official":"French Republic","Native":{"fra":{"common":"France","official":"République française"}}},"EuMember":true,"LandLocked":false,"Nationality":"","tld":[".fr"],"Languages":{"fra":"French"},"Translations":{"DEU":{"common":"Frankreich","official":"Französische Republik"},"FIN":{"common":"Ranska","official":"Ranskan tasavalta"},"FRA":{"common":"France","official":"République française"},"HRV":{"common":"Francuska","official":"Francuska Republika"},"ITA":{"common":"Francia","official":"Repubblica francese"},"NLD":{"common":"Frankrijk","official":"Franse Republiek"},"RUS":{"common":"Франция","official":"Французская Республика"}},"currency":["EUR"],"Borders":["AND","BEL","DEU","ITA","LUX","MCO","ESP","CHE"],"cca2":"FR","cca3":"FRA","CIOC":"FRA","CCN3":"250","callingCode":["33"],"InternationalPrefix":"00","region":"Europe","subregion":"Western Europe","Continent":"Europe","capital":"Paris","Area":551695,"longitude":"2 00 E","latitude":"46 00 N","MinLongitude":-5.14,"MinLatitude":41.34,"MaxLongitude":9.56,"MaxLatitude":51.09,"Latitude":46.63727951049805,"Longitude":2.3382623195648193}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user