Skip to content

Commit

Permalink
🐛 Use json file to store languages metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
Androz2091 committed Dec 17, 2020
1 parent 641d74b commit 6ae3063
Show file tree
Hide file tree
Showing 9 changed files with 148 additions and 147 deletions.
7 changes: 4 additions & 3 deletions base/Atlanta.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class Atlanta extends Client {
super(options);
this.config = require("../config"); // Load the config file
this.customEmojis = require("../emojis.json"); // load the bot's emojis
this.languages = require("../languages/language-meta.json"); // Load the bot's languages
this.commands = new Collection(); // Creates new commands collection
this.aliases = new Collection(); // Creates new command aliases collection
this.logger = require("../helpers/logger"); // Load the logger file
Expand Down Expand Up @@ -138,7 +139,7 @@ class Atlanta extends Client {
}

get defaultLanguage(){
return this.config.languages.find((language) => language.default).name;
return this.languages.find((language) => language.default).name;
}

translate(key, args, locale){
Expand All @@ -150,7 +151,7 @@ class Atlanta extends Client {

printDate(date, format, locale){
if(!locale) locale = this.defaultLanguage;
const languageData = this.config.languages.find((language) => language.name === locale || language.aliases.includes(locale));
const languageData = this.languages.find((language) => language.name === locale || language.aliases.includes(locale));
if(!format) format = languageData.defaultMomentFormat;
return moment(new Date(date))
.locale(languageData.moment)
Expand All @@ -160,7 +161,7 @@ class Atlanta extends Client {
convertTime(time, type, noPrefix, locale){
if(!type) time = "to";
if(!locale) locale = this.defaultLanguage;
const languageData = this.config.languages.find((language) => language.name === locale || language.aliases.includes(locale));
const languageData = this.languages.find((language) => language.name === locale || language.aliases.includes(locale));
const m = moment(time)
.locale(languageData.moment);
return (type === "to" ? m.toNow(noPrefix) : m.fromNow(noPrefix));
Expand Down
5 changes: 3 additions & 2 deletions base/Guild.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const mongoose = require("mongoose"),
Schema = mongoose.Schema,
config = require("../config.js");
config = require("../config.js"),
languages = require("../languages/language-meta.json");

module.exports = mongoose.model("Guild", new Schema({

Expand All @@ -12,7 +13,7 @@ module.exports = mongoose.model("Guild", new Schema({
members: [{ type: Schema.Types.ObjectId, ref: "Member" }],

/* CONFIGURATION */
language: { type: String, default: config.languages.find((l) => l.default).name }, // Language of the guild
language: { type: String, default: languages.find((l) => l.default).name }, // Language of the guild
prefix: { type: String, default: config.prefix }, // Default or custom prefix of the guild
plugins: { type: Object, default: { // Plugins data
// Welcome messages
Expand Down
2 changes: 1 addition & 1 deletion commands/Administration/setfortniteshop.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class Setfortniteshop extends Command {
channel: channel.toString()
});

const momentName = data.config.languages.find((language) => language.name === data.guild.language || language.aliases.includes(data.guild.language)).moment;
const momentName = this.client.languages.find((language) => language.name === data.guild.language || language.aliases.includes(data.guild.language)).moment;
const shop = new Canvas.FortniteShop();
const image = await shop
.setToken(data.config.apiKeys.fortniteFNBR)
Expand Down
2 changes: 1 addition & 1 deletion commands/General/fortniteshop.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Fortniteshop extends Command {
prefixEmoji: "loading"
});

const momentName = data.config.languages.find((language) => language.name === data.guild.language || language.aliases.includes(data.guild.language)).moment;
const momentName = this.client.languages.find((language) => language.name === data.guild.language || language.aliases.includes(data.guild.language)).moment;
const shop = new Canvas.FortniteShop();
const image = await shop
.setToken(data.config.apiKeys.fortniteFNBR)
Expand Down
137 changes: 0 additions & 137 deletions config.sample.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,142 +64,5 @@ module.exports = {
name: "my website : atlanta-bot.fr",
type: "PLAYING"
}
],
/* Language configuration */
languages: [
{
name: "en-US",
nativeName: "English",
moment: "en",
defaultMomentFormat: "MMMM Do YYYY",
default: true,
aliases: [
"English",
"en",
"en-us",
"en_us",
"en_US"
]
},
{
name: "fr-FR",
nativeName: "Français",
defaultMomentFormat: "Do MMMM YYYY",
moment: "fr",
default: false,
aliases: [
"French",
"français",
"francais",
"fr",
"fr_fr"
]
},
{
name: "es-ES",
nativeName: "Español",
defaultMomentFormat: "MMM Do, YYYY",
moment: "es",
default: false,
aliases: [
"Spanish",
"es",
"es_es"
]
},
{
name: "it-IT",
nativeName: "Italiano",
defaultMomentFormat: "Do MMMM YYYY",
moment: "it",
default: false,
aliases: [
"Italian",
"it",
"it_it"
]
},
{
name: "nl-NL",
nativeName: "Nederlands",
defaultMomentFormat: "Do MMMM YYYY",
moment: "nl",
default: false,
aliases: [
"Dutch",
"nl",
"nl_nl"
]
},
{
name: "pt-PT",
nativeName: "Português",
defaultMomentFormat: "Do MMMM YYYY",
moment: "pt",
default: false,
aliases: [
"Portuguese",
"pt",
"pt_pt"
]
},
{
name: "tr-TR",
nativeName: "Türk",
defaultMomentFormat: "Do MMMM YYYY",
moment: "tr",
default: false,
aliases: [
"Turkish",
"tr",
"tr_tr"
]
},
{
name: "id-ID",
nativeName: "bahasa Indonesia",
defaultMomentFormat: "Do MMMM YYYY",
moment: "id",
default: false,
aliases: [
"Indonesian",
"id",
"id_id"
]
},
{
name: "ro-RO",
nativeName: "Română",
moment: "ro",
default: false,
aliases: [
"Romanian",
"ro",
"ro_ro"
]
},
{
name: "tr-TR",
nativeName: "Türk",
moment: "tr",
default: false,
aliases: [
"Turkish",
"Turk",
"tr",
"tr_tr"
]
},
{
name: "nl-NL",
nativeName: "NEDERLAND",
moment: "nl",
default: false,
aliases: [
"Netherland",
"nl",
"nl_nl"
]
}
]
};
2 changes: 1 addition & 1 deletion dashboard/routes/guild-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ router.post("/:serverID", CheckAuth, async(req, res) => {
const data = req.body;

if(data.language){
const language = req.client.config.languages.find((language) => language.aliases[0].toLowerCase() === data.language.toLowerCase());
const language = req.client.languages.find((language) => language.aliases[0].toLowerCase() === data.language.toLowerCase());
if(language){
guildData.language = language.name;
}
Expand Down
2 changes: 1 addition & 1 deletion dashboard/views/manager/guild.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<div class="form-group">
<label><%= translate("common:LANGUAGE") %></label>
<select class="form-control" name="language">
<% bot.config.languages.forEach((language) => { %>
<% bot.languages.forEach((language) => { %>
<% if(guild.language === language.name){ %>
<option selected="selected"><%= language.aliases[0] %></option>
<% } else { %>
Expand Down
2 changes: 1 addition & 1 deletion helpers/fortniteShop.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ async function init(client) {
if(guildData.plugins.fortniteshop) {
const fnChannel = client.channels.cache.get(guildData.plugins.fortniteshop);
if(fnChannel) {
const momentName = client.config.languages.find((language) => language.name === guildData.language || language.aliases.includes(guildData.language)).moment;
const momentName = client.languages.find((language) => language.name === guildData.language || language.aliases.includes(guildData.language)).moment;
const image = await new Canvas.FortniteShop()
.setToken(client.config.apiKeys.fortniteFNBR)
.setText("header", client.translate("general/fortniteshop:HEADER").replace("{{date}}", "{date}"), null, guildData.language)
Expand Down
136 changes: 136 additions & 0 deletions languages/language-meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
[
{
"name": "en-US",
"nativeName": "English",
"moment": "en",
"defaultMomentFormat": "MMMM Do YYYY",
"default": true,
"aliases": [
"English",
"en",
"en-us",
"en_us",
"en_US"
]
},
{
"name": "fr-FR",
"nativeName": "Français",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "fr",
"default": false,
"aliases": [
"French",
"français",
"francais",
"fr",
"fr_fr"
]
},
{
"name": "es-ES",
"nativeName": "Español",
"defaultMomentFormat": "MMM Do, YYYY",
"moment": "es",
"default": false,
"aliases": [
"Spanish",
"es",
"es_es"
]
},
{
"name": "it-IT",
"nativeName": "Italiano",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "it",
"default": false,
"aliases": [
"Italian",
"it",
"it_it"
]
},
{
"name": "nl-NL",
"nativeName": "Nederlands",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "nl",
"default": false,
"aliases": [
"Dutch",
"nl",
"nl_nl"
]
},
{
"name": "pt-PT",
"nativeName": "Português",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "pt",
"default": false,
"aliases": [
"Portuguese",
"pt",
"pt_pt"
]
},
{
"name": "tr-TR",
"nativeName": "Türk",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "tr",
"default": false,
"aliases": [
"Turkish",
"tr",
"tr_tr"
]
},
{
"name": "id-ID",
"nativeName": "bahasa Indonesia",
"defaultMomentFormat": "Do MMMM YYYY",
"moment": "id",
"default": false,
"aliases": [
"Indonesian",
"id",
"id_id"
]
},
{
"name": "ro-RO",
"nativeName": "Română",
"moment": "ro",
"default": false,
"aliases": [
"Romanian",
"ro",
"ro_ro"
]
},
{
"name": "tr-TR",
"nativeName": "Türk",
"moment": "tr",
"default": false,
"aliases": [
"Turkish",
"Turk",
"tr",
"tr_tr"
]
},
{
"name": "nl-NL",
"nativeName": "Nederland",
"moment": "nl",
"default": false,
"aliases": [
"Netherland",
"nl",
"nl_nl"
]
}
]

0 comments on commit 6ae3063

Please sign in to comment.