From d187177908646c081d7c59592d2bc0a7d01c423f Mon Sep 17 00:00:00 2001 From: Romain J Date: Sun, 12 Jan 2020 20:43:05 +0000 Subject: [PATCH] feat(texts): add more texts --- cogs/Help.py | 2 +- cogs/Polls.py | 3 +- cogs/Useful.py | 54 +++++++++++++++++- extras/locales/en/LC_MESSAGES/admin.mo | Bin 449 -> 0 bytes extras/locales/en/LC_MESSAGES/base.mo | Bin 363 -> 0 bytes extras/locales/en/LC_MESSAGES/poll.mo | Bin 363 -> 0 bytes extras/locales/en/LC_MESSAGES/utils.mo | Bin 363 -> 0 bytes extras/locales/fr/LC_MESSAGES/admin.mo | Bin 1304 -> 0 bytes extras/locales/fr/LC_MESSAGES/base.mo | Bin 1420 -> 0 bytes extras/locales/fr/LC_MESSAGES/poll.mo | Bin 418 -> 0 bytes extras/locales/fr/LC_MESSAGES/utils.mo | Bin 520 -> 0 bytes generate_locales.sh | 4 +- utils/__init__.py | 11 ++-- .../user.po => utils/functions/__init__.py | 0 utils/{ => functions}/config.py | 0 utils/{ => functions}/database.py | 0 utils/{ => functions}/emotes.py | 0 utils/{ => functions}/extra.py | 0 utils/{ => functions}/lang.py | 6 +- utils/{ => functions}/paginator.py | 0 utils/{ => functions}/version.py | 0 .../locales/en/LC_MESSAGES/admin.po | 0 .../locales/en/LC_MESSAGES/admin_help.po | 0 .../locales/en/LC_MESSAGES/base.po | 0 .../locales/en/LC_MESSAGES/help.po | 0 .../locales/en/LC_MESSAGES/logs.po | 0 .../locales/en/LC_MESSAGES/poll.po | 0 .../locales/en/LC_MESSAGES/poll_help.po | 0 .../locales/en/LC_MESSAGES/useful.po | 0 .../locales/en/LC_MESSAGES/useful_help.po | 0 .../locales/en}/LC_MESSAGES/user.po | 0 .../locales/en/LC_MESSAGES/user_help.po | 0 .../locales/en/LC_MESSAGES/utils.po | 0 .../locales/fr/LC_MESSAGES/admin.po | 0 .../locales/fr/LC_MESSAGES/admin_help.po | 0 .../locales/fr/LC_MESSAGES/base.po | 0 .../locales/fr/LC_MESSAGES/help.po | 0 .../locales/fr/LC_MESSAGES/logs.po | 0 .../locales/fr/LC_MESSAGES/logs_help.po | 0 .../locales/fr/LC_MESSAGES/poll.po | 0 .../locales/fr/LC_MESSAGES/poll_help.po | 0 .../locales/fr/LC_MESSAGES/useful.po | 0 .../locales/fr/LC_MESSAGES/useful_help.po | 0 utils/locales/fr/LC_MESSAGES/user.po | 0 .../locales/fr/LC_MESSAGES/user_help.po | 0 .../locales/fr/LC_MESSAGES/utils.po | 0 46 files changed, 65 insertions(+), 15 deletions(-) delete mode 100644 extras/locales/en/LC_MESSAGES/admin.mo delete mode 100644 extras/locales/en/LC_MESSAGES/base.mo delete mode 100644 extras/locales/en/LC_MESSAGES/poll.mo delete mode 100644 extras/locales/en/LC_MESSAGES/utils.mo delete mode 100644 extras/locales/fr/LC_MESSAGES/admin.mo delete mode 100644 extras/locales/fr/LC_MESSAGES/base.mo delete mode 100644 extras/locales/fr/LC_MESSAGES/poll.mo delete mode 100644 extras/locales/fr/LC_MESSAGES/utils.mo rename extras/locales/en/LC_MESSAGES/user.po => utils/functions/__init__.py (100%) rename utils/{ => functions}/config.py (100%) rename utils/{ => functions}/database.py (100%) rename utils/{ => functions}/emotes.py (100%) rename utils/{ => functions}/extra.py (100%) rename utils/{ => functions}/lang.py (86%) rename utils/{ => functions}/paginator.py (100%) rename utils/{ => functions}/version.py (100%) rename {extras => utils}/locales/en/LC_MESSAGES/admin.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/admin_help.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/base.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/help.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/logs.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/poll.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/poll_help.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/useful.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/useful_help.po (100%) rename {extras/locales/fr => utils/locales/en}/LC_MESSAGES/user.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/user_help.po (100%) rename {extras => utils}/locales/en/LC_MESSAGES/utils.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/admin.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/admin_help.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/base.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/help.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/logs.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/logs_help.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/poll.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/poll_help.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/useful.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/useful_help.po (100%) create mode 100644 utils/locales/fr/LC_MESSAGES/user.po rename {extras => utils}/locales/fr/LC_MESSAGES/user_help.po (100%) rename {extras => utils}/locales/fr/LC_MESSAGES/utils.po (100%) diff --git a/cogs/Help.py b/cogs/Help.py index 8f64ce5..2cba362 100644 --- a/cogs/Help.py +++ b/cogs/Help.py @@ -7,7 +7,7 @@ from discord.ext import commands from bot import TuxBot from utils import Texts, GroupPlus -from utils.paginator import FieldPages +from utils import FieldPages log = logging.getLogger(__name__) diff --git a/cogs/Polls.py b/cogs/Polls.py index 23bab84..1fb9c2d 100644 --- a/cogs/Polls.py +++ b/cogs/Polls.py @@ -8,7 +8,8 @@ from yarl import URL from bot import TuxBot from utils import PollModel, ResponsesModel -from utils import Texts, emotes as utils_emotes +from utils import Texts +from utils.functions import emotes as utils_emotes from utils import groupExtra log = logging.getLogger(__name__) diff --git a/cogs/Useful.py b/cogs/Useful.py index 5d469eb..3436ec2 100644 --- a/cogs/Useful.py +++ b/cogs/Useful.py @@ -1,9 +1,9 @@ # Created by romain at 04/01/2020 - import logging import os import pathlib import platform +import random import re import socket import time @@ -18,7 +18,7 @@ from tcp_latency import measure_latency from bot import TuxBot from utils import Texts -from utils import commandExtra +from utils import commandExtra, groupExtra log = logging.getLogger(__name__) @@ -66,6 +66,19 @@ class Useful(commands.Cog): return (file_amount, total_lines), ( python_file_amount, total_python_lines) + @staticmethod + def luhn_checker(number: int): + digits = [int(x) for x in reversed(str(number))] + + for index, digit in enumerate(digits, start=1): + digit = digit * 2 if index % 2 == 0 else digit + if digit >= 10: + digit = sum(int(x) for x in list(str(digit))) + + digits[index - 1] = digit + + return sum(digits) % 10 == 0 + ########################################################################### @commandExtra(name='iplocalise', category='network', @@ -339,6 +352,43 @@ class Useful(commands.Cog): await ctx.send(embed=e) + ########################################################################### + @groupExtra(name='cb', aliases=['cc'], + category='misc', + description=Texts('useful_help').get('_cb'), + help=Texts('useful_help').get('_cb__short')) + async def _cb(self, ctx: commands.Context): + if ctx.invoked_subcommand is None: + await ctx.send_help('cb') + + @_cb.command(name='validate', aliases=['valid', 'correct'], + category='misc', + description=Texts('useful_help').get('_cb_validate'), + help=Texts('useful_help').get('_cb_validate__short')) + async def _cb_validate(self, ctx: commands.Context, *, number: int): + valid = self.luhn_checker(number) + + await ctx.send( + Texts( + 'useful', ctx + ).get( + 'valid_credit_card' + if valid + else 'invalid_credit_card' + ) + ) + + @_cb.command(name='generate', aliases=['new', 'get'], + category='misc', + description=Texts('useful_help').get('_cb_generate'), + help=Texts('useful_help').get('_cb_generate__short')) + async def _cb_generate(self, ctx: commands.Context): + number = random.randint(4000_0000_0000_0000, 5999_9999_9999_9999) + while not self.luhn_checker(number): + number = random.randint(4000_0000_0000_0000, 5999_9999_9999_9999) + + await ctx.send(''.join(str(digit) for digit in str(number))) + def setup(bot: TuxBot): bot.add_cog(Useful(bot)) diff --git a/extras/locales/en/LC_MESSAGES/admin.mo b/extras/locales/en/LC_MESSAGES/admin.mo deleted file mode 100644 index cd65b5e0abbb1e0d9c33537cd85a4730136c80d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmZvYK~KUk6vwCWw4;eP5AO~g8_@(NAe9wd+!)ygiQX!!+YGi#SHyh`4}LvAi(O)Z z2VeTjdoTUx_22h>e)eVPIMrNgx^43(M!LSxj9X3&Bhk61`P8*h&>G%^WS|Plp$`Wt zd2Otucx79K{0wcFtV_XNSmD_NUJ%%jIPs&Uxr$OWlZ+~Ti#)2B3w_%eB3qvUI78RI z>ezkT)6`kkj}Nz8!O3Z;_rdPkLzF3i_K081Pa7?BYB z!4!L5Op;`xr99u$oS~G_Hx~lDT&!Dfqac{>N=wLmVupT5j_w`HHfMq>#`PObrOhh# zp?cMhmiz{`1(h{Z<8?YmgQKqX^1>t{d@Hh&=PnGMOJyz?XHtJSLwAh}Rg*K-4zsET c9P8Trf2UnI6jVVbpb>k$X0AYqw!Jle06Lp~K>z>% diff --git a/extras/locales/en/LC_MESSAGES/base.mo b/extras/locales/en/LC_MESSAGES/base.mo deleted file mode 100644 index e56e9c9c4f698196d1c9f23390bf6da85a3ddd45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmYjM!A`?43>^}u9yxQ!f!lCNCy=(VO$%!_D$;i9x=C;gn<+&jt0ZI9WJ`&UtGF+;z;ObD^tDU&O)?@Et;mRG$SiMf8a|&wjx_c zY2vNY9OedK>b)OC>bwbGSv+TC~=^h2oAWk9Vf%Ec2sx^EMkG&`o6g%<%Gsgx zD^pCpIEuy5ec)4XUTKTk-DqoP*5a4Fst>Bvw`BLKOoMi^$rms@>N+nkXh7&)wJ&wS f$nd$e-V!w$_wXL>T1M)&K-(?z>y`xmjo14HFE3?c diff --git a/extras/locales/en/LC_MESSAGES/poll.mo b/extras/locales/en/LC_MESSAGES/poll.mo deleted file mode 100644 index e56e9c9c4f698196d1c9f23390bf6da85a3ddd45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmYjM!A`?43>^}u9yxQ!f!lCNCy=(VO$%!_D$;i9x=C;gn<+&jt0ZI9WJ`&UtGF+;z;ObD^tDU&O)?@Et;mRG$SiMf8a|&wjx_c zY2vNY9OedK>b)OC>bwbGSv+TC~=^h2oAWk9Vf%Ec2sx^EMkG&`o6g%<%Gsgx zD^pCpIEuy5ec)4XUTKTk-DqoP*5a4Fst>Bvw`BLKOoMi^$rms@>N+nkXh7&)wJ&wS f$nd$e-V!w$_wXL>T1M)&K-(?z>y`xmjo14HFE3?c diff --git a/extras/locales/en/LC_MESSAGES/utils.mo b/extras/locales/en/LC_MESSAGES/utils.mo deleted file mode 100644 index e56e9c9c4f698196d1c9f23390bf6da85a3ddd45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmYjM!A`?43>^}u9yxQ!f!lCNCy=(VO$%!_D$;i9x=C;gn<+&jt0ZI9WJ`&UtGF+;z;ObD^tDU&O)?@Et;mRG$SiMf8a|&wjx_c zY2vNY9OedK>b)OC>bwbGSv+TC~=^h2oAWk9Vf%Ec2sx^EMkG&`o6g%<%Gsgx zD^pCpIEuy5ec)4XUTKTk-DqoP*5a4Fst>Bvw`BLKOoMi^$rms@>N+nkXh7&)wJ&wS f$nd$e-V!w$_wXL>T1M)&K-(?z>y`xmjo14HFE3?c diff --git a/extras/locales/fr/LC_MESSAGES/admin.mo b/extras/locales/fr/LC_MESSAGES/admin.mo deleted file mode 100644 index ea265749b3b258f513073035eda8606bc166ea5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmZ{j&u<$=6vqdMKr$ByzeOuOAy6d38YiMs;{IHcO|aOFBgbh~I8An6oN3lGW@gr{ zkvMVY$OZTV$e9aABwx62K;n#$dMsdHvb<=FOY$?0om%#f2XQuGes1 z!u?AKE?k#h5aKf8%i!zaRq!n^178Mn@Llj8_zw6z82bD?%l{6Bd4Gcq@F5uH{||=w z3oq9BSHU+BzYV?#ehgkm%}p@$`|hQBou9z>5dQ{-`G3vw|9~GNegu91E-nc15qJd* z^L;ibUW$ob-Fu^-EKeHz`O7mjW(s{ zHm$Z+)}t1FYqYZ7Zhf}gT5YvZ81;CpLYG5FbV>nwlO-ANiLghqWU zwJW7JwoP06X-YeBme92%i#zG9cyqIt?Csq^X?=oGpXIPkX}q(&AGBRd(_5u#8auer z$U0eau70K2YHS#spvD@L5yX0a;6ELeQt7L~2-dN`zTe-9*3RpKmP58tqH|N=P}{V2 zpnPMSHCt@Bh(4dRX*3zI56zmR39U4*G-`j%+%-L6l4H(KJvRL{n5lA9FwBKCtl}IG zA!_bz!t?iq3FkoKwMVXpFR0mU8w~ zc~vS0rImfE$Xiok`B3GVPVL8YB}-VRD&f~>8l_8f!t33YOK@cPH1Z0{=eLIZ=sBDI zgubbm#-=Ly+X!%UD3#@#qV}#81zWA)!1<02EvF}bdV+tr7(9E$d_KmyH@$ diff --git a/extras/locales/fr/LC_MESSAGES/base.mo b/extras/locales/fr/LC_MESSAGES/base.mo deleted file mode 100644 index b967b853f203df23fdd14ded867f66071f6c26ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1420 zcmZ9L%Z?jG6o!isKr-SMP$Wb^CnyM{s5_o;(WIFf;@CZdg*|qBiIN}|eTs9{r$(Ki{A-6ui}3N z{~vwupXbUmC+ly6m$4p!?|^r~m%#!g@Eh8hwtIQcqL zV>;4?$|9AH!!Q(eUFIn%?Z~pjI(4;mW5fNsE&sZqk5#T^ij6*uA3Ij7>VA<^vSpI6 zwMS*1&nY6Yj{~vnH2DPLvwXa3DiSSOs$@dPnVaa+t&)6CZo;%Pi0=>fXsXjPXVGJs z&Lh!hX^?;3v*>GM<{=Fx(3j}xRI1cVO*89-rsU&9Dz9k7R9a3$(Rb3gwSRRExamKtrvktd;qsV2Z zKBZ(L4Ggn89P9_%=Xt)DBQ`;-674+`(e@~Fl>=66AUF-~%p)r1V|Kn+Sj=fF{J0{9 ziebTW#yPBd>R-0b-)f;%cH-b3CliJnm{QzNW|@{x=#egscV=^1XlqxQc$-U=u=$^t z2g^miT=>q%JcX=HL$B7C3&uyo$=cW6(VK-&b{opy->`NAy1ltqr&=GJC8E`pqu2h1 zQ9MDRL}R(I8qLyFdYk)kotm9#H5eqw#AP#djIVULm`Y=Czg|;) xGaa)n7~fhUQU9qk_$XYKXVzv{b2zB@-BhOR@+iRQFD{HdYtJDO3;fng+iKi0hK-mt7hLd7LlMJa6C zwk#u&z} zr{_3Yh*Nki+9|)fTSikH#@M6iIwqmty^AAe2E0}{lU&qWu1ZPJY#9V7q9H>=7E(W$ zP|r)*VlmcIk-zX9a0dLDpnyj6W$SGi1e0xHmogulp&zond)Ic%X(<#4{YO)2vkKnS zS+(VbxJ2tmE^APuWj4e8y{`5001`8?E;oh93F_Y$%AA7$ofd5HRYOqK0b6+>s?E4UB+Kv%Xl{(Pkr~LOKvF?`?l!!G;EfqbeH-hY@tc&VYq<`_LIgVec&Lh9L>r44-7%Wv~0e;~C3xHj3eU9%aed zT|VJ{Dy(A*Bb2R#(v`TUBcs%&Tmwm`9sAdM&EW$W!C zO|L5%Xj5MKS(5R0_njd0hgvyQ^v13xvksr#m%0*Cox^$~j74|3T->n!yRP-}fQE6k z)`e7M1pRyI{4pvtG;qPb?INgmCAzj*Q174 str: - texts = gettext.translation(self.base, localedir='extras/locales', + texts = gettext.translation(self.base, localedir='utils/locales', languages=[self.locale]) texts.install() return texts.gettext(text) diff --git a/utils/paginator.py b/utils/functions/paginator.py similarity index 100% rename from utils/paginator.py rename to utils/functions/paginator.py diff --git a/utils/version.py b/utils/functions/version.py similarity index 100% rename from utils/version.py rename to utils/functions/version.py diff --git a/extras/locales/en/LC_MESSAGES/admin.po b/utils/locales/en/LC_MESSAGES/admin.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/admin.po rename to utils/locales/en/LC_MESSAGES/admin.po diff --git a/extras/locales/en/LC_MESSAGES/admin_help.po b/utils/locales/en/LC_MESSAGES/admin_help.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/admin_help.po rename to utils/locales/en/LC_MESSAGES/admin_help.po diff --git a/extras/locales/en/LC_MESSAGES/base.po b/utils/locales/en/LC_MESSAGES/base.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/base.po rename to utils/locales/en/LC_MESSAGES/base.po diff --git a/extras/locales/en/LC_MESSAGES/help.po b/utils/locales/en/LC_MESSAGES/help.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/help.po rename to utils/locales/en/LC_MESSAGES/help.po diff --git a/extras/locales/en/LC_MESSAGES/logs.po b/utils/locales/en/LC_MESSAGES/logs.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/logs.po rename to utils/locales/en/LC_MESSAGES/logs.po diff --git a/extras/locales/en/LC_MESSAGES/poll.po b/utils/locales/en/LC_MESSAGES/poll.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/poll.po rename to utils/locales/en/LC_MESSAGES/poll.po diff --git a/extras/locales/en/LC_MESSAGES/poll_help.po b/utils/locales/en/LC_MESSAGES/poll_help.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/poll_help.po rename to utils/locales/en/LC_MESSAGES/poll_help.po diff --git a/extras/locales/en/LC_MESSAGES/useful.po b/utils/locales/en/LC_MESSAGES/useful.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/useful.po rename to utils/locales/en/LC_MESSAGES/useful.po diff --git a/extras/locales/en/LC_MESSAGES/useful_help.po b/utils/locales/en/LC_MESSAGES/useful_help.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/useful_help.po rename to utils/locales/en/LC_MESSAGES/useful_help.po diff --git a/extras/locales/fr/LC_MESSAGES/user.po b/utils/locales/en/LC_MESSAGES/user.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/user.po rename to utils/locales/en/LC_MESSAGES/user.po diff --git a/extras/locales/en/LC_MESSAGES/user_help.po b/utils/locales/en/LC_MESSAGES/user_help.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/user_help.po rename to utils/locales/en/LC_MESSAGES/user_help.po diff --git a/extras/locales/en/LC_MESSAGES/utils.po b/utils/locales/en/LC_MESSAGES/utils.po similarity index 100% rename from extras/locales/en/LC_MESSAGES/utils.po rename to utils/locales/en/LC_MESSAGES/utils.po diff --git a/extras/locales/fr/LC_MESSAGES/admin.po b/utils/locales/fr/LC_MESSAGES/admin.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/admin.po rename to utils/locales/fr/LC_MESSAGES/admin.po diff --git a/extras/locales/fr/LC_MESSAGES/admin_help.po b/utils/locales/fr/LC_MESSAGES/admin_help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/admin_help.po rename to utils/locales/fr/LC_MESSAGES/admin_help.po diff --git a/extras/locales/fr/LC_MESSAGES/base.po b/utils/locales/fr/LC_MESSAGES/base.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/base.po rename to utils/locales/fr/LC_MESSAGES/base.po diff --git a/extras/locales/fr/LC_MESSAGES/help.po b/utils/locales/fr/LC_MESSAGES/help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/help.po rename to utils/locales/fr/LC_MESSAGES/help.po diff --git a/extras/locales/fr/LC_MESSAGES/logs.po b/utils/locales/fr/LC_MESSAGES/logs.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/logs.po rename to utils/locales/fr/LC_MESSAGES/logs.po diff --git a/extras/locales/fr/LC_MESSAGES/logs_help.po b/utils/locales/fr/LC_MESSAGES/logs_help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/logs_help.po rename to utils/locales/fr/LC_MESSAGES/logs_help.po diff --git a/extras/locales/fr/LC_MESSAGES/poll.po b/utils/locales/fr/LC_MESSAGES/poll.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/poll.po rename to utils/locales/fr/LC_MESSAGES/poll.po diff --git a/extras/locales/fr/LC_MESSAGES/poll_help.po b/utils/locales/fr/LC_MESSAGES/poll_help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/poll_help.po rename to utils/locales/fr/LC_MESSAGES/poll_help.po diff --git a/extras/locales/fr/LC_MESSAGES/useful.po b/utils/locales/fr/LC_MESSAGES/useful.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/useful.po rename to utils/locales/fr/LC_MESSAGES/useful.po diff --git a/extras/locales/fr/LC_MESSAGES/useful_help.po b/utils/locales/fr/LC_MESSAGES/useful_help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/useful_help.po rename to utils/locales/fr/LC_MESSAGES/useful_help.po diff --git a/utils/locales/fr/LC_MESSAGES/user.po b/utils/locales/fr/LC_MESSAGES/user.po new file mode 100644 index 0000000..e69de29 diff --git a/extras/locales/fr/LC_MESSAGES/user_help.po b/utils/locales/fr/LC_MESSAGES/user_help.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/user_help.po rename to utils/locales/fr/LC_MESSAGES/user_help.po diff --git a/extras/locales/fr/LC_MESSAGES/utils.po b/utils/locales/fr/LC_MESSAGES/utils.po similarity index 100% rename from extras/locales/fr/LC_MESSAGES/utils.po rename to utils/locales/fr/LC_MESSAGES/utils.po