diff --git a/conf/app.ini b/conf/app.ini
index be49e0641..c94afe072 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -253,5 +253,5 @@ DRIVER =
CONN =
[i18n]
-LANGS = en-US,zh-CN,de-DE
-NAMES = English,简体中文,Deutsch
+LANGS = en-US,zh-CN,de-DE,fr-CA
+NAMES = English,简体中文,Deutsch,Français
diff --git a/conf/locale/locale_fr-CA.ini b/conf/locale/locale_fr-CA.ini
new file mode 100644
index 000000000..05196be9e
--- /dev/null
+++ b/conf/locale/locale_fr-CA.ini
@@ -0,0 +1,516 @@
+app_desc = Un service Git écrit en Go auto-hébergé
+
+home = Accueil
+dashboard = Tableau de bord
+explore = Explorer
+help = Aide
+sign_in = Connexion
+social_sign_in = Social Sign In: 2nd Step associate account
+sign_out = Déconnexion
+sign_up = Créer un compte
+register = S'inscrire
+website = Site web
+version = Version
+page = Page
+template = Gabarit
+language = Langage
+
+username = Usager
+email = Courriel
+password = Mot de passe
+re_type = Tapez de nouveau
+captcha = Captcha
+
+repository = Dépôt
+organization = Organisme
+mirror = Mirroir
+new_repo = Nouveau dépôt
+new_migrate = Nouvelle migration
+new_org = Nouvel organisme
+manage_org = Gestion de organismes
+admin_panel = Gestion
+account_settings = Profil usager
+settings = Configuration
+
+news_feed = Fil de nouvelles
+pull_requests = Demandes de fusion (pull requests)
+issues = Suivi de problèmes
+
+cancel = Annuler
+
+[home]
+uname_holder = Nom d'usager ou courriel
+password_holder = Mot de passe
+switch_dashboard_context = Changer de tableau de bord
+my_repos = Mes dépôts
+collaborative_repos = Dépôts partagés
+my_orgs = Mes organismes
+my_mirrors = Mes mirroirs
+
+[auth]
+create_new_account = Créer un nouveau compte
+register_hepler_msg = Déjà inscrits? Connectez-vous maintenant!
+social_register_hepler_msg = Déjà inscrits? Branchez-vous!
+disable_register_prompt = Désolé, l'auto-inscription n'est pas activée. Contactez l'admnistrateur du site.
+disable_register_mail = Désolé, la confirmation d'inscription par courriel est désactivée. Contactez l'administrateur du site.
+remember_me = Se souvenir de moi
+forgot_password= Mot de passe oublié
+forget_password = Mot de passe oublié?
+sign_up_now = Besoin d'un compte? Inscrivez-vous maintenant.
+confirmation_mail_sent_prompt = Un courriel de confirmation à été envoyé à %s, consultez vos courriels d'ici %d heures pour terminer l'inscription.
+sign_in_email = Connexion avec votre courriel
+active_your_account = Activez votre compte
+resent_limit_prompt = Désolé vous demandez trop souvent un courriel de confirmation. S.v.p. patientez 3 minutes.
+has_unconfirmed_mail = Bonjour %s, votre adresse courriel n'est pas vérifiée(%s). Si vous n'avez pas reçu de courriel de confirmation ou si vous avez besoin d'en envoyer un maintenant, appuyez sur le bouton ci-dessous.
+resend_mail = Appuyez ici pour envoyer de nouveau un courriel de confirmation.
+email_not_associate = Ce courriel ne correspond à aucun compte.
+send_reset_mail = Appuyez ici pour (ré)envoyer un courriel pour réinitialiser de mot de passe.
+reset_password = Réinitialiser votre mot de passe
+invalid_code = Désolé, ce code de confirmation est périmé ou non-valide.
+reset_password_helper = Appuyez ici pour réinitialiser votre mot de passe
+password_too_short = La longueur du mot de passe doit être d'au moins 6 caractères.
+
+[form]
+UserName = Nom d'usager
+RepoName = Nom du dépôt
+Email = Adresse de courriel
+Password = Mot de passe
+Retype = Mot de passe (confirmation)
+SSHTitle = Nom de la clef SSH
+HttpsUrl = URL HTTPS
+PayloadUrl = URL cible
+TeamName = Nom de l'équipe
+AuthName = Nom d'usager
+
+require_error = ` ne peut être vide.`
+alpha_dash_error = ` doit être composé de caractères alpha-numériques et/ou d'un tiret(-_).`
+alpha_dash_dot_error = ` doit être composé de caractères alpha-numérique, un point(.) et/ou tiret(-_).`
+min_size_error = ` doit être composé d'au moins %s caractères.`
+max_size_error = ` doit être conposé d'au plus %s caractères.`
+email_error = ` n'est pas une adresse de courriel bien formée.`
+url_error = ` n'est pas un URL valide.`
+unknown_error = Erreur inconnue:
+captcha_incorrect = Le captcha ne concorde pas.
+password_not_match = Les deux mots de passe diffèrent.
+
+username_been_taken = `Nom d'usager dèjà utilisé.`
+repo_name_been_taken = Nom de dépôt déjà utilisé.
+org_name_been_taken = Nom d'organisme déjà utilisé.
+team_name_been_taken = Nom d'équipe déjà utilisé.
+email_been_used = Adresse de courriel déjà utilisée.
+ssh_key_been_used = Nom de clef public déjà utilisé.
+illegal_username = Votre nom d'usager contient des caractères interdits.
+illegal_repo_name = Le nom du dépôt contient des caractères interdits.
+illegal_org_name = Le nom de l'organisation contient des caractères interdits.
+illegal_team_name = Le nom de l'équipe contient des caractères interdits.
+username_password_incorrect = Nom d'usager ou mot de passe erroné.
+enterred_invalid_repo_name = Nom de dépôt inexistant.
+enterred_invalid_owner_name = Responsable de dépôt inexistant.
+enterred_invalid_password = Mot de passe erroné.
+user_not_exist = Nom d'usager inexistant.
+last_org_owner = Ceci est le dernier responsable du dépôt. Il doit y avoir obligatoirement au moins un usager responsable.
+
+invalid_ssh_key = Désolé, impossible de vérifier votre clef SSH: %
+auth_failed = Erreur d'authentification : %v
+
+still_own_repo = Votre compte est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager.
+org_still_own_repo = Cet organisme est responsable d'au moins un dépôt. Vous devez soit détruire ces dépôts, soit transférer la responsabilité à un autre usager ou organisme.
+
+still_own_user = Cet authentification est utilisé par un usager.
+
+[settings]
+profile = Profile
+password = Mot de passe
+ssh_keys = Clefs SSH
+social = Comptes médias sociaux
+orgs = Organismes
+delete = Supprimer votre compte
+
+public_profile = Profil public
+profile_desc = Votre adresse de couriel est publique et sera utilisée pour les avis produits par le site.
+full_name = Nom complêt
+website = Site web
+location = Endroit
+update_profile = Mettre à jour le profil
+update_profile_success = Mise à jour du profil réussie.
+
+change_password = Changer le mot de passe
+old_password = Mot de passe actuel
+new_password = Nouveau mot de passe
+password_incorrect = Mot de passe actuel erroné.
+change_password_success = Modification du mot de passe effectuée. Vous pouvez dorénavant vous connecter avec le nouveau mot de passe.
+
+manage_ssh_keys = Gestion des clefs SSH
+add_key = Ajouter une clef
+ssh_desc = Voici la liste de clefs SSH associées à votre profil. Détruire les clefs que vous ne reconnaissez pas.
+ssh_helper = Beson d'aide? Consultez le guide au generating SSH keys ou vérifiez les problèmes SSH fréquents.
+add_new_key = Ajouter une clef SSH
+key_name = Nom de la clef
+key_content = Contenu
+add_key_success = Clef SSH ajoutée!
+delete_key = Détruire
+add_on = Ajoutée le
+last_used = Dernière utilisation le
+no_activity = Pas d'activité récente
+
+manage_social = Gestion des profils de Internets associés
+social_desc = Ceci est une list de profils Internet associés. Déassociez les profils que vous ne reconnaissez pas.
+unbind = Déaccocier
+unbind_success = Profil Internet déassocié.
+
+delete_account = Detruire votre compte
+delete_prompt = Cette opération détruira votre compte et ne pourra être annulée!
+confirm_delete_account = Confirmez la suppression
+
+[repo]
+owner = Responsable
+repo_name = Nom du dépôt
+repo_name_helper = Les bons noms de dépôts sont courts, mémorables et uniques
+visibility = Visibilité
+visiblity_helper = Ce dépôt est privé
+repo_desc = Description
+repo_lang = Langue
+repo_lang_helper = Choisir un fichier .gitignore
+license = License
+license_helper = Choisir un fichier de licence
+init_readme = Initialiser le dépôt avec un fichier README.md
+create_repo = Créer le dépôt
+default_branch = Branche par défaut
+mirror_interval = Intervale de synchronisation (heures)
+goget_meta = Métadonnées Go-Get
+goget_meta_helper = Ce dépôt sera Go-Getable
+
+need_auth = Authorisation requise
+migrate_type = Type de migration
+migrate_type_helper = Ce dépôt sera un mirroir
+migrate_repo = Migrer le dépôt
+
+copy_link = Copier
+clone_helper = Besoin d'aide pour cloner? Obtenez de l' aide!
+unwatch = Ne plus suivre
+watch = Suivre
+unstar = Retirer étoile
+star = Étoile
+fork = Fork
+
+quick_guide = Guide rapide
+clone_this_repo = Cloner ce dépôt
+create_new_repo_command = Créer un nouveau dépôt à la ligne de commande
+push_exist_repo = Pousser un dépôt existant depuis la ligne de commande
+
+settings = Réglages
+settings.options = Réglages de base
+settings.collaboration = Collaboration
+settings.hooks = Webhooks
+settings.deploy_keys = Clef de déploiement
+settings.basic_settings = réglages de base
+settings.danger_zone = Danger!
+settings.site = Site officiel
+settings.update_settings = Réglage des mises à jour
+settings.transfer = Transférer la responsabilité
+settings.transfer_desc = Transférer ce dépôt à un autre usager ou organisation si vous en avez la responsabilité.
+settings.delete = Détruire ce dépôt
+settings.delete_desc = La destruction est irrémédiable, impossible d'annuler. Soyez sûr de votre décision.
+settings.update_settings_success = Réglages modifiés
+settings.transfer_owner = Nouveau responsable
+settings.make_transfer = Faire le transfert
+settings.confirm_delete = Confirm Deletion
+settings.add_collaborator = Add New Collaborator
+settings.add_collaborator_success = New collaborator has been added.
+settings.remove_collaborator_success = Collaborator has been removed.
+settings.add_webhook = Add Webhook
+settings.hooks_desc = Webhooks allow external services to be notified when certain events happen on Gogs. When the specified events happen, we'll send a POST request to each of the URLs you provide. Learn more in our Webhooks Guide.
+settings.remove_hook_success = Webhook has been removed.
+settings.add_webhook_desc = We’ll send a POST
request to the URL below with details of any subscribed events. You can also specify which data format you'd like to receive (JSON, x-www-form-urlencoded
, etc). More information can be found in Webhooks Guide.
+settings.payload_url = Payload URL
+settings.content_type = Content Type
+settings.secret = Secret
+settings.event_desc = Which events would you like to trigger this webhook?
+settings.event_push_only = Just the push
event.
+settings.active = Active
+settings.active_helper = We will deliver event details when this hook is triggered.
+settings.add_hook_success = New webhook has been added.
+settings.update_webhook = Update Webhook
+settings.update_hook_success = Webhook has been updated.
+settings.delete_webhook = Delete Webhook
+settings.recent_deliveries = Recent Deliveries
+settings.hook_type = Hook Type
+settings.add_slack_hook_desc = Add Slack integration to your repository.
+settings.slack_token = Token
+settings.slack_domain = Domain
+settings.slack_channel = Channel
+
+[org]
+org_name_holder = Organization Name
+org_name_helper = Great organization names are short and memorable.
+org_email_helper = Organization's Email receives all notifications and confirmations.
+create_org = Create Organization
+repo_updated = Updated
+people = People
+invite_someone = Invite Someone
+teams = Teams
+lower_members = members
+lower_repositories = repositories
+create_new_team = Create New Team
+org_desc = Description
+team_name = Team Name
+team_desc = Description
+team_name_helper = You'll use this name to mention this team in conversations.
+team_desc_helper = What is this team all about?
+team_permission_desc = What permission level should this team have?
+
+settings = Settings
+settings.options = Options
+settings.full_name = Full Name
+settings.website = Website
+settings.location = Location
+settings.update_settings = Update Settings
+settings.update_setting_success = Organization setting has been successfully updated.
+settings.delete = Delete Organization
+settings.delete_account = Delete This Organization
+settings.delete_prompt = The operation will delete this organization permanently, and CANNOT be undo!
+settings.confirm_delete_account = Confirm Deletion
+
+members.public = Public
+members.public_helper = make private
+members.private = Private
+members.private_helper = make public
+members.owner = Owner
+members.member = Member
+members.conceal = Conceal
+members.remove = Remove
+members.leave = Leave
+members.invite_desc = Start typing a username to invite a new member to %s:
+members.invite_now = Invite Now
+
+teams.join = Join
+teams.leave = Leave
+teams.read_access = Read Access
+teams.read_access_helper = This team will be able to view and clone its repositories.
+teams.write_access = Write Access
+teams.write_access_helper = This team will be able to read its repositories, as well as push to them.
+teams.admin_access = Admin Access
+teams.admin_access_helper = This team will be able to push/pull to its repositories, as well as add other collaborators to them.
+teams.no_desc = This team has no description
+teams.settings = Settings
+teams.owners_permission_desc = Owners have full access to all repositories and have admin rights to the organization.
+teams.members = Team Members
+teams.update_settings = Update Settings
+teams.delete_team = Delete This Team
+teams.add_team_member = Add Team Member
+teams.delete_team_success = Given team has been successfully deleted.
+teams.read_permission_desc = This team grants Read access: members can view and clone the team's repositories.
+teams.write_permission_desc = This team grants Write access: members can read from and push to the team's repositories.
+teams.admin_permission_desc = This team grants Admin access: members can read from, push to, and add collaborators to the team's repositories.
+teams.repositories = Team Repositories
+teams.add_team_repository = Add Team Repository
+teams.remove_repo = Remove
+
+[admin]
+dashboard = Dashboard
+users = Users
+organizations = Organizations
+repositories = Repositories
+authentication = Authentications
+config = Configuration
+monitor = Monitoring
+prev = Prev.
+next = Next
+
+dashboard.statistic = Statistic
+dashboard.operations = Operations
+dashboard.system_status = System Monitor Status
+dashboard.statistic_info = Gogs database has %d users, %d organizations, %d public keys, %d repositories, %d watches, %d stars, %d actions, %d accesses, %d issues, %d comments, %d social accounts, %d follows, %d mirrors, %d releases, %d login sources, %d webhooks, %d milestones, %d labels, %d hook tasks, %d teams, %d update tasks, %d attachments.
+dashboard.operation_name = Operation Name
+dashboard.operation_switch = Switch
+dashboard.operation_run = Run
+dashboard.clean_unbind_oauth = Clean unbound OAuthes
+dashboard.delete_inactivate_accounts = Delete all inactive accounts
+dashboard.server_uptime = Server Uptime
+dashboard.current_goroutine = Current Goroutines
+dashboard.current_memory_usage = Current Memory Usage
+dashboard.total_memory_allocated = Total Memory Allocated
+dashboard.memory_obtained = Memory Obtained
+dashboard.pointer_lookup_times = Pointer Lookup Times
+dashboard.memory_allocate_times = Memory Allocate Times
+dashboard.memory_free_times = Memory Free Times
+dashboard.current_heap_usage = Current Heap Usage
+dashboard.heap_memory_obtained = Heap Memory Obtained
+dashboard.heap_memory_idle = Heap Memory Idle
+dashboard.heap_memory_in_use = Heap Memory In Use
+dashboard.heap_memory_released = Heap Memory Released
+dashboard.heap_objects = Heap Objects
+dashboard.bootstrap_stack_usage = Bootstrap Stack Usage
+dashboard.stack_memory_obtained = Stack Memory Obtained
+dashboard.mspan_structures_usage = MSpan Structures Usage
+dashboard.mspan_structures_obtained = MSpan Structures Obtained
+dashboard.mcache_structures_usage = MCache Structures Usage
+dashboard.mcache_structures_obtained = MCache Structures Obtained
+dashboard.profiling_bucket_hash_table_obtained = Profiling Bucket Hash Table Obtained
+dashboard.gc_metadata_obtained = GC Metadada Obtained
+dashboard.other_system_allocation_obtained = Other System Allocation Obtained
+dashboard.next_gc_recycle = Next GC Recycle
+dashboard.last_gc_time = Since Last GC Time
+dashboard.total_gc_time = Total GC Pause
+dashboard.total_gc_pause = Total GC Pause
+dashboard.last_gc_pause = Last GC Pause
+dashboard.gc_times = GC Times
+
+users.user_manage_panel = User Manage Panel
+users.new_account = Create New Account
+users.name = Name
+users.activated = Activated
+users.admin = Admin
+users.repos = Repos
+users.created = Created
+users.edit = Edit
+users.auth_source = Authorization Source
+users.local = Local
+users.auth_login_name = Authorization Login Name
+users.update_profile_success = Account profile has been successfully updated.
+users.edit_account = Edit Account
+users.is_activated = This account is activated
+users.is_admin = This account has administrator permissions
+users.update_profile = Update Account Profile
+users.delete_account = Delete This Account
+users.still_own_repo = This account still have ownership of repository, you have to delete or transfer them first.
+
+orgs.org_manage_panel = Organization Manage Panel
+orgs.name = Name
+orgs.teams = Teams
+orgs.members = Members
+
+repos.repo_manage_panel = Repository Manage Panel
+repos.owner = Owner
+repos.name = Name
+repos.private = Private
+repos.watches = Watches
+repos.stars = Stars
+repos.issues = Issues
+
+auths.auth_manage_panel = Authorization Manage Panel
+auths.new = Add New Authorization Source
+auths.name = Name
+auths.type = Type
+auths.enabled = Enabled
+auths.updated = Updated
+auths.auth_type = Authorization Type
+auths.auth_name = Authorization Name
+auths.domain = Domain
+auths.host = Host
+auths.port = Port
+auths.base_dn = Base DN
+auths.attributes = Search Attributes
+auths.filter = Search Filter
+auths.ms_ad_sa = Ms Ad SA
+auths.smtp_auth = SMTP Authorization Type
+auths.smtphost = SMTP Host
+auths.smtpport = SMTP Port
+auths.enable_tls = Enable TLS Encryption
+auths.enable_auto_register = Enable Auto Registration
+auths.tips = Tips
+auths.edit = Edit Authorization Setting
+auths.activated = This authentication has activated
+auths.update_success = Authorization setting has been successfully updated.
+auths.update = Update Authorization Setting
+auths.delete = Delete This Authorization
+
+config.server_config = Server Configuration
+config.app_name = Application Name
+config.app_ver = Application Version
+config.app_url = Application URL
+config.domain = Domain
+config.offline_mode = Offline Mode
+config.disable_router_log = Disable Router Log
+config.run_user = Run User
+config.run_mode = Run Mode
+config.repo_root_path = Repository Root Path
+config.static_file_root_path = Static File Root Path
+config.log_file_root_path = Log File Root Path
+config.script_type = Script Type
+config.reverse_auth_user = Reverse Authentication User
+config.db_config = Database Configuration
+config.db_type = Type
+config.db_host = Host
+config.db_name = Name
+config.db_user = User
+config.db_ssl_mode = SSL Mode
+config.db_ssl_mode_helper = (for "postgres" only)
+config.db_path = Path
+config.db_path_helper = (for "sqlite3" only)
+config.service_config = Service Configuration
+config.register_email_confirm = Register Email Confirmation
+config.disable_register = Disable Registration
+config.require_sign_in_view = Require Sign In View
+config.mail_notify = Mail Notification
+config.enable_cache_avatar = Enable Cache Avatar
+config.active_code_lives = Active Code Lives
+config.reset_password_code_lives = Reset Password Code Lives
+config.webhook_config = Webhook Configuration
+config.task_interval = Task Interval
+config.deliver_timeout = Deliver Timeout
+config.mailer_config = Mailer Configuration
+config.mailer_enabled = Enabled
+config.mailer_name = Name
+config.mailer_host = Host
+config.mailer_user = User
+config.oauth_config = OAuth Configuration
+config.oauth_enabled = Enabled
+config.cache_config = Cache Configuration
+config.cache_adapter = Cache Adapter
+config.cache_interval = Cache Interval
+config.cache_conn = Cache Connection
+config.session_config = Session Configuration
+config.session_provider = Session Provider
+config.provider_config = Provider Config
+config.cookie_name = Cookie Name
+config.enable_set_cookie = Enable Set Cookie
+config.gc_interval_time = GC Interval Time
+config.session_life_time = Session Life Time
+config.https_only = HTTPS Only
+config.cookie_life_time = Cookie Life Time
+config.session_hash_function = Session ID Hash Function
+config.session_hash_key = Session ID Hash Key
+config.picture_config = Picture Configuration
+config.picture_service = Picture Service
+config.disable_gravatar = Disable Gravatar
+config.log_config = Log Configuration
+config.log_mode = Log Mode
+
+monitor.cron = Cron Tasks
+monitor.name = Name
+monitor.schedule = Schedule
+monitor.next = Next Time
+monitor.previous = Previous Time
+monitor.execute_times = Execute Times
+monitor.process = Running Processes
+monitor.desc = Description
+monitor.start = Start Time
+monitor.execute_time = Execution Time
+
+[action]
+create_repo = a créé le dépôt %s
+commit_repo = a poussé sur %s à %s
+create_issue = a ouvert le ticket %s#%s
+comment_issue = a commenté sur le ticket %s#%s
+
+[tool]
+ago = ago
+from_now = from now
+now = now
+1s = 1 second %s
+1m = 1 minute %s
+1h = 1 hour %s
+1d = 1 day %s
+1w = 1 week %s
+1mon = 1 month %s
+1y = 1 year %s
+seconds = %d seconds %s
+minutes = %d minutes %s
+hours = %d hours %s
+days = %d days %s
+weeks = %d weeks %s
+months = %d months %s
+years = %d years %s
+raw_seconds = seconds
+raw_minutes = minutes