From 9b92d88e9b08dfcfecc3f4f6a6d3564a4a3b409b Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Fri, 1 Apr 2016 09:11:27 -0400 Subject: Update tutorial channel names to reflect actual display names --- i18n/en.json | 2 +- webapp/components/sidebar.jsx | 24 ++++++++++++++--- .../components/tutorial/tutorial_intro_screens.jsx | 16 ++++++++++- webapp/components/tutorial/tutorial_view.jsx | 31 +++++++++++++++++++--- webapp/i18n/en.json | 4 +-- webapp/i18n/es.json | 4 +-- webapp/i18n/fr.json | 4 +-- webapp/i18n/pt.json | 4 +-- webapp/utils/constants.jsx | 2 ++ 9 files changed, 74 insertions(+), 17 deletions(-) diff --git a/i18n/en.json b/i18n/en.json index 40bce082c..9ffc6d1c4 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1449,7 +1449,7 @@ }, { "id": "api.user.ldap_to_email.not_ldap_account.app_error", - "translation": "This user account does use LDAP" + "translation": "This user account does not use LDAP" }, { "id": "api.user.login.blank_pwd.app_error", diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index b22d3ec34..500e73cf2 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -138,7 +138,9 @@ export default class Sidebar extends React.Component { unreadCounts: JSON.parse(JSON.stringify(ChannelStore.getUnreadCounts())), showTutorialTip: tutorialStep === TutorialSteps.CHANNEL_POPOVER, currentTeam: TeamStore.getCurrent(), - currentUser: UserStore.getCurrentUser() + currentUser: UserStore.getCurrentUser(), + townSquare: ChannelStore.getByName(Constants.DEFAULT_CHANNEL), + offTopic: ChannelStore.getByName(Constants.OFFTOPIC_CHANNEL) }; } @@ -290,6 +292,16 @@ export default class Sidebar extends React.Component { createTutorialTip() { const screens = []; + let townSquareDisplayName = Constants.DEFAULT_CHANNEL_UI_NAME; + if (this.state.townSquare) { + townSquareDisplayName = this.state.townSquare.display_name; + } + + let offTopicDisplayName = Constants.OFFTOPIC_CHANNEL_UI_NAME; + if (this.state.offTopic) { + offTopicDisplayName = this.state.offTopic.display_name; + } + screens.push(
"{townsquare}" and "{offtopic}" channels

Here are two public channels to start:

-

Town Square is a place for team-wide communication. Everyone in your team is a member of this channel.

-

Off-Topic is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.

' +

{townsquare} is a place for team-wide communication. Everyone in your team is a member of this channel.

+

{offtopic} is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.

' + values={{ + townsquare: townSquareDisplayName, + offtopic: offTopicDisplayName + }} />
); diff --git a/webapp/components/tutorial/tutorial_intro_screens.jsx b/webapp/components/tutorial/tutorial_intro_screens.jsx index bad426cfc..0358a6a65 100644 --- a/webapp/components/tutorial/tutorial_intro_screens.jsx +++ b/webapp/components/tutorial/tutorial_intro_screens.jsx @@ -19,6 +19,12 @@ const NUM_SCREENS = 3; import React from 'react'; export default class TutorialIntroScreens extends React.Component { + static get propTypes() { + return { + townSquare: React.PropTypes.object, + offTopic: React.PropTypes.object + }; + } constructor(props) { super(props); @@ -153,6 +159,11 @@ export default class TutorialIntroScreens extends React.Component { ); } + let townSquareDisplayName = Constants.DEFAULT_CHANNEL_UI_NAME; + if (this.props.townSquare) { + townSquareDisplayName = this.props.townSquare.display_name; + } + return (

@@ -171,7 +182,10 @@ export default class TutorialIntroScreens extends React.Component { {supportInfo} {circles}

diff --git a/webapp/components/tutorial/tutorial_view.jsx b/webapp/components/tutorial/tutorial_view.jsx index d9e0ef40d..5f2c1a257 100644 --- a/webapp/components/tutorial/tutorial_view.jsx +++ b/webapp/components/tutorial/tutorial_view.jsx @@ -1,18 +1,43 @@ // Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -import React from 'react'; - import TutorialIntroScreens from './tutorial_intro_screens.jsx'; +import ChannelStore from 'stores/channel_store.jsx'; +import Constants from 'utils/constants.jsx'; + +import React from 'react'; + export default class TutorialView extends React.Component { + constructor(props) { + super(props); + + this.handleChannelChange = this.handleChannelChange.bind(this); + + this.state = { + townSquare: ChannelStore.getByName(Constants.DEFAULT_CHANNEL) + }; + } + componentDidMount() { + ChannelStore.addChangeListener(this.handleChannelChange); + } + componentWillUnmount() { + ChannelStore.removeChangeListener(this.handleChannelChange); + } + handleChannelChange() { + this.setState({ + townSquare: ChannelStore.getByName(Constants.DEFAULT_CHANNEL) + }); + } render() { return (
- +
); } diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index 6f23552b3..2efa90ac5 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -1031,7 +1031,7 @@ "sidebar.pg": "Private Groups", "sidebar.removeList": "Remove from list", "sidebar.tutorialScreen1": "

Channels

Channels organize conversations across different topics. They’re open to everyone on your team. To send private communications use Direct Messages for a single person or Private Groups for multiple people.

", - "sidebar.tutorialScreen2": "

\"Town Square\" and \"Off-Topic\" channels

Here are two public channels to start:

Town Square is a place for team-wide communication. Everyone in your team is a member of this channel.

Off-Topic is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.

", + "sidebar.tutorialScreen2": "

\"{townsquare}\" and \"{offtopic}\" channels

Here are two public channels to start:

{townsquare} is a place for team-wide communication. Everyone in your team is a member of this channel.

{offtopic} is a place for fun and humor outside of work-related channels. You and your team can decide what other channels to create.

", "sidebar.tutorialScreen3": "

Creating and Joining Channels

Click \"More...\" to create a new channel or join an existing one.

You can also create a new channel or private group by clicking the \"+\" symbol next to the channel or private group header.

", "sidebar.unreadAbove": "Unread post(s) above", "sidebar.unreadBelow": "Unread post(s) below", @@ -1179,7 +1179,7 @@ "textbox.quote": ">quote", "textbox.strike": "strike", "tutorial_intro.allSet": "You’re all set", - "tutorial_intro.end": "Click “Next” to enter Town Square. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.", + "tutorial_intro.end": "Click “Next” to enter {channel}. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.", "tutorial_intro.invite": "Invite teammates", "tutorial_intro.next": "Next", "tutorial_intro.screenOne": "

Welcome to:

Mattermost

Your team communication all in one place, instantly searchable and available anywhere

Keep your team connected to help them achieve what matters most.

", diff --git a/webapp/i18n/es.json b/webapp/i18n/es.json index d30792b8c..109861c43 100644 --- a/webapp/i18n/es.json +++ b/webapp/i18n/es.json @@ -985,7 +985,7 @@ "sidebar.pg": "Grupos Privados", "sidebar.removeList": "Remover de la lista", "sidebar.tutorialScreen1": "

Canales

Canales organizan las conversaciones en diferentes tópicos. Son abiertos para cualquier persona de tu equipo. Para enviar comunicaciones privadas con una sola persona utiliza Mensajes Directos o con multiples personas utilizando Grupos Privados.

", - "sidebar.tutorialScreen2": "

Los canal \"General\" y \"Fuera de Tópico\"

Estos son dos canales para comenzar:

General es el lugar para tener comunicación con todo el equipo. Todos los integrantes de tu equipo son miembros de este canal.

Fuera de Tópico es un lugar para diversión y humor fuera de los canales relacionados con el trabajo. Tu y tu equipo pueden decidir que otros canales crear.

", + "sidebar.tutorialScreen2": "

Los canal \"{townsquare}\" y \"{offtopic}\"

Estos son dos canales para comenzar:

{townsquare} es el lugar para tener comunicación con todo el equipo. Todos los integrantes de tu equipo son miembros de este canal.

{offtopic} es un lugar para diversión y humor fuera de los canales relacionados con el trabajo. Tu y tu equipo pueden decidir que otros canales crear.

", "sidebar.tutorialScreen3": "

Creando y Uniendose a Canales

Pincha en \"Más...\" para crear un nuevo canal o unirte a uno existente.

También puedes crear un nuevo canal o grupo privado al pinchar el simbolo de \"+\" que se encuentra al lado del encabezado de Canales o Grupos Privados.

", "sidebar.unreadAbove": "Mensaje(s) sin leer ▲", "sidebar.unreadBelow": "Mensaje(s) sin leer ▼", @@ -1133,7 +1133,7 @@ "textbox.quote": ">cita", "textbox.strike": "tachado", "tutorial_intro.allSet": "Ya estás listo para comenzar", - "tutorial_intro.end": "Pincha “Siguiente” para entrar al Canal General. Este es el primer canal que ven tus compañeros cuando ingresan. Utilizalo para mandar mensajes que todos deben leer.", + "tutorial_intro.end": "Pincha “Siguiente” para entrar al {channel}. Este es el primer canal que ven tus compañeros cuando ingresan. Utilizalo para mandar mensajes que todos deben leer.", "tutorial_intro.invite": "Invitar compañeros", "tutorial_intro.next": "Siguiente", "tutorial_intro.screenOne": "

Bienvenido a:

Mattermost

Las comunicaciones de tu equipo en un solo lugar, con búsquedas instantáneas y disponible desde donde sea.

Mantén a tu equipo conectado para ayudarlos a conseguir lo que realmente importa.

", diff --git a/webapp/i18n/fr.json b/webapp/i18n/fr.json index f05987e15..be207f0da 100644 --- a/webapp/i18n/fr.json +++ b/webapp/i18n/fr.json @@ -986,7 +986,7 @@ "sidebar.pg": "Groupes privés", "sidebar.removeList": "Retirer de la liste", "sidebar.tutorialScreen1": "

Canaux

Les canaux organisent les conversations en sujets distincts. Ils sont ouverts à tout le monde dans votre équipe. Pour envoyer des messages privés, utilisez Messages Privés pour une personne ou Groupes Privés pour plusieurs personnes.

", - "sidebar.tutorialScreen2": "

Canaux \"Town Square\" et \"Off-Topic\"

Voici deux canaux publics pour commencer :

Town Square (\"centre-ville\") est l'endroit idéal pour communiquer avec toute l'équipe. Tous les membres de votre équipe sont membres de ce canal.

Off-Topic (\"hors-sujet\") est l'endroit pour se détendre et parler d'autre chose que de travail. Vous et votre équipe décidez des autres canaux à créer.

", + "sidebar.tutorialScreen2": "

Canaux \"{townsquare}\" et \"{offtopic}\"

Voici deux canaux publics pour commencer :

{townsquare} (\"centre-ville\") est l'endroit idéal pour communiquer avec toute l'équipe. Tous les membres de votre équipe sont membres de ce canal.

{offtopic} (\"hors-sujet\") est l'endroit pour se détendre et parler d'autre chose que de travail. Vous et votre équipe décidez des autres canaux à créer.

", "sidebar.tutorialScreen3": "

Créer et rejoindre des canaux

Cliquez sur \"Plus...\" pour créer un nouveau canal ou rejoindre un canal existant.

Vous pouvez aussi créer un nouveau canal ou un groupe privé en cliquant sur le symbole \"+\" à côté du nom du canal ou de l'en-tête du groupe privé.

", "sidebar.unreadAbove": "Message(s) non-lu(s) ci-dessus", "sidebar.unreadBelow": "Message(s) non-lu(s) ci-dessous", @@ -1134,7 +1134,7 @@ "textbox.quote": ">citation", "textbox.strike": "barré", "tutorial_intro.allSet": "C'est parti !", - "tutorial_intro.end": "Cliquez sur \"Suivant\" pour entrer dans Town Square. C'est le premier canal que les membres voient quand ils s'inscrivent. Utilisez-le pour poster des messages que tout le monde doit lire en premier.", + "tutorial_intro.end": "Cliquez sur \"Suivant\" pour entrer dans {channel}. C'est le premier canal que les membres voient quand ils s'inscrivent. Utilisez-le pour poster des messages que tout le monde doit lire en premier.", "tutorial_intro.invite": "Inviter des membres", "tutorial_intro.next": "Suivant", "tutorial_intro.screenOne": "

Bienvenue sur :

Mattermost

Toute la communication de votre équipe à un seul endroit, Your team communication all in one place, instantanément consultable et disponible partout.

Gardez le lien avec votre équipe pour accomplir les tâches les plus importantes.

", diff --git a/webapp/i18n/pt.json b/webapp/i18n/pt.json index 466d4b6ea..a234b696c 100644 --- a/webapp/i18n/pt.json +++ b/webapp/i18n/pt.json @@ -985,7 +985,7 @@ "sidebar.pg": "Grupos Privados", "sidebar.removeList": "Remover da lista", "sidebar.tutorialScreen1": "

Canais

Canais organizar conversas em diferentes tópicos. Eles estão abertos a todos em sua equipe. Para enviar comunicações privadas utilize Mensagens Diretas para uma única pessoa ou Grupos Privados para várias pessoas.

", - "sidebar.tutorialScreen2": "

Canais \"Town Square\" e \"Off-Topic\"

Aqui estão dois canais públicos para começar:

Town Square é um lugar comunicação de toda equipe. Todo mundo em sua equipe é um membro deste canal.

Off-Topic é um lugar para diversão e humor fora dos canais relacionados com o trabalho. Você e sua equipe podem decidir qual outros canais serão criados.

", + "sidebar.tutorialScreen2": "

Canais \"{townsquare}\" e \"{offtopic}\"

Aqui estão dois canais públicos para começar:

{townsquare} é um lugar comunicação de toda equipe. Todo mundo em sua equipe é um membro deste canal.

{offtopic} é um lugar para diversão e humor fora dos canais relacionados com o trabalho. Você e sua equipe podem decidir qual outros canais serão criados.

", "sidebar.tutorialScreen3": "

Criando e participando de Canais

Clique em \"Mais...\" para criar um novo canal ou participar de um já existente.

Você também pode criar um novo canal ou grupo privado ao clicar em no símbolo \"+\" ao lado do canal ou grupo privado no cabeçalho.

", "sidebar.unreadAbove": "Post(s) não lidos abaixo", "sidebar.unreadBelow": "Post(s) não lidos abaixo", @@ -1133,7 +1133,7 @@ "textbox.quote": ">citar", "textbox.strike": "tachado", "tutorial_intro.allSet": "Está tudo pronto", - "tutorial_intro.end": "Clique em “Próximo” para entrar Town Square. Este é o primeiro canal que sua equipe de trabalho vê quando eles se inscrevem. Use para postar atualizações que todos precisam saber.", + "tutorial_intro.end": "Clique em “Próximo” para entrar {channel}. Este é o primeiro canal que sua equipe de trabalho vê quando eles se inscrevem. Use para postar atualizações que todos precisam saber.", "tutorial_intro.invite": "Convidar pessoas para equipe", "tutorial_intro.next": "Próximo", "tutorial_intro.screenOne": "

Bem vindo ao:

Mattermost

Sua equipe de comunicação em um só lugar, pesquisas instantâneas disponível em qualquer lugar

Mantenha sua equipe conectada para ajudá-los a conseguir o que mais importa.

", diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx index 421a46860..1d6bbd8a0 100644 --- a/webapp/utils/constants.jsx +++ b/webapp/utils/constants.jsx @@ -191,7 +191,9 @@ export default { MOBILE_VIDEO_WIDTH: 480, MOBILE_VIDEO_HEIGHT: 360, DEFAULT_CHANNEL: 'town-square', + DEFAULT_CHANNEL_UI_NAME: 'Town Square', OFFTOPIC_CHANNEL: 'off-topic', + OFFTOPIC_CHANNEL_UI_NAME: 'Off-Topic', GITLAB_SERVICE: 'gitlab', GOOGLE_SERVICE: 'google', EMAIL_SERVICE: 'email', -- cgit v1.2.3-1-g7c22 From 494d09a81eddec88ad48c7067d0b47a41cf7ed8b Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Fri, 1 Apr 2016 10:19:32 -0400 Subject: Remove old translations --- i18n/es.json | 4 ---- i18n/fr.json | 4 ---- i18n/pt.json | 4 ---- 3 files changed, 12 deletions(-) diff --git a/i18n/es.json b/i18n/es.json index 924ce59d2..76b3bf162 100644 --- a/i18n/es.json +++ b/i18n/es.json @@ -1423,10 +1423,6 @@ "id": "api.user.ldap_to_email.not_available.app_error", "translation": "LDAP no está disponible en este servidor" }, - { - "id": "api.user.ldap_to_email.not_ldap_account.app_error", - "translation": "La cuenta de este usuario utiliza LDAP" - }, { "id": "api.user.login.blank_pwd.app_error", "translation": "El campo de contraseña no debe quedar en blanco" diff --git a/i18n/fr.json b/i18n/fr.json index c52e17af8..984c1ef93 100644 --- a/i18n/fr.json +++ b/i18n/fr.json @@ -1539,10 +1539,6 @@ "id": "api.user.email_to_ldap.not_available.app_error", "translation": "LDAP n'est pas disponible sur ce serveur" }, - { - "id": "api.user.ldap_to_email.not_ldap_account.app_error", - "translation": "Ce compte utilisateur utilise LDAP" - }, { "id": "api.user.ldap_to_email.not_available.app_error", "translation": "LDAP n'est pas disponible sur ce serveur" diff --git a/i18n/pt.json b/i18n/pt.json index 11ab26d6c..39b67833c 100644 --- a/i18n/pt.json +++ b/i18n/pt.json @@ -1423,10 +1423,6 @@ "id": "api.user.ldap_to_email.not_available.app_error", "translation": "LDAP não está disponível neste servidor" }, - { - "id": "api.user.ldap_to_email.not_ldap_account.app_error", - "translation": "Está conta de usuário não utiliza LDAP" - }, { "id": "api.user.login.blank_pwd.app_error", "translation": "Campo senha não pode estar em branco" -- cgit v1.2.3-1-g7c22