Actualización

This commit is contained in:
Xes
2025-04-10 12:24:57 +02:00
parent 8969cc929d
commit 45420b6f0d
39760 changed files with 4303286 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.change_password.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
<argument type="service" id="form.factory" />
<argument>%fos_user.change_password.form.name%</argument>
<argument>%fos_user.change_password.form.type%</argument>
<argument>%fos_user.change_password.form.validation_groups%</argument>
</service>
<service id="fos_user.change_password.form.type" class="FOS\UserBundle\Form\Type\ChangePasswordFormType">
<tag name="form.type" alias="fos_user_change_password" />
<argument>%fos_user.model.user.class%</argument>
</service>
<service id="fos_user.change_password.controller" class="FOS\UserBundle\Controller\ChangePasswordController" public="true">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="fos_user.change_password.form.factory" />
<argument type="service" id="fos_user.user_manager" />
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.command.activate_user" class="FOS\UserBundle\Command\ActivateUserCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:activate" />
</service>
<service id="fos_user.command.change_password" class="FOS\UserBundle\Command\ChangePasswordCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:change-password" />
</service>
<service id="fos_user.command.create_user" class="FOS\UserBundle\Command\CreateUserCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:create" />
</service>
<service id="fos_user.command.deactivate_user" class="FOS\UserBundle\Command\DeactivateUserCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:deactivate" />
</service>
<service id="fos_user.command.demote_user" class="FOS\UserBundle\Command\DemoteUserCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:demote" />
</service>
<service id="fos_user.command.promote_user" class="FOS\UserBundle\Command\PromoteUserCommand">
<argument type="service" id="fos_user.util.user_manipulator" />
<tag name="console.command" command="fos:user:promote" />
</service>
</services>
</container>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping>
<mapped-superclass name="FOS\UserBundle\Model\Group" indexed="true">
<field name="name" fieldName="name" type="string" index="true" />
<field name="roles" fieldName="roles" type="mixed" />
</mapped-superclass>
</doctrine-mapping>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
<mapped-superclass name="FOS\UserBundle\Model\Group" collection="fos_user_group">
<field name="name" fieldName="name" type="string" />
<field name="roles" fieldName="roles" type="collection" />
<indexes>
<index>
<key name="name" order="asc" />
<option name="safe" value="true" />
<option name="unique" value="true" />
</index>
</indexes>
</mapped-superclass>
</doctrine-mongo-mapping>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<mapped-superclass name="FOS\UserBundle\Model\Group">
<field name="name" column="name" type="string" length="180" unique="true" />
<field name="roles" column="roles" type="array" />
</mapped-superclass>
</doctrine-mapping>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping>
<mapped-superclass name="FOS\UserBundle\Model\User" indexed="true">
<field name="username" fieldName="username" type="string" index="true" />
<field name="usernameCanonical" fieldName="usernameCanonical" type="string" index="true" />
<field name="email" fieldName="email" type="string" index="true" />
<field name="emailCanonical" fieldName="emailCanonical" type="string" index="true" />
<field name="enabled" fieldName="enabled" type="mixed" />
<field name="salt" fieldName="salt" type="string" />
<field name="password" fieldName="password" type="string" />
<field name="lastLogin" fieldName="lastLogin" type="datetime" />
<field name="confirmationToken" fieldName="confirmationToken" type="string" index="true" />
<field name="passwordRequestedAt" fieldName="passwordRequestedAt" type="datetime" />
<field name="roles" fieldName="roles" type="mixed" />
</mapped-superclass>
</doctrine-mapping>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mongo-mapping xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping
http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
<mapped-superclass name="FOS\UserBundle\Model\User" collection="fos_user_user">
<field name="username" fieldName="username" type="string" />
<field name="usernameCanonical" fieldName="usernameCanonical" type="string" />
<field name="email" fieldName="email" type="string" />
<field name="emailCanonical" fieldName="emailCanonical" type="string" />
<field name="enabled" fieldName="enabled" type="boolean" />
<field name="salt" fieldName="salt" type="string" />
<field name="password" fieldName="password" type="string" />
<field name="lastLogin" fieldName="lastLogin" type="date" />
<field name="confirmationToken" fieldName="confirmationToken" type="string" />
<field name="passwordRequestedAt" fieldName="passwordRequestedAt" type="date" />
<field name="roles" fieldName="roles" type="collection" />
<indexes>
<index>
<key name="usernameCanonical" order="asc" />
<option name="safe" value="true" />
<option name="unique" value="true" />
</index>
<index>
<key name="emailCanonical" order="asc" />
<option name="safe" value="true" />
<option name="unique" value="true" />
</index>
<index>
<key name="confirmationToken" order="asc" />
<option name="safe" value="true" />
<option name="sparse" value="true" />
<option name="unique" value="true" />
</index>
</indexes>
</mapped-superclass>
</doctrine-mongo-mapping>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<mapped-superclass name="FOS\UserBundle\Model\User">
<field name="username" column="username" type="string" length="180" />
<field name="usernameCanonical" column="username_canonical" type="string" length="180" unique="true" />
<field name="email" column="email" type="string" length="180" />
<field name="emailCanonical" column="email_canonical" type="string" length="180" unique="true" />
<field name="enabled" column="enabled" type="boolean" />
<field name="salt" column="salt" type="string" nullable="true" />
<field name="password" column="password" type="string" />
<field name="lastLogin" column="last_login" type="datetime" nullable="true" />
<field name="confirmationToken" column="confirmation_token" type="string" length="180" unique="true" nullable="true" />
<field name="passwordRequestedAt" column="password_requested_at" type="datetime" nullable="true" />
<field name="roles" column="roles" type="array" />
</mapped-superclass>
</doctrine-mapping>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.user_manager.default" class="FOS\UserBundle\Doctrine\UserManager" public="false">
<argument type="service" id="fos_user.util.password_updater" />
<argument type="service" id="fos_user.util.canonical_fields_updater" />
<argument type="service" id="fos_user.object_manager" />
<argument>%fos_user.model.user.class%</argument>
</service>
<!-- The factory is configured in the DI extension class to support more Symfony versions -->
<service id="fos_user.object_manager" class="Doctrine\Common\Persistence\ObjectManager" public="false">
<argument>%fos_user.model_manager_name%</argument>
</service>
<service id="fos_user.user_listener" class="FOS\UserBundle\Doctrine\UserListener" public="false">
<argument type="service" id="fos_user.util.password_updater" />
<argument type="service" id="fos_user.util.canonical_fields_updater" />
</service>
</services>
</container>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="fos_user.group_manager.class">FOS\UserBundle\Doctrine\GroupManager</parameter>
</parameters>
<services>
<service id="fos_user.group_manager.default" class="%fos_user.group_manager.class%" public="false">
<argument type="service" id="fos_user.object_manager" />
<argument>%fos_user.model.group.class%</argument>
</service>
</services>
</container>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.listener.email_confirmation" class="FOS\UserBundle\EventListener\EmailConfirmationListener">
<tag name="kernel.event_subscriber" />
<argument type="service" id="fos_user.mailer" />
<argument type="service" id="fos_user.util.token_generator" />
<argument type="service" id="router" />
<argument type="service" id="session" />
</service>
</services>
</container>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.listener.flash" class="FOS\UserBundle\EventListener\FlashListener">
<tag name="kernel.event_subscriber" />
<argument type="service" id="session" />
<argument type="service" id="translator" />
</service>
</services>
</container>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.group.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
<argument type="service" id="form.factory" />
<argument>%fos_user.group.form.name%</argument>
<argument>%fos_user.group.form.type%</argument>
<argument>%fos_user.group.form.validation_groups%</argument>
</service>
<service id="fos_user.group.form.type" class="FOS\UserBundle\Form\Type\GroupFormType">
<tag name="form.type" alias="fos_user_group" />
<argument>%fos_user.model.group.class%</argument>
</service>
<service id="fos_user.group.controller" class="FOS\UserBundle\Controller\GroupController" public="true">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="fos_user.group.form.factory" />
<argument type="service" id="fos_user.group_manager" />
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.listener.authentication" class="FOS\UserBundle\EventListener\AuthenticationListener">
<tag name="kernel.event_subscriber" />
<argument type="service" id="fos_user.security.login_manager" />
<argument>%fos_user.firewall_name%</argument>
</service>
</services>
</container>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="fos_user.resetting.email.template">@FOSUser/Resetting/email.txt.twig</parameter>
<parameter key="fos_user.registration.confirmation.template">@FOSUser/Registration/email.txt.twig</parameter>
</parameters>
<services>
<service id="fos_user.mailer.default" class="FOS\UserBundle\Mailer\Mailer" public="false">
<argument type="service" id="mailer" />
<argument type="service" id="router" />
<argument type="service" id="templating" />
<argument type="collection">
<argument key="confirmation.template">%fos_user.registration.confirmation.template%</argument>
<argument key="resetting.template">%fos_user.resetting.email.template%</argument>
<argument key="from_email" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.from_email%</argument>
<argument key="resetting">%fos_user.resetting.email.from_email%</argument>
</argument>
</argument>
<tag name="fos_user.requires_swift" />
</service>
<service id="fos_user.mailer.twig_swift" class="FOS\UserBundle\Mailer\TwigSwiftMailer" public="false">
<argument type="service" id="mailer" />
<argument type="service" id="router" />
<argument type="service" id="twig" />
<argument type="collection">
<argument key="template" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.template%</argument>
<argument key="resetting">%fos_user.resetting.email.template%</argument>
</argument>
<argument key="from_email" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.from_email%</argument>
<argument key="resetting">%fos_user.resetting.email.from_email%</argument>
</argument>
</argument>
<tag name="fos_user.requires_swift" />
</service>
<service id="fos_user.mailer.noop" class="FOS\UserBundle\Mailer\NoopMailer" public="false" />
</services>
</container>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.profile.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
<argument type="service" id="form.factory" />
<argument>%fos_user.profile.form.name%</argument>
<argument>%fos_user.profile.form.type%</argument>
<argument>%fos_user.profile.form.validation_groups%</argument>
</service>
<service id="fos_user.profile.form.type" class="FOS\UserBundle\Form\Type\ProfileFormType">
<argument>%fos_user.model.user.class%</argument>
<tag name="form.type" alias="fos_user_profile" />
</service>
<service id="fos_user.profile.controller" class="FOS\UserBundle\Controller\ProfileController" public="true">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="fos_user.profile.form.factory" />
<argument type="service" id="fos_user.user_manager" />
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.registration.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
<argument type="service" id="form.factory" />
<argument>%fos_user.registration.form.name%</argument>
<argument>%fos_user.registration.form.type%</argument>
<argument>%fos_user.registration.form.validation_groups%</argument>
</service>
<service id="fos_user.registration.form.type" class="FOS\UserBundle\Form\Type\RegistrationFormType">
<tag name="form.type" alias="fos_user_registration" />
<argument>%fos_user.model.user.class%</argument>
</service>
<service id="fos_user.registration.controller" class="FOS\UserBundle\Controller\RegistrationController" public="true">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="fos_user.registration.form.factory" />
<argument type="service" id="fos_user.user_manager" />
<argument type="service" id="security.token_storage" />
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.resetting.form.factory" class="FOS\UserBundle\Form\Factory\FormFactory">
<argument type="service" id="form.factory" />
<argument>%fos_user.resetting.form.name%</argument>
<argument>%fos_user.resetting.form.type%</argument>
<argument>%fos_user.resetting.form.validation_groups%</argument>
</service>
<service id="fos_user.resetting.form.type" class="FOS\UserBundle\Form\Type\ResettingFormType">
<tag name="form.type" alias="fos_user_resetting" />
<argument>%fos_user.model.user.class%</argument>
</service>
<service id="fos_user.listener.resetting" class="FOS\UserBundle\EventListener\ResettingListener">
<tag name="kernel.event_subscriber" />
<argument type="service" id="router" />
<argument>%fos_user.resetting.token_ttl%</argument>
</service>
<service id="fos_user.resetting.controller" class="FOS\UserBundle\Controller\ResettingController" public="true">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="fos_user.resetting.form.factory" />
<argument type="service" id="fos_user.user_manager" />
<argument type="service" id="fos_user.util.token_generator" />
<argument type="service" id="fos_user.mailer" />
<argument>%fos_user.resetting.retry_ttl%</argument>
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<import
resource="@FOSUserBundle/Resources/config/routing/security.xml" />
<import
resource="@FOSUserBundle/Resources/config/routing/profile.xml"
prefix="/profile" />
<import
resource="@FOSUserBundle/Resources/config/routing/registration.xml"
prefix="/register" />
<import
resource="@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix="/resetting" />
<import
resource="@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix="/profile" />
</routes>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_change_password" path="/change-password" methods="GET POST">
<default key="_controller">fos_user.change_password.controller:changePasswordAction</default>
</route>
</routes>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_group_list" path="/list" methods="GET">
<default key="_controller">fos_user.group.controller:listAction</default>
</route>
<route id="fos_user_group_new" path="/new" methods="GET POST">
<default key="_controller">fos_user.group.controller:newAction</default>
</route>
<route id="fos_user_group_show" path="/{groupName}" methods="GET">
<default key="_controller">fos_user.group.controller:showAction</default>
</route>
<route id="fos_user_group_edit" path="/{groupName}/edit" methods="GET POST">
<default key="_controller">fos_user.group.controller:editAction</default>
</route>
<route id="fos_user_group_delete" path="/{groupName}/delete" methods="GET">
<default key="_controller">fos_user.group.controller:deleteAction</default>
</route>
</routes>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_profile_show" path="/" methods="GET">
<default key="_controller">fos_user.profile.controller:showAction</default>
</route>
<route id="fos_user_profile_edit" path="/edit" methods="GET POST">
<default key="_controller">fos_user.profile.controller:editAction</default>
</route>
</routes>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_registration_register" path="/" methods="GET POST">
<default key="_controller">fos_user.registration.controller:registerAction</default>
</route>
<route id="fos_user_registration_check_email" path="/check-email" methods="GET">
<default key="_controller">fos_user.registration.controller:checkEmailAction</default>
</route>
<route id="fos_user_registration_confirm" path="/confirm/{token}" methods="GET">
<default key="_controller">fos_user.registration.controller:confirmAction</default>
</route>
<route id="fos_user_registration_confirmed" path="/confirmed" methods="GET">
<default key="_controller">fos_user.registration.controller:confirmedAction</default>
</route>
</routes>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_resetting_request" path="/request" methods="GET">
<default key="_controller">fos_user.resetting.controller:requestAction</default>
</route>
<route id="fos_user_resetting_send_email" path="/send-email" methods="POST">
<default key="_controller">fos_user.resetting.controller:sendEmailAction</default>
</route>
<route id="fos_user_resetting_check_email" path="/check-email" methods="GET">
<default key="_controller">fos_user.resetting.controller:checkEmailAction</default>
</route>
<route id="fos_user_resetting_reset" path="/reset/{token}" methods="GET POST">
<default key="_controller">fos_user.resetting.controller:resetAction</default>
</route>
</routes>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="fos_user_security_login" path="/login" methods="GET POST">
<default key="_controller">fos_user.security.controller:loginAction</default>
</route>
<route id="fos_user_security_check" path="/login_check" methods="POST">
<default key="_controller">fos_user.security.controller:checkAction</default>
</route>
<route id="fos_user_security_logout" path="/logout" methods="GET POST">
<default key="_controller">fos_user.security.controller:logoutAction</default>
</route>
</routes>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="fos_user.security.interactive_login_listener.class">FOS\UserBundle\EventListener\LastLoginListener</parameter>
<parameter key="fos_user.security.login_manager.class">FOS\UserBundle\Security\LoginManager</parameter>
</parameters>
<services>
<service id="fos_user.security.interactive_login_listener" class="%fos_user.security.interactive_login_listener.class%">
<tag name="kernel.event_subscriber" />
<argument type="service" id="fos_user.user_manager" />
</service>
<service id="fos_user.security.login_manager" class="%fos_user.security.login_manager.class%">
<argument type="service" id="security.token_storage" />
<argument type="service" id="security.user_checker" />
<argument type="service" id="security.authentication.session_strategy" />
<argument type="service" id="request_stack" />
<argument>null</argument> <!-- remember_me service -->
</service>
<service id="FOS\UserBundle\Security\LoginManagerInterface" alias="fos_user.security.login_manager" public="false" />
<service id="fos_user.user_provider.username" class="FOS\UserBundle\Security\UserProvider" public="false">
<argument type="service" id="fos_user.user_manager" />
</service>
<service id="fos_user.user_provider.username_email" class="FOS\UserBundle\Security\EmailUserProvider" public="false">
<argument type="service" id="fos_user.user_manager" />
</service>
<service id="fos_user.security.controller" class="FOS\UserBundle\Controller\SecurityController" public="true">
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
<call method="setContainer">
<argument type="service" id="service_container" />
</call>
</service>
</services>
</container>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="FOS\UserBundle\Model\User">
<constraint name="Doctrine\Bundle\CouchDBBundle\Validator\Constraints\UniqueEntity">
<option name="fields">usernameCanonical</option>
<option name="errorPath">username</option>
<option name="message">fos_user.username.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Doctrine\Bundle\CouchDBBundle\Validator\Constraints\UniqueEntity">
<option name="fields">emailCanonical</option>
<option name="errorPath">email</option>
<option name="message">fos_user.email.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</class>
<class name="FOS\UserBundle\Model\Group">
<constraint name="Doctrine\Bundle\CouchDBBundle\Validator\Constraints\UniqueEntity">
<option name="fields">name</option>
<option name="errorPath">name</option>
<option name="message">fos_group.name.already_used</option>
<option name="groups">
<value>Registration</value>
</option>
</constraint>
</class>
</constraint-mapping>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="FOS\UserBundle\Model\User">
<constraint name="Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique">
<option name="fields">usernameCanonical</option>
<option name="errorPath">username</option>
<option name="message">fos_user.username.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique">
<option name="fields">emailCanonical</option>
<option name="errorPath">email</option>
<option name="message">fos_user.email.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</class>
<class name="FOS\UserBundle\Model\Group">
<constraint name="Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique">
<option name="fields">name</option>
<option name="errorPath">name</option>
<option name="message">fos_group.name.already_used</option>
<option name="groups">
<value>Registration</value>
</option>
</constraint>
</class>
</constraint-mapping>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="FOS\UserBundle\Model\User">
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
<option name="fields">usernameCanonical</option>
<option name="errorPath">username</option>
<option name="message">fos_user.username.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
<option name="fields">emailCanonical</option>
<option name="errorPath">email</option>
<option name="message">fos_user.email.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</class>
<class name="FOS\UserBundle\Model\Group">
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
<option name="fields">name</option>
<option name="errorPath">name</option>
<option name="message">fos_group.name.already_used</option>
<option name="groups">
<value>Registration</value>
</option>
</constraint>
</class>
</constraint-mapping>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.username_form_type" class="FOS\UserBundle\Form\Type\UsernameFormType">
<tag name="form.type" alias="fos_user_username" />
<argument type="service" id="fos_user.user_to_username_transformer" />
</service>
<service id="fos_user.user_to_username_transformer" class="FOS\UserBundle\Form\DataTransformer\UserToUsernameTransformer" public="false">
<argument type="service" id="fos_user.user_manager" />
</service>
</services>
</container>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.util.canonicalizer.default" class="FOS\UserBundle\Util\Canonicalizer" public="false" />
<service id="fos_user.util.user_manipulator" class="FOS\UserBundle\Util\UserManipulator">
<argument type="service" id="fos_user.user_manager" />
<argument type="service" id="event_dispatcher" />
<argument type="service" id="request_stack" />
</service>
<service id="fos_user.util.token_generator.default" class="FOS\UserBundle\Util\TokenGenerator" public="false" />
<service id="FOS\UserBundle\Util\TokenGeneratorInterface" alias="fos_user.util.token_generator" public="false" />
<service id="fos_user.util.password_updater" class="FOS\UserBundle\Util\PasswordUpdater" public="false">
<argument type="service" id="security.encoder_factory" />
</service>
<service id="FOS\UserBundle\Util\PasswordUpdaterInterface" alias="fos_user.util.password_updater" public="false" />
<service id="fos_user.util.canonical_fields_updater" class="FOS\UserBundle\Util\CanonicalFieldsUpdater" public="false">
<argument type="service" id="fos_user.util.username_canonicalizer" />
<argument type="service" id="fos_user.util.email_canonicalizer" />
</service>
<service id="FOS\UserBundle\Util\CanonicalFieldsUpdater" alias="fos_user.util.canonical_fields_updater" public="false" />
<service id="FOS\UserBundle\Model\UserManagerInterface" alias="fos_user.user_manager" public="false" />
</services>
</container>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="FOS\UserBundle\Model\User">
<property name="username">
<constraint name="NotBlank">
<option name="message">fos_user.username.blank</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Length">
<option name="min">2</option>
<option name="minMessage">fos_user.username.short</option>
<option name="max">180</option>
<option name="maxMessage">fos_user.username.long</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</property>
<property name="email">
<constraint name="NotBlank">
<option name="message">fos_user.email.blank</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Length">
<option name="min">2</option>
<option name="minMessage">fos_user.email.short</option>
<option name="max">180</option>
<option name="maxMessage">fos_user.email.long</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
<constraint name="Email">
<option name="message">fos_user.email.invalid</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</property>
<property name="plainPassword">
<constraint name="NotBlank">
<option name="message">fos_user.password.blank</option>
<option name="groups">
<value>Registration</value>
<value>ResetPassword</value>
<value>ChangePassword</value>
</option>
</constraint>
<constraint name="Length">
<option name="min">2</option>
<option name="max">4096</option>
<option name="minMessage">fos_user.password.short</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
<value>ResetPassword</value>
<value>ChangePassword</value>
</option>
</constraint>
</property>
</class>
<class name="FOS\UserBundle\Model\Group">
<property name="name">
<constraint name="NotBlank">
<option name="message">fos_user.group.blank</option>
<option name="groups">Registration</option>
</constraint>
<constraint name="Length">
<option name="min">2</option>
<option name="minMessage">fos_user.group.short</option>
<option name="max">180</option>
<option name="maxMessage">fos_user.group.long</option>
<option name="groups">Registration</option>
</constraint>
</property>
</class>
</constraint-mapping>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.validator.initializer" class="FOS\UserBundle\Validator\Initializer" public="false">
<tag name="validator.initializer" />
<argument type="service" id="fos_user.util.canonical_fields_updater" />
</service>
</services>
</container>

View File

@@ -0,0 +1,322 @@
FOSUserBundle Invitation
========================
Require an invitation to create a new user is a pattern mostly used for
early stage of a project. User enter their invitation code in order to
register.
Invitation model
----------------
First we need to add the invitation entity. An invitation is represented
by a unique code/identifier generated in the constructor::
<?php
// src/AppBundle/Entity/Invitation.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/** @ORM\Entity */
class Invitation
{
/** @ORM\Id @ORM\Column(type="string", length=6) */
protected $code;
/** @ORM\Column(type="string", length=256) */
protected $email;
/**
* When sending invitation be sure to set this value to `true`
*
* It can prevent invitations from being sent twice
*
* @ORM\Column(type="boolean")
*/
protected $sent = false;
public function __construct()
{
// generate identifier only once, here a 6 characters length code
$this->code = substr(md5(uniqid(rand(), true)), 0, 6);
}
public function getCode()
{
return $this->code;
}
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
public function isSent()
{
return $this->sent;
}
public function send()
{
$this->sent = true;
}
}
Next we map our ``Invitation`` entity to our ``User`` with a one-to-one association::
<?php
// src/AppBundel/Entity/User.php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/** @ORM\Entity */
class User extends \FOS\UserBundle\Model\User
{
/** @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue(strategy="AUTO") */
protected $id;
/**
* @ORM\OneToOne(targetEntity="Invitation")
* @ORM\JoinColumn(referencedColumnName="code")
* @Assert\NotNull(message="Your invitation is wrong", groups={"Registration"})
*/
protected $invitation;
public function setInvitation(Invitation $invitation)
{
$this->invitation = $invitation;
}
public function getInvitation()
{
return $this->invitation;
}
}
Add invitation to RegistrationFormType
--------------------------------------
Override the default registration form with your own::
<?php
// src/AppBundle/Form/RegistrationFormType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('invitation', 'AppBundle\Form\InvitationFormType');
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// Not necessary on Symfony 3+
public function getName()
{
return 'app_user_registration';
}
}
Create the invitation field::
<?php
// src/AppBundle/Form/InvitationFormType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Doctrine\ORM\EntityRepository;
use AppBundle\Form\DataTransformer\InvitationToCodeTransformer;
class InvitationFormType extends AbstractType
{
private $invitationTransformer;
public function __construct(InvitationToCodeTransformer $invitationTransformer)
{
$this->invitationTransformer = $invitationTransformer;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addModelTransformer($this->invitationTransformer);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'class' => 'AppBundle\Entity\Invitation',
'required' => true,
));
}
public function getParent()
{
return 'Symfony\Component\Form\Extension\Core\Type\TextType';
}
public function getBlockPrefix()
{
return 'app_invitation_type';
}
// Not necessary on Symfony 3+
public function getName()
{
return 'app_invitation_type';
}
}
Create the custom data transformer::
<?php
// src/AppBundle/Form/DataTransformer/InvitationToCodeTransformer.php
namespace AppBundle\Form\DataTransformer;
use AppBundle\Entity\Invitation;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
/**
* Transforms an Invitation to an invitation code.
*/
class InvitationToCodeTransformer implements DataTransformerInterface
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function transform($value)
{
if (null === $value) {
return null;
}
if (!$value instanceof Invitation) {
throw new UnexpectedTypeException($value, 'AppBundle\Entity\Invitation');
}
return $value->getCode();
}
public function reverseTransform($value)
{
if (null === $value || '' === $value) {
return null;
}
if (!is_string($value)) {
throw new UnexpectedTypeException($value, 'string');
}
$dql = <<<DQL
SELECT i
FROM AppBundle:Invitation i
WHERE i.code = :code
AND NOT EXISTS(SELECT 1 FROM AppBundle:User u WHERE u.invitation = i)
DQL;
return $this->entityManager
->createQuery($dql)
->setParameter('code', $value)
->setMaxResults(1)
->getOneOrNullResult();
}
}
Register your custom form type in the container:
.. configuration-block::
.. code-block:: yaml
# app/config/services.yml
services:
app.form.registration:
class: AppBundle\Form\RegistrationFormType
tags:
- { name: "form.type", alias: "app_user_registration" }
app.form.invitation:
class: AppBundle\Form\InvitationFormType
arguments: ['@app.form.data_transformer.invitation']
tags:
- { name: "form.type", alias: "app_invitation_type" }
app.form.data_transformer.invitation:
class: AppBundle\Form\DataTransformer\InvitationToCodeTransformer
arguments: ['@doctrine.orm.entity_manager']
public: false
.. code-block:: xml
<!-- app/config/services.xml -->
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="app.form.registration" class="AppBundle\Form\RegistrationFormType">
<tag name="form.type" alias="app_user_registration" />
</service>
<service id="app.form.invitation" class="AppBundle\Form\InvitationFormType">
<argument type="service" id="app.form.data_transformer.invitation"/>
<tag name="form.type" alias="app_invitation_type" />
</service>
<service id="app.form.data_transformer.invitation"
class="AppBundle\Form\DataTransformer\InvitationToCodeTransformer"
public="false
>
<argument type="service" id="doctrine.orm.entity_manager"/>
</service>
</services>
</container>
Next overwrite the default ``RegistrationFormType`` with the one just created :
.. code-block:: yaml
# app/config/config.yml
fos_user:
registration:
form:
type: AppBundle\Form\RegistrationFormType
You are done, go to your registration form to see the result.

View File

@@ -0,0 +1,47 @@
FOSUserBundle Canonicalization
==============================
FOSUserBundle stores canonicalized versions of the username and the email
which are used when querying and checking for uniqueness.
The default implementation simply makes them case-insensitive to avoid having
users whose username only differs because of the case. It uses :phpfunction:`mb_convert_case`
to achieve this result.
.. caution::
If you do not have the mbstring extension installed you will need to
define your own canonicalizer.
Replacing the canonicalizers
----------------------------
If you want to change the way the canonical fields are populated, simply
create a class implementing ``FOS\UserBundle\Util\CanonicalizerInterface``
and register it as a service:
.. code-block:: yaml
# app/config/services.yml
services:
app.my_canonicalizer:
class: AppBundle\Util\CustomCanonicalizer
public: false
You can now configure FOSUserBundle to use your own implementation:
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
service:
email_canonicalizer: app.my_canonicalizer
username_canonicalizer: app.my_canonicalizer
You can of course use different services for each field if you don't want
to use the same logic.
.. note::
The default implementation has the id ``fos_user.util.canonicalizer.default``.

View File

@@ -0,0 +1,168 @@
FOSUserBundle Command Line Tools
================================
The FOSUserBundle provides a number of command line utilities to help manage your
application's users. Commands are available for the following tasks:
1. Create a User
2. Activate a User
3. Deactivate a User
4. Promote a User
5. Demote a User
6. Change a User's Password
.. note::
You must have correctly installed and configured the FOSUserBundle before
using these commands.
.. note::
This documentation references the console as ``bin/console``, which is
the Symfony 3 location. If you use Symfony 2.x, use ``app/console`` instead.
Create a User
-------------
You can use the ``fos:user:create`` command to create a new user for your application.
The command takes three arguments, the ``username``, ``email``, and ``password`` for
the user you are creating.
For example if you wanted to create a user with username ``testuser``, with email
``test@example.com`` and password ``p@ssword``, you would run the command as follows.
.. code-block:: bash
$ php bin/console fos:user:create testuser test@example.com p@ssword
If any of the required arguments are not passed to the command, an interactive prompt
will ask you to enter them. For example, if you ran the command as follows, then
you would be prompted to enter the ``email`` and ``password`` for the user
you want to create.
.. code-block:: bash
$ php bin/console fos:user:create testuser
There are two options that you can pass to the command as well. They are
``--super-admin`` and ``--inactive``.
Specifying the ``--super-admin`` option will flag the user as a super admin when
the user is created. A super admin has access to any part of your application.
An example is provided below:
.. code-block:: bash
$ php bin/console fos:user:create adminuser --super-admin
If you specify the ``--inactive`` option, then the user that you create will no be
able to log in until he is activated.
.. code-block:: bash
$ php bin/console fos:user:create testuser --inactive
Activate a User
---------------
The ``fos:user:activate`` command activates an inactive user. The only argument
that the command requires is the ``username`` of the user who should be activated.
If no ``username`` is specified then an interactive prompt will ask you
to enter one. An example of using this command is listed below.
.. code-block:: bash
$ php bin/console fos:user:activate testuser
Deactivate a User
-----------------
The ``fos:user:deactivate`` command deactivates a user. Just like the activate
command, the only required argument is the ``username`` of the user who should be
activated. If no ``username`` is specified then an interactive prompt will ask you
to enter one. Below is an example of using this command.
.. code-block:: bash
$ php bin/console fos:user:deactivate testuser
Promote a User
--------------
The ``fos:user:promote`` command enables you to add a role to a user or make the
user a super administrator.
If you would like to add a role to a user you simply pass the ``username`` of the
user as the first argument to the command and the ``role`` to add to the user as
the second.
.. code-block:: bash
$ php bin/console fos:user:promote testuser ROLE_ADMIN
You can promote a user to a super administrator by passing the ``--super`` option
after specifying the ``username``.
.. code-block:: bash
$ php bin/console fos:user:promote testuser --super
If any of the arguments to the command are not specified then an interactive
prompt will ask you to enter them.
.. note::
You may not specify the ``role`` argument and the ``--super`` option simultaneously.
.. caution::
Changes will not be applied until the user logs out and back in again.
Demote a User
-------------
The ``fos:user:demote`` command is similar to the promote command except that
instead of adding a role to the user it removes it. You can also revoke a user's
super administrator status with this command.
If you would like to remove a role from a user you simply pass the ``username`` of
the user as the first argument to the command and the ``role`` to remove as the
second.
.. code-block:: bash
$ php bin/console fos:user:demote testuser ROLE_ADMIN
To revoke the super administrator status of a user, simply pass the ``username`` as
an argument to the command as well as the ``--super`` option.
.. code-block:: bash
$ php bin/console fos:user:demote testuser --super
If any of the arguments to the command are not specified then an interactive
prompt will ask you to enter them.
.. note::
You may not specify the ``role`` argument and the ``--super`` option simultaneously.
.. caution::
Changes will not be applied until the user logs out and back in again. This has
implications for the way in which you configure sessions in your application since
you want to ensure that users are demoted as quickly as possible.
Change a User's Password
------------------------
The ``fos:user:change-password`` command provides an easy way to change a user's
password. The command takes two arguments, the ``username`` of the user whose
password you would like to change and the new ``password``.
.. code-block:: bash
$ php bin/console fos:user:change-password testuser newp@ssword
If you do not specify the ``password`` argument then an interactive prompt will
ask you to enter one.

View File

@@ -0,0 +1,65 @@
FOSUserBundle Configuration Reference
=====================================
All available configuration options are listed below with their default values.
.. code-block:: yaml
fos_user:
db_driver: ~ # Required
firewall_name: ~ # Required
user_class: ~ # Required
use_listener: true
use_flash_notifications: true
use_authentication_listener: true
use_username_form_type: true
model_manager_name: null # change it to the name of your entity/document manager if you don't want to use the default one.
from_email:
address: webmaster@example.com
sender_name: webmaster
profile:
form:
type: FOS\UserBundle\Form\Type\ProfileFormType
name: fos_user_profile_form
validation_groups: [Profile, Default]openssl_get_cipher_methods will be used. See http://php.net/manual/function.openssl-get-cipher-methods.php
change_password:
form:
type: FOS\UserBundle\Form\Type\ChangePasswordFormType
name: fos_user_change_password_form
validation_groups: [ChangePassword, Default]
registration:
confirmation:
from_email: # Use this node only if you don't want the global email address for the confirmation email
address: ...
sender_name: ...
enabled: false # change to true for required email confirmation
template: '@FOSUser/Registration/email.txt.twig'
form:
type: FOS\UserBundle\Form\Type\RegistrationFormType
name: fos_user_registration_form
validation_groups: [Registration, Default]
resetting:
retry_ttl: 7200 # Value in seconds, logic will use as hours
token_ttl: 86400
email:
from_email: # Use this node only if you don't want the global email address for the resetting email
address: ...
sender_name: ...
template: '@FOSUser/Resetting/email.txt.twig'
form:
type: FOS\UserBundle\Form\Type\ResettingFormType
name: fos_user_resetting_form
validation_groups: [ResetPassword, Default]
service:
mailer: fos_user.mailer.default
email_canonicalizer: fos_user.util.canonicalizer.default
username_canonicalizer: fos_user.util.canonicalizer.default
token_generator: fos_user.util.token_generator.default
user_manager: fos_user.user_manager.default
group:
group_class: ~ # Required when using groups
group_manager: fos_user.group_manager.default
form:
type: FOS\UserBundle\Form\Type\GroupFormType
name: fos_user_group_form
validation_groups: [Registration, Default]

View File

@@ -0,0 +1,104 @@
Hooking into the controllers
============================
The controllers packaged with the FOSUserBundle provide a lot of
functionality that is sufficient for general use cases. But, you might find
that you need to extend that functionality and add some logic that suits the
specific needs of your application.
For this purpose, the controllers are dispatching events in many places in
their logic. All events can be found in the constants of the
``FOS\UserBundle\FOSUserEvents`` class.
All controllers follow the same convention: they dispatch a ``SUCCESS`` event
when the form is valid before saving the user, and a ``COMPLETED`` event when
it is done. Thus, all ``SUCCESS`` events allow you to set a response if you
don't want the default redirection. And all ``COMPLETED`` events give you access
to the response before it is returned.
Controllers with a form also dispatch an ``INITIALIZE`` event after the entity is
fetched, but before the form is created.
For instance, this listener will change the redirection after the password
resetting to go to the homepage instead of the profile::
// src/Acme/UserBundle/EventListener/PasswordResettingListener.php
namespace Acme\UserBundle\EventListener;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FormEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
/**
* Listener responsible to change the redirection at the end of the password resetting
*/
class PasswordResettingListener implements EventSubscriberInterface
{
private $router;
public function __construct(UrlGeneratorInterface $router)
{
$this->router = $router;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents()
{
return array(
FOSUserEvents::RESETTING_RESET_SUCCESS => 'onPasswordResettingSuccess',
);
}
public function onPasswordResettingSuccess(FormEvent $event)
{
$url = $this->router->generate('homepage');
$event->setResponse(new RedirectResponse($url));
}
}
You can then register this listener:
.. configuration-block::
.. code-block:: yaml
# src/Acme/UserBundle/Resources/config/services.yml
services:
acme_user.password_resetting:
class: Acme\UserBundle\EventListener\PasswordResettingListener
arguments: ['@router']
tags:
- { name: kernel.event_subscriber }
.. code-block:: xml
<!-- src/Acme/UserBundle/Resources/config/services.xml -->
<service id="acme_user.password_resetting" class="Acme\UserBundle\EventListener\PasswordResettingListener">
<tag name="kernel.event_subscriber"/>
<argument type="service" id="router"/>
</service>
Registration success listener with enabled confirmation at the same time
------------------------------------------------------------------------
When you have registration confirmation and you want to hook up to
``FOSUserEvents::REGISTRATION_SUCCESS`` event you will have to prioritize this listener to be called
before ``FOS\UserBundle\EventListener\EmailConfirmationListener::onRegistrationSuccess``::
public static function getSubscribedEvents()
{
return [
FOSUserEvents::REGISTRATION_SUCCESS => [
['onRegistrationSuccess', -10],
],
];
}
If you don't do it, ``EmailConfirmationListener`` will be called earlier and you will be redirected to
``fos_user_registration_check_email`` route.

View File

@@ -0,0 +1,54 @@
Using a custom storage layer
============================
FOSUserBundle has been designed to allow you to easily change the storage
layer used by your application and keep all of the functionality
provided by the bundle.
Implementing a new storage layer requires providing two classes: the user
implementation and the corresponding user manager (you will of course need
two other classes if you want to use the groups).
The user implementation must implement ``FOS\UserBundle\Model\UserInterface``
and the user manager must implement ``FOS\UserBundle\Model\UserManagerInterface``.
The ``FOS\UserBundle\Model`` namespace provides base classes to make it easier to
implement these interfaces.
.. note::
You need to take care to always call ``updateCanonicalFields`` and ``updatePassword``
before saving a user. This is done when calling ``updateUser`` so you will
be safe if you always use the user manager to save the users.
If your storage layer gives you a hook in its saving process, you can use
it to make your implementation more flexible (this is done for Doctrine
using listeners for instance)
Configuring FOSUserBundle to use your implementation
----------------------------------------------------
To use your own implementation, create a service for your user manager. The
following example will assume that its id is ``app.custom_user_manager``.
.. code-block:: yaml
# app/config/config.yml
fos_user:
db_driver: custom # custom means that none of the built-in implementation is used
user_class: AppBundle\Model\CustomUser
service:
user_manager: app.custom_user_manager
firewall_name: main
.. note::
Your own service can be a private one. FOSUserBundle will create an alias
to make it available through ``fos_user.user_manager``.
.. caution::
The validation of the uniqueness of the username and email fields is done
using the constraints provided by DoctrineBundle. You will
need to take care of this validation when using a custom storage layer,
using a `custom constraint`_
.. _custom constraint: https://symfony.com/doc/current/cookbook/validation/custom_constraint.html

View File

@@ -0,0 +1,46 @@
More about Doctrine implementations
===================================
FOSUserBundle was first written for Doctrine-based storage layers. This chapter
describes some things specific to these implementations.
Using a different object manager than the default one
-----------------------------------------------------
Using the default configuration , FOSUserBundle will use the default doctrine
object manager. If you are using multiple ones and want to handle your users
with a non-default one, you can change the object manager used in the configuration
by giving its name to FOSUserBundle.
.. code-block:: yaml
# app/config/config.yml
fos_user:
db_driver: orm
model_manager_name: non_default # the name of your entity manager
.. note::
Using the default object manager is done by setting the configuration
option to ``null`` which is the default value.
Replacing the mapping of the bundle
-----------------------------------
None of the Doctrine projects currently allow overwriting part of the mapping
of a mapped superclass in the child entity.
If you need to change the mapping (for instance to adapt the field names
to a legacy database), one solution could be to write the whole mapping again
without inheriting the mapping from the mapped superclass. In such case,
your entity should extend directly from ``FOS\UserBundle\Model\User`` (and
``FOS\UserBundle\Model\Group`` for the group). Another solution can be through
`doctrine attribute and relations overrides`_.
.. caution::
It is highly recommended to map all fields used by the bundle (see the
mapping files of the bundle in ``Resources/config/doctrine/``). Omitting
them can lead to unexpected behaviors and should be done carefully.
.. _doctrine attribute and relations overrides: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html#overrides

View File

@@ -0,0 +1,226 @@
FOSUserBundle Emails
====================
The FOSUserBundle has built-in support for sending emails in two different
instances.
Registration Confirmation
-------------------------
The first is when a new user registers and the bundle is configured
to require email confirmation before the user registration is complete.
The email that is sent to the new user contains a link that, when visited,
will verify the registration and enable the user account.
Requiring email confirmation for a new account is turned off by default.
To enable it, update your configuration as follows:
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
registration:
confirmation:
enabled: true
Password Reset
--------------
An email is also sent when a user has requested a password reset. The
FOSUserBundle provides password reset functionality in a two-step process.
First the user must request a password reset. After the request has been
made, an email is sent containing a link to visit. Upon visiting the link,
the user will be identified by the token contained in the url. When the user
visits the link and the token is confirmed, the user will be presented with
a form to enter in a new password.
Default Mailer Implementations
------------------------------
The bundle comes with three mailer implementations. They are listed below
by service id:
- ``fos_user.mailer.default`` is the default implementation, and uses Swiftmailer to send emails.
- ``fos_user.mailer.twig_swift`` uses Swiftmailer to send emails and Twig blocks to render the message.
- ``fos_user.mailer.noop`` is a mailer implementation which performs no operation, so no emails are sent.
.. note::
The ``fos_user.mailer.noop`` mailer service should be used in the case
where you do not want the bundle to send emails and you do not want to
include the SwiftmailerBundle in your app. If you leave the default implementation
configured as the mailer and do not have the SwiftmailerBundle registered,
you will receive an exception because of a missing dependency.
Configuring the Sender Email Address
------------------------------------
The FOSUserBundle default mailer allows you to configure the sender email address
of the emails sent out by the bundle. You can configure the address globally or on
a per email basis.
To configure the sender email address for all emails sent out by the bundle, simply
update your ``fos_user`` config as follows:
.. code-block:: yaml
# app/config/config.yml
fos_user:
#...
from_email:
address: noreply@example.com
sender_name: Demo App
The bundle also provides the flexibility of allowing you to configure the sender
email address for the emails individually.
To configure the sender email address for the user registration confirmation
email update your ``fos_user`` config as follows:
.. code-block:: yaml
# app/config/config.yml
fos_user:
#...
registration:
confirmation:
from_email:
address: registration@example.com
sender_name: Demo Registration
You can similarly update the ``fos_user`` config to change the sender email address for
the password reset request email:
.. code-block:: yaml
# app/config/config.yml
fos_user:
#...
resetting:
email:
from_email:
address: resetting@example.com
sender_name: Demo Resetting
Sending HTML mails
------------------
The default mailer only supports sending plain text messages. If you want
to send multipart messages, the easiest solution is to use the TwigSwiftMailer
implementation instead. It expects your twig template to define 3 blocks:
- ``subject`` containing the email subject
- ``body_text`` rendering the plain text version of the message
- ``body_html`` rendering the html mail
Here is how you can use it, you can use either of the two methods
of referencing the email template below.
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
service:
mailer: fos_user.mailer.twig_swift
resetting:
email:
template: email/password_resetting.email.twig
registration:
confirmation:
template: '@FOSUser/Registration/email.txt.twig'
.. code-block:: html+jinja
{# app/Resources/views/email/password_resetting.email.twig #}
{% block subject %}Resetting your password{% endblock %}
{% block body_text %}
{% autoescape false %}
Hello {{ user.username }} !
You can reset your password by accessing {{ confirmationUrl }}
Greetings,
the App team
{% endautoescape %}
{% endblock %}
{% block body_html %}
{#
You can of course render the html directly here.
Including a template as done here allows keeping things DRY by using
the template inheritance in it
#}
{% include 'email/password_resetting.html.twig' %}
{% endblock %}
.. note::
The HTML part is set in the message only when the ``body_html`` block is
not empty.
You can view the default email templates at
`@FOSUser/Registration/email.txt.twig` and
`@FOSUser/Resetting/email.txt.twig`
Using A Custom Mailer
---------------------
The default mailer service used by FOSUserBundle relies on the Swiftmailer
library to send mail. If you would like to use a different library to send
emails, want to send HTML emails or simply change the content of the email you
may do so by defining your own service.
First you must create a new class which implements ``FOS\UserBundle\Mailer\MailerInterface``
which is listed below.
.. code-block:: php
<?php
namespace FOS\UserBundle\Mailer;
use FOS\UserBundle\Model\UserInterface;
/**
* @author Thibault Duplessis <thibault.duplessis@gmail.com>
*/
interface MailerInterface
{
/**
* Send an email to a user to confirm the account creation
*
* @param UserInterface $user
*/
function sendConfirmationEmailMessage(UserInterface $user);
/**
* Send an email to a user to confirm the password reset
*
* @param UserInterface $user
*/
function sendResettingEmailMessage(UserInterface $user);
}
After you have implemented your custom mailer class and defined it as a service,
you must update your bundle configuration so that FOSUserBundle will use it.
Simply set the ``mailer`` configuration parameter under the ``service`` section.
An example is listed below.
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
service:
mailer: app.custom_fos_user_mailer
To see an example of a working implementation of the ``MailerInterface``
see the `ZetaMailer`_ class of the `ZetaWebmailBundle`_. This implementation
uses the Zeta Components Mail to send emails instead of Swiftmailer.
.. _ZetaMailer: https://github.com/simplethings/ZetaWebmailBundle/blob/master/UserBundle/ZetaMailer.php
.. _ZetaWebmailBundle: https://github.com/simplethings/ZetaWebmailBundle

View File

@@ -0,0 +1,25 @@
The username Form Type
======================
FOSUserBundle provides a convenient username form type, named ``fos_user_username``.
It appears as a text input, accepts usernames and convert them to a User
instance::
class MessageFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('recipient', 'FOS\UserBundle\Form\Type\UsernameFormType');
}
}
.. note::
If you don't use this form type in your app, you can disable it to remove
the service from the container:
.. code-block:: yaml
# app/config/config.yml
fos_user:
use_username_form_type: false

View File

@@ -0,0 +1,305 @@
Using Groups With FOSUserBundle
===============================
FOSUserBundle allows you to associate groups to your users. Groups are a
way to group a collection of roles. The roles of a group will be granted
to all users belonging to it.
.. note::
Symfony supports role inheritance so inheriting roles from groups is
not always needed. If the role inheritance is enough for your use case,
it is better to use it instead of groups as it is more efficient (loading
the groups triggers the database).
To use the groups, you need to explicitly enable this functionality in your
configuration. The only mandatory configuration is the fully qualified class
name (FQCN) of your ``Group`` class which must implement ``FOS\UserBundle\Model\GroupInterface``.
Below is an example configuration for enabling groups support.
.. configuration-block::
.. code-block:: yaml
# app/config/config.yml
fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundle\Entity\User
group:
group_class: AppBundle\Entity\Group
.. code-block:: xml
<!-- app/config/config.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:fos-user="http://friendsofsymfony.github.io/schema/dic/user"
>
<fos_user:config
db-driver="orm"
firewall-name="main"
user-class="AppBundle\Entity\User"
>
<fos_user:group group-class="AppBundle\Entity\Group" />
</fos_user:config>
</container>
The Group class
---------------
The simplest way to create a Group class is to extend the mapped superclass
provided by the bundle.
a) ORM Group class implementation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. configuration-block::
.. code-block:: php-annotations
<?php
// src/AppBundle/Entity/Group.php
namespace AppBundle\Entity;
use FOS\UserBundle\Model\Group as BaseGroup;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_group")
*/
class Group extends BaseGroup
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
.. code-block:: yaml
# src/AppBundle/Resources/config/doctrine/Group.orm.yml
AppBundle\Entity\Group:
type: entity
table: fos_group
id:
id:
type: integer
generator:
strategy: AUTO
.. note::
``Group`` is a reserved keyword in SQL so it cannot be used as the table name.
b) MongoDB Group class implementation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: php
<?php
// src/AppBundle/Document/Group.php
namespace AppBundle\Document;
use FOS\UserBundle\Model\Group as BaseGroup;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class Group extends BaseGroup
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
}
c) CouchDB Group class implementation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: php
<?php
// src/AppBundle/CouchDocument/Group.php
namespace AppBundle\CouchDocument;
use FOS\UserBundle\Model\Group as BaseGroup;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
/**
* @CouchDB\Document
*/
class Group extends BaseGroup
{
/**
* @CouchDB\Id
*/
protected $id;
}
Defining the User-Group relation
--------------------------------
The next step is to map the relation in your ``User`` class.
a) ORM User-Group mapping
~~~~~~~~~~~~~~~~~~~~~~~~~
.. configuration-block::
.. code-block:: php-annotations
<?php
// src/AppBundle/Entity/User.php
namespace AppBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Group")
* @ORM\JoinTable(name="fos_user_user_group",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
}
.. code-block:: yaml
# src/AppBundle/Resources/config/doctrine/User.orm.yml
AppBundle\Entity\User:
type: entity
table: fos_user
id:
id:
type: integer
generator:
strategy: AUTO
manyToMany:
groups:
targetEntity: Group
joinTable:
name: fos_user_group
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
group_id:
referencedColumnName: id
.. code-block:: xml
<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="AppBundle\Entity\User" table="fos_user">
<id name="id" column="id" type="integer">
<generator strategy="AUTO" />
</id>
<many-to-many field="groups" target-entity="Group">
<join-table name="fos_user_group">
<join-columns>
<join-column name="user_id" referenced-column-name="id"/>
</join-columns>
<inverse-join-columns>
<join-column name="group_id" referenced-column-name="id" />
</inverse-join-columns>
</join-table>
</many-to-many>
</entity>
</doctrine-mapping>
b) MongoDB User-Group mapping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: php
<?php
// src/AppBundle/Document/User.php
namespace AppBundle\Document;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class User extends BaseUser
{
/** @MongoDB\Id(strategy="auto") */
protected $id;
/**
* @MongoDB\ReferenceMany(targetDocument="AppBundle\Document\Group")
*/
protected $groups;
}
c) CouchDB User-Group mapping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: php
<?php
// src/AppBundle/CouchDocument/User.php
namespace AppBundle\CouchDocument;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
/**
* @CouchDB\Document
*/
class User extends BaseUser
{
/**
* @CouchDB\Id
*/
protected $id;
/**
* @CouchDB\ReferenceMany(targetDocument="AppBundle\CouchDocument\Group")
*/
protected $groups;
}
Enabling the routing for the GroupController
--------------------------------------------
You can import the routing file ``group.xml`` to use the built-in controller to
manipulate groups.
.. code-block:: yaml
# app/config/routing.yml
fos_user_group:
resource: "@FOSUserBundle/Resources/config/routing/group.xml"
prefix: /group

View File

@@ -0,0 +1,462 @@
Getting Started With FOSUserBundle
==================================
The Symfony Security component provides a flexible security framework that
allows you to load users from configuration, a database, or anywhere else
you can imagine. The FOSUserBundle builds on top of this to make it quick
and easy to store users in a database, as well as functionality for registration,
reset password and a profile page.
So, if you need to persist and fetch the users in your system to and from
a database, then you're in the right place.
For a video tutorial, check out `FOSUserBundle FTW`_ by KnpUniversity.
Prerequisites
-------------
This version of the bundle requires Symfony 2.8+. If you are using an older
Symfony version, please use the 1.3.x releases of the bundle.
Translations
~~~~~~~~~~~~
If you wish to use default texts provided in this bundle, you have to make
sure you have translator enabled in your config.
.. code-block:: yaml
# app/config/config.yml
framework:
translator: ~
For more information about translations, check `Symfony documentation`_.
Installation
------------
Installation is a quick (I promise!) 7 step process:
1. Download FOSUserBundle using composer
2. Enable the Bundle
3. Create your User class
4. Configure your application's security.yml
5. Configure the FOSUserBundle
6. Import FOSUserBundle routing
7. Update your database schema
Step 1: Download FOSUserBundle using composer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Require the bundle with composer:
.. code-block:: bash
$ composer require friendsofsymfony/user-bundle "~2.0"
Composer will install the bundle to your project's ``vendor/friendsofsymfony/user-bundle`` directory.
If you encounter installation errors pointing at a lack of configuration parameters, such as ``The child node "db_driver" at path "fos_user" must be configured``, you should complete the configuration in Step 5 first and then re-run this step.
Step 2: Enable the bundle
~~~~~~~~~~~~~~~~~~~~~~~~~
Enable the bundle in the kernel::
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new FOS\UserBundle\FOSUserBundle(),
// ...
);
}
Step 3: Create your User class
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The goal of this bundle is to persist some ``User`` class to a database (MySql,
MongoDB, CouchDB, etc). Your first job, then, is to create the ``User`` class
for your application. This class can look and act however you want: add any
properties or methods you find useful. This is *your* ``User`` class.
The bundle provides base classes which are already mapped for most fields
to make it easier to create your entity. Here is how you use it:
1. Extend the base ``User`` class (from the ``Model`` folder if you are using
any of the doctrine variants)
2. Map the ``id`` field. It must be protected as it is inherited from the parent class.
.. caution::
When you extend from the mapped superclass provided by the bundle, don't
redefine the mapping for the other fields as it is provided by the bundle.
In the following sections, you'll see examples of how your ``User`` class should
look, depending on how you're storing your users (Doctrine ORM, MongoDB ODM,
or CouchDB ODM).
.. note::
The doc uses a bundle named ``AppBundle`` according to the Symfony best
practices. However, you can of course place your user class in the bundle
you want.
.. caution::
If you override the __construct() method in your User class, be sure
to call parent::__construct(), as the base User class depends on
this to initialize some fields.
a) Doctrine ORM User class
..........................
If you're persisting your users via the Doctrine ORM, then your ``User`` class
should live in the ``Entity`` namespace of your bundle and look like this to
start:
.. configuration-block::
.. code-block:: php-annotations
<?php
// src/AppBundle/Entity/User.php
namespace AppBundle\Entity;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
.. code-block:: yaml
# src/AppBundle/Resources/config/doctrine/User.orm.yml
AppBundle\Entity\User:
type: entity
table: fos_user
id:
id:
type: integer
generator:
strategy: AUTO
.. code-block:: xml
<?xml version="1.0" encoding="utf-8"?>
<!-- src/AppBundle/Resources/config/doctrine/User.orm.xml -->
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="AppBundle\Entity\User" table="fos_user">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>
</entity>
</doctrine-mapping>
.. caution::
``user`` is a reserved keyword in the SQL standard. If you need to use reserved words, surround them with backticks, *e.g.* ``@ORM\Table(name="`user`")``
b) MongoDB User class
.....................
If you're persisting your users via the Doctrine MongoDB ODM, then your ``User``
class should live in the ``Document`` namespace of your bundle and look like
this to start::
<?php
// src/AppBundle/Document/User.php
namespace AppBundle\Document;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class User extends BaseUser
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
c) CouchDB User class
.....................
If you're persisting your users via the Doctrine CouchDB ODM, then your ``User``
class should live in the ``CouchDocument`` namespace of your bundle and look
like this to start::
<?php
// src/AppBundle/CouchDocument/User.php
namespace AppBundle\CouchDocument;
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ODM\CouchDB\Mapping\Annotations as CouchDB;
/**
* @CouchDB\Document
*/
class User extends BaseUser
{
/**
* @CouchDB\Id
*/
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
Step 4: Configure your application's security.yml
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In order for Symfony's security component to use the FOSUserBundle, you must
tell it to do so in the ``security.yml`` file. The ``security.yml`` file is where the
basic security configuration for your application is contained.
Below is a minimal example of the configuration necessary to use the FOSUserBundle
in your application:
.. code-block:: yaml
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
Under the ``providers`` section, you are making the bundle's packaged user provider
service available via the alias ``fos_userbundle``. The id of the bundle's user
provider service is ``fos_user.user_provider.username``.
Next, take a look at and examine the ``firewalls`` section. Here we have
declared a firewall named ``main``. By specifying ``form_login``, you have
told the Symfony Framework that any time a request is made to this firewall
that leads to the user needing to authenticate himself, the user will be
redirected to a form where he will be able to enter his credentials. It should
come as no surprise then that you have specified the user provider service
we declared earlier as the provider for the firewall to use as part of the
authentication process.
.. note::
Although we have used the form login mechanism in this example, the FOSUserBundle
user provider service is compatible with many other authentication methods
as well. Please read the Symfony Security component documentation for
more information on the other types of authentication methods.
The ``access_control`` section is where you specify the credentials necessary for
users trying to access specific parts of your application. The bundle requires
that the login form and all the routes used to create a user and reset the password
be available to unauthenticated users but use the same firewall as
the pages you want to secure with the bundle. This is why you have specified that
any request matching the ``/login`` pattern or starting with ``/register`` or
``/resetting`` have been made available to anonymous users. You have also specified
that any request beginning with ``/admin`` will require a user to have the
``ROLE_ADMIN`` role.
For more information on configuring the ``security.yml`` file please read the Symfony
`security component documentation`_.
.. note::
Pay close attention to the name, ``main``, that we have given to the
firewall which the FOSUserBundle is configured in. You will use this
in the next step when you configure the FOSUserBundle.
Step 5: Configure the FOSUserBundle
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that you have properly configured your application's ``security.yml`` to work
with the FOSUserBundle, the next step is to configure the bundle to work with
the specific needs of your application.
Add the following configuration to your ``config.yml`` file according to which type
of datastore you are using.
.. configuration-block::
.. code-block:: yaml
# app/config/config.yml
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: AppBundle\Entity\User
from_email:
address: "%mailer_user%"
sender_name: "%mailer_user%"
.. code-block:: xml
<!-- app/config/config.xml -->
<!-- other valid 'db-driver' values are 'mongodb' and 'couchdb' -->
<fos_user:config
db-driver="orm"
firewall-name="main"
user-class="AppBundle\Entity\User"
/>
Only four configuration's node are required to use the bundle:
* The type of datastore you are using (``orm``, ``mongodb`` or ``couchdb``).
* The firewall name which you configured in Step 4.
* The fully qualified class name (FQCN) of the ``User`` class which you created in Step 3.
* The default email address to use when the bundle send a registration confirmation to the user.
.. note::
FOSUserBundle uses a compiler pass to register mappings for the base
User and Group model classes with the object manager that you configured
it to use. (Unless specified explicitly, this is the default manager
of your doctrine configuration.)
Step 6: Import FOSUserBundle routing files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that you have activated and configured the bundle, all that is left to do is
import the FOSUserBundle routing files.
By importing the routing files you will have ready made pages for things such as
logging in, creating users, etc.
.. configuration-block::
.. code-block:: yaml
# app/config/routing.yml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
.. code-block:: xml
<!-- app/config/routing.xml -->
<import resource="@FOSUserBundle/Resources/config/routing/all.xml"/>
.. note::
In order to use the built-in email functionality (confirmation of the account,
resetting of the password), you must activate and configure the SwiftmailerBundle.
Step 7: Update your database schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that the bundle is configured, the last thing you need to do is update your
database schema because you have added a new entity, the ``User`` class which you
created in Step 4.
For ORM run the following command.
.. code-block:: bash
$ php bin/console doctrine:schema:update --force
For MongoDB users you can run the following command to create the indexes.
.. code-block:: bash
$ php bin/console doctrine:mongodb:schema:create --index
.. note::
If you use the Symfony 2.x structure in your project, use ``app/console``
instead of ``bin/console`` in the commands.
You now can log in at ``http://app.com/app_dev.php/login``!
Next Steps
~~~~~~~~~~
Now that you have completed the basic installation and configuration of the
FOSUserBundle, you are ready to learn about more advanced features and usages
of the bundle.
The following documents are available:
.. toctree::
:maxdepth: 1
overriding_templates
controller_events
overriding_forms
user_manager
command_line_tools
logging_by_username_or_email
form_type
emails
groups
doctrine
overriding_validation
canonicalizer
custom_storage_layer
routing
configuration_reference
adding_invitation_registration
.. _security component documentation: https://symfony.com/doc/current/book/security.html
.. _Symfony documentation: https://symfony.com/doc/current/book/translation.html
.. _TypehintableBehavior: https://github.com/willdurand/TypehintableBehavior
.. _FOSUserBundle FTW: https://knpuniversity.com/screencast/fosuserbundle

View File

@@ -0,0 +1,15 @@
Logging by Username or Email
============================
As of the version 1.3.0, the bundle provides a built-in user provider implementation
using both the username and email fields. To use it, simply change the id
of your user provider to use this implementation instead of the base one
using only the username:
.. code-block:: yaml
# app/config/security.yml
security:
providers:
fos_userbundle:
id: fos_user.user_provider.username_email

View File

@@ -0,0 +1,167 @@
Overriding Default FOSUserBundle Forms
======================================
Overriding a Form Type
----------------------
The default forms packaged with the FOSUserBundle provide functionality for
registering new user, updating your profile, changing your password and
much more. These forms work well with the bundle's default classes and controllers.
But, as you start to add more properties to your ``User``
class or you decide you want to add a few options to the registration form you
will find that you need to override the forms in the bundle.
Suppose that you have created an ORM user class with the following class name,
``AppBundle\Entity\User``. In this class, you have added a ``name`` property
because you would like to save the user's name as well as their username and
email address. Now, when a user registers for your site they should enter in their
name as well as their username, email and password. Below is an example ``$name``
property and its validators.
.. code-block:: php
// src/AppBundle/Entity/User.php
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=255)
*
* @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
* @Assert\Length(
* min=3,
* max=255,
* minMessage="The name is too short.",
* maxMessage="The name is too long.",
* groups={"Registration", "Profile"}
* )
*/
protected $name;
// ...
}
.. note::
By default, the Registration validation group is used when validating a new
user registration. Unless you have overridden this value in the configuration,
make sure you add the validation group named Registration to your name property.
If you try and register using the default registration form you will find that
your new ``name`` property is not part of the form. You need to create a custom
form type and configure the bundle to use it.
The first step is to create a new form type in your own bundle. The following
class inherits from the base FOSUserBundle ``fos_user_registration`` type using
the form type hierarchy and then adds the custom ``name`` field.
.. code-block:: php
<?php
// src/AppBundle/Form/RegistrationType.php
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// For Symfony 2.x
public function getName()
{
return $this->getBlockPrefix();
}
}
.. note::
If you don't want to reuse the fields added in FOSUserBundle by default,
you can omit the ``getParent`` method and configure all fields yourself.
Now that you have created your custom form type, you must declare it as a service
and add a tag to it. The tag must have a ``name`` value of ``form.type`` and an ``alias``
value that is the equal to the string returned from the ``getName`` method of your
form type class. The ``alias`` that you specify is what you will use in the FOSUserBundle
configuration to let the bundle know that you want to use your custom form.
Below is an example of configuring your form type as a service:
.. configuration-block::
.. code-block:: yaml
# app/config/services.yml
services:
app.form.registration:
class: AppBundle\Form\RegistrationType
tags:
- { name: form.type, alias: app_user_registration }
.. code-block:: xml
<!-- app/config/services.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="app.form.registration" class="AppBundle\Form\RegistrationType">
<tag name="form.type" alias="app_user_registration" />
</service>
</services>
</container>
Finally, you must update the configuration of the FOSUserBundle so that it will
use your form type instead of the default one. Below is the configuration for
changing the registration form type in YAML.
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
registration:
form:
type: AppBundle\Form\RegistrationType
Note how the ``alias`` value used in your form type's service configuration tag
is used in the bundle configuration to tell the FOSUserBundle to use your custom
form type.
.. note::
If you need to add some logic to the processing of the form, you can
use a listener :doc:`hooking into the controller </controller_events>`.

View File

@@ -0,0 +1,96 @@
Overriding Default FOSUserBundle Templates
==========================================
As you start to incorporate FOSUserBundle into your application, you will probably
find that you need to override the default templates that are provided by
the bundle. Although the template names are not configurable, Symfony
provides a built-in way to `override the templates themselves`_.
Example: Overriding The Default layout.html.twig
------------------------------------------------
It is highly recommended that you override the ``Resources/views/layout.html.twig``
template so that the pages provided by the FOSUserBundle have a similar look and
feel to the rest of your application. An example of overriding this layout template
is demonstrated below using both of the overriding options listed above.
Here is the default ``layout.html.twig`` provided by the FOSUserBundle:
.. code-block:: html+jinja
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<div>
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }} |
<a href="{{ path('fos_user_security_logout') }}">
{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
</a>
{% else %}
<a href="{{ path('fos_user_security_login') }}">{{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a>
{% endif %}
</div>
{% if app.request.hasPreviousSession %}
{% for type, messages in app.session.flashBag.all %}
{% for message in messages %}
<div class="{{ type }}">
{{ message|trans({}, 'FOSUserBundle') }}
</div>
{% endfor %}
{% endfor %}
{% endif %}
<div>
{% block fos_user_content %}
{% endblock fos_user_content %}
</div>
</body>
</html>
As you can see its pretty basic and doesn't really have much structure, so you will
want to replace it with a layout file that is appropriate for your application. The
main thing to note in this template is the block named ``fos_user_content``. This is
the block where the content from each of the different bundle's actions will be
displayed, so you must make sure to include this block in the layout file you will
use to override the default one.
The following Twig template file is an example of a layout file that might be used
to override the one provided by the bundle.
.. code-block:: html+jinja
{% block title %}Demo Application{% endblock %}
{% block content %}
{% block fos_user_content %}{% endblock %}
{% endblock %}
This example extends the layout template from the layout of your app. The
``content`` block is where the main content of each page is rendered. This
is why the ``fos_user_content`` block has been placed inside of it. This
will lead to the desired effect of having the output from the FOSUserBundle
actions integrated into our applications layout, preserving the look and
feel of the application.
The easiest way to override a bundle's template is to simply place a new one in
your ``app/Resources`` folder. To override the layout template located at
``Resources/views/layout.html.twig`` in the ``FOSUserBundle`` directory, you would place
your new layout template at ``app/Resources/FOSUserBundle/views/layout.html.twig``.
As you can see the pattern for overriding templates in this way is to
create a folder with the name of the bundle class in the ``app/Resources`` directory.
Then add your new template to this folder, preserving the directory structure from the
original bundle.
After overriding a template, you must clear the cache for the override to
take effect, even in a development environment.
Overriding all of the other templates provided by the FOSUserBundle can be done
in a similar fashion using either of the two methods shown in this document.
.. _`override the templates themselves`: https://symfony.com/doc/current/templating/overriding.html

View File

@@ -0,0 +1,6 @@
Overriding Default FOSUserBundle Validation
===========================================
The ``Resources/config/validation.xml`` file contains definitions for custom
validator rules for various classes. The rules defined by FOSUserBundle are
all in validation groups so you can choose not to use them.

View File

@@ -0,0 +1,40 @@
Advanced routing configuration
==============================
By default, the routing file ``@FOSUserBundle/Resources/config/routing/all.xml`` imports
all the routing files (except groups) and enables all the routes.
In the case you want to enable or disable the different available routes, just use the
single routing configuration files.
.. configuration-block::
.. code-block:: yaml
# app/config/routing.yml
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
.. code-block:: xml
<!-- app/config/routing.xml -->
<import resource="@FOSUserBundle/Resources/config/routing/security.xml"/>
<import resource="@FOSUserBundle/Resources/config/routing/profile.xml" prefix="/profile" />
<import resource="@FOSUserBundle/Resources/config/routing/registration.xml" prefix="/register" />
<import resource="@FOSUserBundle/Resources/config/routing/resetting.xml" prefix="/resetting" />
<import resource="@FOSUserBundle/Resources/config/routing/change_password.xml" prefix="/profile" />

View File

@@ -0,0 +1,153 @@
About FOSUserBundle User Manager
================================
In order to be storage agnostic, all operations on the user instances are
handled by a user manager implementing ``FOS\UserBundle\Model\UserManagerInterface``.
Using it ensures that your code will continue to work if you change the storage.
The controllers provided by the bundle use the configured user manager instead
of interacting directly with the storage layer.
If you configure the ``db_driver`` option to ``orm``, this service is an instance
of ``FOS\UserBundle\Doctrine\UserManager``.
If you configure the ``db_driver`` option to ``mongodb``, this service is an
instance of ``FOS\UserBundle\Doctrine\UserManager``.
If you configure the ``db_driver`` option to ``couchdb``, this service is an
instance of ``FOS\UserBundle\Doctrine\UserManager``.
Accessing the User Manager service
----------------------------------
The user manager is available in the container as the ``fos_user.user_manager``
service.
.. code-block:: php
$userManager = $container->get('fos_user.user_manager');
Creating a new User
-------------------
A new instance of your User class can be created by the user manager.
.. code-block:: php
$user = $userManager->createUser();
``$user`` is now an instance of your user class.
.. note::
This method will not work if your user class has some mandatory constructor
arguments.
Retrieving the users
--------------------
The user manager has a few methods to find users based on the unique fields
(username, email and confirmation token) and a method to retrieve all existing
users.
- ``findUserByUsername($username)``
- ``findUserByEmail($email)``
- ``findUserByUsernameOrEmail($value)`` (check if the value looks like an email to choose)
- ``findUserByConfirmationToken($token)``
- ``findUserBy(array('id'=>$id))``
- ``findUsers()``
To save a user object, you can use the ``updateUser`` method of the user manager.
This method will update the encoded password and the canonical fields and
then persist the changes.
Updating a User object
----------------------
.. code-block:: php
$user = $userManager->createUser();
$user->setUsername('John');
$user->setEmail('john.doe@example.com');
$userManager->updateUser($user);
.. note::
To make it easier, the bundle comes with a Doctrine listener handling
the update of the password and the canonical fields for you behind the
scenes. If you always save the user through the user manager, you may
want to disable it to improve performance.
.. configuration-block::
.. code-block:: yaml
# app/config/config.yml
fos_user:
# ...
use_listener: false
.. code-block:: xml
<!-- app/config/config.xml -->
<fos_user:config
db-driver="orm"
firewall-name="main"
use-listener="false"
user-class="MyProject\MyBundle\Entity\User"
/>
.. note::
For the Doctrine implementations, the default behavior is to flush the
unit of work when calling the ``updateUser`` method. You can disable the
flush by passing a second argument set to ``false``.
This will then be equivalent to calling ``updateCanonicalFields`` and
``updatePassword``.
An ORM example::
class MainController extends Controller
{
public function updateAction($id)
{
$user = // get a user from the datastore
$user->setEmail($newEmail);
$this->get('fos_user.user_manager')->updateUser($user, false);
// make more modifications to the database
$this->getDoctrine()->getManager()->flush();
}
}
Overriding the User Manager
---------------------------
You can replace the default implementation of the user manager by defining
a service implementing ``FOS\UserBundle\Model\UserManagerInterface`` and
setting its id in the configuration.
The id of the default implementation is ``fos_user.user_manager.default``
.. code-block:: yaml
fos_user:
# ...
service:
user_manager: custom_user_manager_id
Your custom implementation can extend ``FOS\UserBundle\Model\UserManager``
to reuse the common logic.
SecurityBundle integration
--------------------------
The bundle provides several implementation of ``Symfony\Component\Security\Core\UserProviderInterface``
on top of the ``UserManagerInterface``.
Although the built-in user managers also implement
``Symfony\Component\Security\Core\User\UserProviderInterface``, using the
UserManager as user provider is deprecated and will tbe removed in future
versions. Use ``FOS\UserBundle\Security\UserProvider`` instead.

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'Opdateer Groep'
show:
name: 'Groep Naam'
new:
submit: 'Nuwe groep'
flash:
updated: 'Die groep was opgedateer'
created: 'Die groep was gemaak'
deleted: 'Die groep was verwyder'
security:
login:
username: 'Gebruiker Naam'
password: Wagwoord
remember_me: 'Onthou my'
submit: 'Teken in'
profile:
show:
username: 'Gebruiker Naam'
email: E-pos
edit:
submit: Opdateer
flash:
updated: 'Die profiel was opgedateer'
change_password:
submit: 'Verander wagwoord'
flash:
success: 'Die wagwoord was verander'
registration:
check_email: "'n E-pos was gestuur na %email%. Dit behels aktiveerings skakel, waarop jy moet klik om jou rekening te aktiveer"
confirmed: 'Geluk %username%, jou rekening is nou geaktiveer'
back: 'Terug na die oorsprongblad'
submit: Registreer
flash:
user_created: 'Die verbruiker was suksesvol gemaak'
email:
subject: 'Welkom %username%!'
message: |
Hello %username%!
Om die registrasie proses te finaliseer, besoek asseblief %confirmationUrl%
Hierdie skakel kan slegs een keer gebruik word.
Groete,
die Span.
resetting:
check_email: |
'n E-pos was gestuur na %email%. Dit bevat 'n skakel waarop jy moet klik om jou wagwoord te herstel.
Nota: Jy kan eers weer 'n nuwe skakel versoek na %tokenLifetime% ure.
As jy nie 'n e-pos kry nie, kyk in jou "spam" leer en probeer weer.
request:
username: 'Verbruikernaam of e-pos adres'
submit: 'Herstel wagwoord'
reset:
submit: 'Verander wagwoord'
flash:
success: 'Die wagwoord was suksesvol herstel'
email:
subjet: 'Herstel Wagwoord'
message: |
Hello %username%!
Om jou wagwoord te herstel, besoek asseblief %confirmationUrl%
Groete,
die Span.
# Global strings
layout:
logout: 'Sluit af'
login: 'Teken in'
register: Registreer
logged_in_as: 'Ingeteken as %username%'
form:
group_name: 'Groep naam'
username: 'Verbruiker Naam'
email: E-pos
current_password: 'Huidige wagwoord'
password: Wagwoord
password_confirmation: 'Herhaal wagwoord'
new_password: 'Nuwe wagwoord'
new_password_confirmation: 'Herhaal nuwe wagwoord'

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'تحديث المجموعة'
show:
name: 'إسم المجموعة'
new:
submit: 'إنشاء مجموعة'
flash:
updated: 'تم تحديث المجموعة'
created: 'تم إنشاء المجموعة'
deleted: 'تم حـذف المجموعة'
security:
login:
username: 'إسم المستخدم'
password: 'كلمة المرور'
remember_me: 'حفظ البيانات'
submit: 'تسجيل دخول'
profile:
show:
username: 'إسم المستخدم'
email: 'بريد إلكتروني'
edit:
submit: تحديث
flash:
updated: 'تم تحديث الملف الشخصي'
change_password:
submit: 'تغيير كلمة المرور'
flash:
success: 'تم تغيير كلمة المرور'
registration:
check_email: 'لقد تم إرسال رسالة إلكترونية إلى %email% تحتوي على رابط يجب إتباعه لتفعيل حسابك الشخصي.'
confirmed: 'تهانينا %username%، لقد تم تفعيل حسابك.'
back: 'عودة إلى الصفحة الرئيسية'
submit: تسجيل
flash:
user_created: 'تم إنشاء حسابك بنجاح'
email:
subject: '%username%! مرحبا'
message: |
مرحبا %username%!
لتفعيل حسابك يرجى إتباع الرابط التالي %confirmationUrl%
الرابط يمكن إستخدامه مرة واحدة فقط لتفعيل حسابك
شكرا،
فريق العمل.
resetting:
check_email: |
لقد تم إرسال رسالة إلكترونية تحتوي على رابط يجب الضغط عليه لإعادة ضبط كلمة المرور الخاصة بك.
ملحوظة: يمكنك إعادة ضبط كلمة المرور الخاصة بك خلال %tokenLifetime% ساعة
يرجى التحقق من ملف السبام إذا لم تستقبل الرسالة الإلكترونية قريبا أو أعد المحاولة
request:
username: 'إسم المستخدم او البريد الالكتروني'
submit: 'إعادة ضبط كلمة المرور'
reset:
submit: 'تغيير كلمة المرور'
flash:
success: 'تم إعادة ضبط كلمة المرور بنجاح'
email:
subject: 'إعادة ضبط كلمة المرور'
message: |
مرحبا %username%!
لإعادة ضبط كلمة المرور يرجى إتباع الرابط التالي %confirmationUrl%
شكرا،
فريق العمل.
layout:
logout: خروج
login: دخول
register: تسجيل
logged_in_as: 'تم الدخول بإسم %username%'
form:
group_name: 'إسم المجموعة'
username: 'إسم المستخدم'
email: 'البريد الإلكتروني'
current_password: 'كلمة المرور الحالية'
password: 'كلمة المرور'
password_confirmation: تأكيد
new_password: 'كلمة المرور الجديدة'
new_password_confirmation: 'تأكيد كلمة المرور'

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'Обнови група'
show:
name: 'Име на групата'
new:
submit: 'Нова група'
flash:
updated: 'Групата беше обновена успешно.'
created: 'Групата беше създадена успешно.'
deleted: 'Групата беше изтрита успешно.'
security:
login:
username: 'Потребителско име'
password: 'Парола'
remember_me: 'Запомни ме'
submit: 'Вход'
profile:
show:
username: 'Потребителско име'
email: Имейл
edit:
submit: 'Промени'
flash:
updated: 'Профилът беше успешно променен.'
change_password:
submit: 'Промени паролата'
flash:
success: 'Паролата беше успешно променена.'
registration:
check_email: |
Изпратихме писмо до %email%. То съдържа линк за активиране, който трябва да отворите, за да се активира профилът Ви.
confirmed: 'Честито, %username%, акаунтът е успешно активиран.'
back: 'Обратно към предишната страница.'
submit: 'Регистрация'
flash:
user_created: 'Потребителят беше успешно създаден.'
email:
subject: 'Добре дошли, %username%!'
message: |
Здравейте, %username%!
За да активирате своя профил, моля отворете %confirmationUrl%
Това е еднократен линк за валидиране на акаунта Ви.
Поздрави,
от екипа.
resetting:
check_email: |
Изпратихме писмо с линк за активация на посочения имейл адрес: %email%.
Забележка: Заявка за нова парола може да направите в рамките на %tokenLifetime% час(а).
Ако не откривате писмото проверете в папка СПАМ или опитайте отново.
request:
username: 'Потребителско име или имейл'
submit: 'Промени паролата'
reset:
submit: 'Промени паролата'
flash:
success: 'Паролата беше успешно променена.'
email:
subject: 'Забравена парола'
message: |
Здравейте, %username%!
За да промените своята парола, моля отворете %confirmationUrl%
Поздрави,
от екипа.
# Global strings
layout:
logout: 'Изход'
login: 'Вход'
register: 'Регистрация'
logged_in_as: 'Влязъл като %username%'
form:
group_name: 'Име на група'
username: 'Потребителско име'
email: 'Имейл'
current_password: 'Текуща парола'
password: 'Парола'
password_confirmation: 'Парола (отново)'
new_password: 'Нова парола'
new_password_confirmation: 'Нова парола (отново)'

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'আপডেট গ্রুপ'
show:
name: 'গ্রুপের নাম'
new:
submit: 'গ্রুপ তৈরি'
flash:
updated: 'গ্রুপের তথ্য হালনাগাদ হয়েছে'
created: 'গ্রুপের তথ্য তৈরি করা হয়েছে'
deleted: 'গ্রুপের তথ্য মুছে ফেলা হয়েছে'
security:
login:
username: 'ব্যবহারকারীর নাম'
password: 'পাসওয়ার্ড'
remember_me: 'আমাকে মনে রেখো'
submit: 'লগ ইন'
profile:
show:
username: 'ব্যবহারকারীর নাম'
email: 'ই-মেইল'
edit:
submit: 'আপডেট'
flash:
updated: 'প্রোফাইল আপডেট করা হয়েছে।'
change_password:
submit: 'পাসওয়ার্ড পরিবর্তন'
flash:
success: 'পাসওয়ার্ড পরিবর্তন সফল হয়েছো'
registration:
check_email: |
%email% এড্রেসে একটি ই-মেইল পাঠানো হয়েছে. অ্যাকাউন্ট সক্রিয় করার জন্য ই-মেইলে পাঠানো লিংকটি ক্লিক করুন
confirmed: '%username% অভিনন্দন, আপনার অ্যাকাউন্ট এখন সক্রিয়।'
back: 'আগের পাতা'
submit: 'নিবন্ধন'
flash:
user_created: 'ব্যবহারকারী সফলভাবে তৈরি করা হয়েছে'
email:
subject: 'স্বাগতম %username%!'
message: |
হ্যালো %username%!
আপনার অ্যাকাউন্ট সক্রিয় করার জন্য - দয়া করে %confirmationUrl% লিংকটি ভিসিট করুর
এই লিঙ্কটি শুধুমাত্র একবার আপনার অ্যাকাউন্ট যাচাই করতে ব্যবহার করা যেতে পারে।
শুভেচ্চান্তে,
এডমিন।
resetting:
check_email: |
একটি ই-মেইল পাঠানো হয়েছে। পাসওয়ার্ড রিসেট করার জন্য ই-মেইলে পাঠানো লিংকটি ক্লিক করুন।
বিঃদ্রঃ %tokenLifetime% ঘন্টার মধ্যে শুধুমাত্র একবার রিসেট পাসওয়ার্ড করতে পারবেন।
যদি ই-মেইল টি না পেয়ে থাকেন, তাহলে আপসার স্পাম ফোল্ডারে দেখুন অথবা আবার চেষ্টা করুন।
request:
username: 'ব্যবহারকারীর নাম অথবা ই-মেইল'
submit: 'রিসেট পাসওয়ার্ড'
reset:
submit: 'পাসওয়ার্ড পরিবর্তন'
flash:
success: 'পাসওয়ার্ডটি সফলভাবো রিসেট করা হয়েছে'
email:
subject: 'রিসেট পাসওয়ার্ড'
message: |
হ্যালো %username%!
আপনার পাসওয়ার্ড রিসেট করতে - দয়া করে %confirmationUrl% লিংকটি ভিসিট করুর
শুভেচ্চান্তে,
এডমিন।
# Global strings
layout:
logout: 'লগ আউট'
login: 'লগ ইন'
register: 'নিবন্ধন'
logged_in_as: '%username% হিসাবে লগ ইন করেছেন'
form:
group_name: 'গ্রুপের নাম'
username: 'ব্যবহারকারীর নাম'
email: 'ই-মেইল'
current_password: 'বর্তমান পাসওয়ার্ড'
password: 'পাসওয়ার্ড'
password_confirmation: 'পাসওয়ার্ড আবার লিখুন'
new_password: 'নতুন পাসওয়ার্ড'
new_password_confirmation: 'নতুন পাসওয়ার্ড আবার লিখুন'

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'আপডেট গ্রুপ'
show:
name: 'গ্রুপের নাম'
new:
submit: 'গ্রুপ তৈরি'
flash:
updated: 'গ্রুপের তথ্য হালনাগাদ হয়েছে'
created: 'গ্রুপের তথ্য তৈরি করা হয়েছে'
deleted: 'গ্রুপের তথ্য মুছে ফেলা হয়েছে'
security:
login:
username: 'ব্যবহারকারীর নাম'
password: 'পাসওয়ার্ড'
remember_me: 'আমাকে মনে রেখো'
submit: 'লগ ইন'
profile:
show:
username: 'ব্যবহারকারীর নাম'
email: 'ই-মেইল'
edit:
submit: 'আপডেট'
flash:
updated: 'প্রোফাইল আপডেট করা হয়েছে।'
change_password:
submit: 'পাসওয়ার্ড পরিবর্তন'
flash:
success: 'পাসওয়ার্ড পরিবর্তন সফল হয়েছো'
registration:
check_email: |
%email% এড্রেসে একটি ই-মেইল পাঠানো হয়েছে. অ্যাকাউন্ট সক্রিয় করার জন্য ই-মেইলে পাঠানো লিংকটি ক্লিক করুন
confirmed: '%username% অভিনন্দন, আপনার অ্যাকাউন্ট এখন সক্রিয়।'
back: 'আগের পাতা'
submit: 'নিবন্ধন'
flash:
user_created: 'ব্যবহারকারী সফলভাবে তৈরি করা হয়েছে'
email:
subject: 'স্বাগতম %username%!'
message: |
হ্যালো %username%!
আপনার অ্যাকাউন্ট সক্রিয় করার জন্য - দয়া করে %confirmationUrl% লিংকটি ভিসিট করুর
এই লিঙ্কটি শুধুমাত্র একবার আপনার অ্যাকাউন্ট যাচাই করতে ব্যবহার করা যেতে পারে।
শুভেচ্চান্তে,
এডমিন।
resetting:
check_email: |
একটি ই-মেইল পাঠানো হয়েছে। পাসওয়ার্ড রিসেট করার জন্য ই-মেইলে পাঠানো লিংকটি ক্লিক করুন।
বিঃদ্রঃ %tokenLifetime% ঘন্টার মধ্যে শুধুমাত্র একবার রিসেট পাসওয়ার্ড করতে পারবেন।
যদি ই-মেইল টি না পেয়ে থাকেন, তাহলে আপসার স্পাম ফোল্ডারে দেখুন অথবা আবার চেষ্টা করুন।
request:
username: 'ব্যবহারকারীর নাম অথবা ই-মেইল'
submit: 'রিসেট পাসওয়ার্ড'
reset:
submit: 'পাসওয়ার্ড পরিবর্তন'
flash:
success: 'পাসওয়ার্ডটি সফলভাবো রিসেট করা হয়েছে'
email:
subject: 'রিসেট পাসওয়ার্ড'
message: |
হ্যালো %username%!
আপনার পাসওয়ার্ড রিসেট করতে - দয়া করে %confirmationUrl% লিংকটি ভিসিট করুর
শুভেচ্চান্তে,
এডমিন।
# Global strings
layout:
logout: 'লগ আউট'
login: 'লগ ইন'
register: 'নিবন্ধন'
logged_in_as: '%username% হিসাবে লগ ইন করেছেন'
form:
group_name: 'গ্রুপের নাম'
username: 'ব্যবহারকারীর নাম'
email: 'ই-মেইল'
current_password: 'বর্তমান পাসওয়ার্ড'
password: 'পাসওয়ার্ড'
password_confirmation: 'পাসওয়ার্ড আবার লিখুন'
new_password: 'নতুন পাসওয়ার্ড'
new_password_confirmation: 'নতুন পাসওয়ার্ড আবার লিখুন'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Actualitza el grup'
show:
name: 'Nom del grup'
new:
submit: 'Crea el grup'
flash:
updated: 'S''ha actualitzat el grup.'
created: 'S''ha creat el grup.'
deleted: 'S''ha eliminat el grup.'
security:
login:
username: 'Nom d''usuari'
password: Contrasenya
remember_me: 'Recorda''m'
submit: Entra
profile:
show:
username: 'Nom d''usuari'
email: 'Correu electrònic'
edit:
submit: Actualitza
flash:
updated: 'S''ha actualitzat el perfil.'
change_password:
submit: 'Canvia la contrasenya'
flash:
success: 'S''ha canviat la contrasenya.'
registration:
check_email: 'S''ha enviat un correu electrònic a %email%. Conté un enllaç d''activació que heu de clicar per activar el compte.'
confirmed: 'Enhorabona %username%, el vostre compte s''ha activat.'
back: 'Torna a la pàgina original.'
submit: Registra
flash:
user_created: 'S''ha creat l''usuari correctament.'
email:
subject: 'Benvingut %username%!'
message: |
Hola %username%!
Per finalitzar l'activació del seu compte - si us plau visiteu %confirmationUrl%
Atentament,
L'equip.
resetting:
# check_email: 'S''ha enviat un correu electrònic a %email%. Conté un enllaç que heu de clicar per restablir la contrasenya.'
request:
username: 'Nom d''usuari o correu electrònic'
submit: 'Restableix la contrasenya'
reset:
submit: 'Canvia la contrasenya'
flash:
success: 'S''ha restablert la contrasenya correctament.'
email:
subject: 'Restablir la contrasenya'
message: |
Hola %username%!
Per restablir la contrasenya - si us plau visiteu %confirmationUrl%
Atentament,
L'equip.
layout:
logout: 'Tanca la sessió'
login: Entra
register: Registrar-se
logged_in_as: 'Heu iniciat sessió com a %username%'
form:
group_name: 'Nom del grup'
username: 'Nom d''usuari'
email: 'Correu electrònic'
current_password: 'Contrasenya actual'
password: Contrasenya
password_confirmation: Verificació
new_password: 'Nova contrasenya'
new_password_confirmation: Verificació

View File

@@ -0,0 +1,84 @@
group:
edit:
submit: 'Upravit skupinu'
show:
name: 'Název skupiny'
new:
submit: 'Vytvořit skupinu'
flash:
updated: 'Skupina byla úspěšně aktualizována.'
created: 'Skupina byla úspěšně vytvořena.'
deleted: 'Skupina byla úspěšně vymazána.'
security:
login:
username: 'Uživatelské jméno'
password: Heslo
remember_me: 'Zapamatovat si'
submit: 'Přihlásit se'
profile:
show:
username: 'Uživatelské jméno'
email: E-mail
edit:
submit: Upravit
flash:
updated: 'Profil byl úspěšně aktualizován.'
change_password:
submit: 'Nastavit nové heslo'
flash:
success: 'Nové heslo bylo úspěšně nastaveno.'
registration:
check_email: 'Na adresu %email% byl zaslán aktivační e-mail. Obsahuje odkaz, na který je nutné kliknout pro aktivaci Vašeho účtu.'
confirmed: 'Gratulujeme, %username%, Váš účet je nyní aktivní.'
back: 'Návrat na předchozí stránku.'
submit: 'Registrovat se'
flash:
user_created: 'Váš účet byl úspěšně vytvořen.'
email:
subject: 'Vítejte, %username%!'
message: |
Dobrý den, %username%!
Pro dokončení Vaší registrace prosím klikněte na tento odkaz: %confirmationUrl%
S pozdravem,
realizační tým.
resetting:
check_email: |
Byl Vám zaslán e-mail s návodem na nastavení nového hesla. E-mail obsahuje odkaz, na který je nutné kliknout pro nastavení nového hesla.
O nastavení nového hesla můžete žádat pouze každých %tokenLifetime% hodin.
Pokud jste e-mail neobdrželi, zkontrolujte prosím složku se spamem nebo zkuste obnovování hesla zopakovat.
request:
username: 'Uživatelské jméno nebo e-mail'
submit: 'Nastavit nové heslo'
reset:
submit: 'Změnit heslo'
flash:
success: 'Heslo bylo úspěšně změněno.'
email:
subject: 'Nastavení nového hesla'
message: |
Dobrý den, %username%!
Pro nastavení nového hesla prosím klikněte na tento odkaz: %confirmationUrl%
S pozdravem,
realizační tým.
layout:
logout: 'Odhlásit se'
login: 'Přihlásit se'
register: 'Registrovat se'
logged_in_as: 'Přihlášený uživatel: %username%'
form:
group_name: 'Název skupiny'
username: 'Uživatelské jméno'
email: E-mail
current_password: 'Současné heslo'
password: Heslo
password_confirmation: 'Potvrzení hesla'
new_password: 'Nové heslo'
new_password_confirmation: 'Potvrzení nového hesla'

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'Opdater gruppe'
show:
name: Gruppenavn
new:
submit: 'Opret gruppe'
flash:
updated: 'Gruppen er blevet opdateret.'
created: 'Gruppen er blevet oprettet.'
deleted: 'Gruppen er blevet slettet.'
security:
login:
username: Brugernavn
password: Adgangskode
remember_me: 'Husk mig'
submit: 'Log ind'
profile:
show:
username: Brugernavn
email: E-mail
edit:
submit: Opdater
flash:
updated: 'Profilen er blevet opdateret.'
change_password:
submit: 'Skift adgangskode'
flash:
success: 'Adgangskoden er blevet opdateret.'
registration:
check_email: |
En e-mail er blevet sendt til %email%. Den indeholder et aktiveringslink, du skal følge for at aktivere din konto.
confirmed: 'Tillykke %username%, din konto er nu aktiveret'
back: 'Tilbage til foregående side.'
submit: Registrer
flash:
user_created: 'Bruger er blevet oprettet.'
email:
subject: 'Velkommen %username%!'
message: |
Hej %username%!
For at færdiggøre aktiveringen af din konto, besøg venligst %confirmationUrl%
Dette link kan kun bruges én gang til at validere din konto.
Venlig hilsen,
Holdet bag siden.
resetting:
check_email: |
En e-mail er blevet sendt til %email%. Den indeholder et link, du skal følge for at nulstille din adgangskode.
Note: Du kan først bede om en ny adgangskode om %tokenLifetime% timer.
Hvis ikke du modtager en enmail skal du tjekke dit spamfilter eller prøve igen.
request:
username: 'Brugernavn eller e-mailadresse'
submit: 'Nulstil adgangskode'
reset:
submit: 'Skift adgangskode'
flash:
success: 'Adgangskoden er blevet nulstillet.'
email:
subject: 'Velkommen %username%!'
message: |
Hej %username%!
For at nulstille din adgangskode, besøg venligst %confirmationUrl%
Venlig hilsen,
Holdet bag siden.
# Global strings
layout:
logout: 'Log ud'
login: 'Log ind'
register: Registrer
logged_in_as: 'Logget ind som %username%'
form:
group_name: Gruppenavn
username: Brugernavn
email: E-mail
current_password: 'Nuværende adgangskode'
password: Adgangskode
password_confirmation: 'Gentag adgangskode'
new_password: 'Ny adgangskode'
new_password_confirmation: 'Gentag adgangskode'

View File

@@ -0,0 +1,84 @@
group:
edit:
submit: 'Gruppe aktualisieren'
show:
name: Gruppenname
new:
submit: 'Gruppe erstellen'
flash:
updated: 'Die Gruppe wurde aktualisiert.'
created: 'Die Gruppe wurde erstellt.'
deleted: 'Die Gruppe wurde gelöscht.'
security:
login:
username: Benutzername
password: Passwort
remember_me: 'An mich erinnern'
submit: Anmelden
profile:
show:
username: Benutzername
email: E-Mail
edit:
submit: 'Benutzer aktualisieren'
flash:
updated: 'Das Benutzerprofil wurde aktualisiert.'
change_password:
submit: 'Passwort ändern'
flash:
success: 'Das Passwort wurde geändert.'
registration:
check_email: 'Eine E-Mail wurde an %email% gesendet. Sie enthält einen Link, den Sie anklicken müssen, um Ihr Benutzerkonto zu bestätigen.'
confirmed: 'Glückwunsch %username%, Ihr Benutzerkonto ist jetzt bestätigt.'
back: 'Zurück zur ursprünglichen Seite.'
submit: Registrieren
flash:
user_created: 'Der Benutzer wurde erfolgreich erstellt.'
email:
subject: 'Willkommen %username%!'
message: |
Hallo %username%!
Besuchen Sie bitte folgende Seite, um Ihr Benutzerkonto zu bestätigen: %confirmationUrl%
Mit besten Grüßen,
das Team.
resetting:
check_email: |
Eine E-Mail wurde verschickt. Sie beinhaltet einen Link zum Zurücksetzen des Passwortes.
Hinweis: Ein neues Passwort kann nur alle %tokenLifetime% Stunden beantragt werden.
Eventuell wurde diese E-Mail als Spam markiert, wenn sie nicht angekommen ist.
request:
username: 'Benutzername oder E-Mail-Adresse'
submit: 'Passwort zurücksetzen'
reset:
submit: 'Passwort ändern'
flash:
success: 'Das Passwort wurde erfolgreich zurückgesetzt.'
email:
subject: 'Passwort zurücksetzen'
message: |
Hallo %username%!
Besuchen Sie bitte folgende Seite, um Ihr Passwort zurückzusetzen: %confirmationUrl%
Mit besten Grüßen,
das Team.
layout:
logout: Abmelden
login: Anmelden
register: Registrieren
logged_in_as: 'Angemeldet als %username%'
form:
group_name: Gruppenname
username: Benutzername
email: E-Mail-Adresse
current_password: 'Derzeitiges Passwort'
password: Passwort
password_confirmation: 'Passwort bestätigen'
new_password: 'Neues Passwort'
new_password_confirmation: 'Neues Passwort bestätigen'

View File

@@ -0,0 +1,82 @@
group:
edit:
submit: 'Ενημέρωση ομάδας'
show:
name: 'Όνομα ομάδας'
new:
submit: 'Δημιουργία ομάδας'
flash:
updated: 'Η ομάδα ενημερώθηκε επιτυχώς'
created: 'Η ομάδα δημιουργήθηκε επιτυχώς'
deleted: 'Η ομάδα διαγράφηκε επιτυχώς'
security:
login:
username: 'Όνομα Χρήστη'
password: 'Κωδικός Πρόσβασης'
remember_me: 'Να με θυμάσαι'
submit: Είσοδος
profile:
show:
username: 'Όνομα Χρήστη'
email: Email
edit:
submit: Ενημέρωσε
flash:
updated: 'Το προφίλ ενημερώθηκε επιτυχώς'
change_password:
submit: 'Αλλαγή κωδικού'
flash:
success: 'Ο κωδικός άλλαξε επιτυχώς'
registration:
check_email: 'Ένα email στάλθηκε στο %email%. Περιέχει μία διεύθυνση ενεργοποίησης του λογαριασμού σας που πρέπει να κάνετε κλικ για να ενεργοποιηθεί.'
confirmed: 'Συγχαρητήρια %username%, ο λογαριασμός μόλις ενεργοποιήθηκε.'
back: 'Επιστροφή στην αρχική σελίδα.'
submit: Εγγραφή
flash:
user_created: 'Ο χρήστης δημιουργήθηκε επιτυχώς.'
email:
subject: 'Καλώς ήρθες %username%!'
message: |
Αγαπητέ %username%!
Για να ολοκληρώσετε την ενεργοποίηση του λογαριασμού σας - επισκεφθείτε %confirmationUrl%
Ευχαριστούμε πολύ.
resetting:
check_email: |
Ένα email έχει αποσταλεί. Περιέχει ένα σύνδεσμο ώστε να μπορέσετε να επαναφέρετε τον κωδικό σας.
Σημείωση: Μπορείτε να ζητήσε επαναφορά το πολύ μία φορά μέσα σε %tokenLifetime% hours.
Εάν δεν έχετε λάβει κάποιο email παρακαλώ ελένξτε τον φάκελο με την ανεπιθύμητη αλληλογραφία (spam) ή δοκιμάστε ξανά.
request:
username: 'Όνομα χρήστη ή διεύθυνση e-mail'
submit: 'Επαναφορά του κωδικού πρόσβασης'
reset:
submit: 'Αλλαγή κωδικού πρόσβασης'
flash:
success: 'Η επαναφορά του κωδικού πρόσβασης έγινε με επιτυχία'
email:
subject: 'Επαναφορά του κωδικού πρόσβασης'
message: |
Αγαπητέ %username%!
Για να επαναφέρετε τον κωδικό πρόσβασής σας - επισκεφθείτε %confirmationUrl%
Ευχαριστούμε πολυ.
layout:
logout: Αποσύνδεση
login: Σύνδεση
register: Εγγραφή
logged_in_as: 'Έχετε συνδεθεί ως %username%'
form:
group_name: 'Όνομα ομάδας'
username: 'Όνομα Χρήστη'
email: Email
current_password: 'Τρέχον κωδικός πρόσβασης'
password: 'Κωδικός πρόσβασης'
password_confirmation: Επαλήθευση
new_password: 'Νέος Κωδικός πρόσβασης'
new_password_confirmation: Επαλήθευση

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'Update group'
show:
name: 'Group name'
new:
submit: 'Create group'
flash:
updated: 'The group has been updated.'
created: 'The group has been created.'
deleted: 'The group has been deleted.'
security:
login:
username: Username
password: Password
remember_me: 'Remember me'
submit: 'Log in'
profile:
show:
username: Username
email: Email
edit:
submit: Update
flash:
updated: 'The profile has been updated.'
change_password:
submit: 'Change password'
flash:
success: 'The password has been changed.'
registration:
check_email: |
An email has been sent to %email%. It contains an activation link you must click to activate your account.
confirmed: 'Congrats %username%, your account is now activated.'
back: 'Back to the originating page.'
submit: Register
flash:
user_created: 'The user has been created successfully.'
email:
subject: 'Welcome %username%!'
message: |
Hello %username%!
To finish activating your account - please visit %confirmationUrl%
This link can only be used once to validate your account.
Regards,
the Team.
resetting:
check_email: |
An email has been sent. It contains a link you must click to reset your password.
Note: You can only request a new password once within %tokenLifetime% hours.
If you don't get an email check your spam folder or try again.
request:
username: 'Username or email address'
submit: 'Reset password'
reset:
submit: 'Change password'
flash:
success: 'The password has been reset successfully.'
email:
subject: 'Reset Password'
message: |
Hello %username%!
To reset your password - please visit %confirmationUrl%
Regards,
the Team.
# Global strings
layout:
logout: 'Log out'
login: 'Log in'
register: Register
logged_in_as: 'Logged in as %username%'
form:
group_name: 'Group name'
username: Username
email: Email
current_password: 'Current password'
password: Password
password_confirmation: 'Repeat password'
new_password: 'New password'
new_password_confirmation: 'Repeat new password'

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'Aktualigi'
show:
name: 'Grupnomo'
new:
submit: 'Krei grupon'
flash:
updated: 'La grupo estas aktualigita.'
created: 'La grupo estas kreita.'
deleted: 'La grupo estas forigita.'
security:
login:
username: Uzantnomo
password: Pasvorto
remember_me: 'Memoru min'
submit: 'Ensaluti'
profile:
show:
username: Uzantnomo
email: Retpoŝtadreso
edit:
submit: Aktualigi
flash:
updated: 'La profilo estas aktualigita.'
change_password:
submit: 'Ŝanĝi la pasvorton'
flash:
success: 'La pasvorto estas ŝanĝita'
registration:
check_email: |
Por fini la registriĝon bonvolu alklaki la ligilon en la retpoŝtmesaĝo, kiun ni ĵus sendis al vi. Se vi ne ricevis la mesaĝon, kontrolu vian spam-dosierujon.
confirmed: 'Gratulon %username%, via konto estas aktiva.'
back: 'Reiri al la origina paĝo.'
submit: Registriĝi
flash:
user_created: 'La uzanto estis kreita.'
email:
subject: 'Bonvenon %username%!'
message: |
Saluton %username%!
Por kompletigi la aktivigadon de via konto - Bonvolu viziti %confirmationUrl%
Ĉi tiu ligilo povas validigi nur vian konton.
Amike,
la Teamo.
resetting:
check_email: |
Ni sendis retpoŝtmesaĝon al vi. Ĝi enhavas ligilon, kiun vi devas alklaki por ŝanĝi vian pasvorton.
Rimarku: Vi nur povas uzi la ligilon dum %tokenLifetime% horoj.
Se vi ne ricevis la mesaĝon, kontrolu vian spam-dosierujon.
request:
username: 'Uzantnomo aŭ retpoŝtadreso'
submit: 'Ŝanĝi la Pasvorton'
reset:
submit: 'Ŝanĝi la Pasvorton'
flash:
success: 'La pasvorto estas sukcese ŝanĝita.'
email:
subject: 'Ŝanĝi la pasvorton'
message: |
Saluton %username%!
Por ŝanĝi la pasvorton - Bonvolu viziti %confirmationUrl%
Amike,
la Teamo.
# Global strings
layout:
logout: 'Elsaluti'
login: 'Ensaluti'
register: Registriĝi
logged_in_as: 'Ensalutita kiel %username%'
form:
group_name: 'Grupnomo'
username: Uzantnomo
email: Retpoŝtadreso
current_password: 'Nuna pasvorto'
password: Pasvorto
password_confirmation: 'Retajpu pasvorton'
new_password: 'Nova pasvorto'
new_password_confirmation: 'Retajpu novan pasvorton'

View File

@@ -0,0 +1,86 @@
group:
edit:
submit: 'Actualizar grupo'
show:
name: 'Nombre de grupo'
new:
submit: 'Crear grupo'
flash:
updated: 'El grupo ha sido actualizado.'
created: 'El grupo ha sido creado.'
deleted: 'El grupo ha sido borrado.'
security:
login:
username: 'Nombre de usuario'
password: Contraseña
remember_me: Recordar
submit: Entrar
profile:
show:
username: 'Nombre de usuario'
email: Email
edit:
submit: 'Actualizar usuario'
flash:
updated: 'El perfil ha sido actualizado.'
change_password:
submit: 'Cambiar contraseña'
flash:
success: 'La contraseña se ha cambiado con éxito.'
registration:
check_email: 'Se ha enviado un correo electrónico a %email%. Contiene un enlace de activación al que debes acceder para activar tu cuenta.'
confirmed: 'Felicidades %username%, tu cuenta está ahora confirmada.'
back: 'Volver a la página original.'
submit: Registrar
flash:
user_created: 'El usuario se ha creado satisfactoriamente.'
email:
subject: '¡Bienvenido %username%!'
message: |
¡Hola %username%!
Para completar la validación de tu cuenta, por favor visita %confirmationUrl%
Este enlace sólo puede utilizarse una vez para validar tu cuenta.
Atentamente,
el Equipo.
resetting:
check_email: |
Se ha enviado un correo electrónico a tu cuenta de correo. Contiene un enlace de activación al que debes acceder para restablecer tu contraseña.
Nota: Solo se puede solicitar una nueva contraseña cada %tokenLifetime% horas.
Si no recibes un correo electrónico, comprueba tu carpeta de correo no deseado o inténtalo de nuevo.
request:
username: 'Nombre de usuario o correo electrónico'
submit: 'Restablecer contraseña'
reset:
submit: 'Cambiar contraseña'
flash:
success: 'La contraseña se ha cambiado con éxito.'
email:
subject: 'Restablecer Contraseña'
message: |
¡Hola %username%!
Para restablecer tu contraseña, por favor visita %confirmationUrl%
Atentamente,
el Equipo.
layout:
logout: Salir
login: Entrar
register: Registrar
logged_in_as: 'Identificado como %username%'
form:
group_name: 'Nombre de grupo'
username: 'Nombre de usuario'
email: Email
current_password: 'Contraseña actual'
password: Contraseña
password_confirmation: 'Repita la contraseña'
new_password: 'Nueva contraseña'
new_password_confirmation: 'Repita la contraseña'

View File

@@ -0,0 +1,86 @@
group:
edit:
submit: 'Muuda grupp'
show:
name: 'Grupi nimi'
new:
submit: 'Uus grupp'
flash:
updated: 'Grupp muudetud.'
created: 'Uus grupp loodud.'
deleted: 'Grupp kustutatud.'
security:
login:
username: Kasutajanimi
password: Salasõna
remember_me: 'Jäta mind meelde'
submit: Sisene
profile:
show:
username: Kasutajanimi
email: E-mail
edit:
submit: Uuenda
flash:
updated: 'Profiil uuendatud.'
change_password:
submit: 'Muuda salasõna'
flash:
success: 'Parool muudetud.'
registration:
check_email: |
E-mail on saadetud aadressile %email%. Selles sisaldub viide, mis tuleb konto aktiveerimiseks avada.
confirmed: 'Palju õnne %username%, Sinu konto on aktiveeritud.'
back: 'Tagasi esialgsele lehele.'
submit: Registreeri
flash:
user_created: 'Kasutaja edukalt loodud.'
email:
subject: 'Tere %username%!'
message: |
Tere %username%!
Konto aktiveerimiseks palun avage viide %confirmationUrl%
Seda viidet saate kasutada vaid ühe korra konto valideerimiseks.
Parimatega,
Tiim.
resetting:
check_email: |
E-mail on saadetud. Selles sisaldub viide, mis tuleb salasõna muutmiseks avada.
Märkus: Saate uue parooli tellida vaid korra %tokenLifetime% tunni jooksul.
Kui te ei e-maili ei saanud, kontrollige oma spämmikausta või proovige uuesti.
request:
username: Kasutajanimi või e-mail
submit: 'Saada salasõna'
reset:
submit: 'Muuda salasõna'
flash:
success: 'Parooli saatmine õnnestus.'
email:
message: |
Tere %username%!
Salasõna muutmiseks palun avage viide %confirmationUrl%
Parimatega,
Tiim.
layout:
logout: Välju
login: Sisene
register: Registreeri
logged_in_as: 'Sisse logitud: %username%'
form:
group_name: 'Grupi nimi'
username: Kasutajanimi
email: E-mail
current_password: 'Vana salasõna'
password: Salasõna
password_confirmation: 'Salasõna uuesti'
new_password: 'Uus salasõna'
new_password_confirmation: 'Salasõna uuesti'

View File

@@ -0,0 +1,86 @@
group:
edit:
submit: 'Taldea eguneratu'
show:
name: 'Taldearen izena'
new:
submit: 'Taldea sortu'
flash:
updated: 'Taldea eguneratua izan da.'
created: 'Taldea sortua izan da.'
deleted: 'Taldea ezabatua izan da.'
security:
login:
username: 'Erabiltzaile izena'
password: Pasahitza
remember_me: Oroitu
submit: Sartu
profile:
show:
username: 'Erabiltzaile izena'
email: E-posta
edit:
submit: 'Erabiltzailea eguneratu'
flash:
updated: 'Perfila eguneratua izan da.'
change_password:
submit: 'Pasahitza aldatu'
flash:
success: 'Pasahitz ongi eguneratu da.'
registration:
check_email: 'E-posta bat bidali da %email% helbidera. Kontua aktibatzeko klik egin beharreko esteka zehazten da.'
confirmed: 'Zorionak %username%, zure kontua aktibatua dago.'
back: Itzuli.
submit: 'Izena eman'
flash:
user_created: 'Erabiltzailea ongi sortu da.'
email:
subject: 'Ongi etorri %username%!'
message: |
Kaixo %username%!
Kontuaren balidazioazioarekin jarraitzeko - ireki ondoko orria: %confirmationUrl%
Esteka hau behin baino ez erabili daiteke zure kontua balidatzeko.
Adeitasunez,
Taldea.
resetting:
check_email: |
E-posta bat bidali da zure helbidera. Pasahitza berreskuratzeko estekan klik egin behar duzu bertan.
Oharra: Behin %tokenLifetime% horduro bakarrik ezka dezakezu pasahitz berria.
E-posta ez baduzu jasotzen, begira ezazu zure zabor-postan edo saiatu berriro.
request:
username: 'Erabiltzaile izena'
submit: 'Pasahitza berreskuratu'
reset:
submit: 'Pasahitza aldatu'
flash:
success: 'Pasahitza ongi aldatu da.'
email:
subject: 'Pasahitza berrezarri'
message: |
Kaixo %username%!
Pasahitza berrezartzeko egin klik esteka honetan: %confirmationUrl%
Adeitasunez,
Taldea.
layout:
logout: Irten
login: Sartu
register: 'Izena eman'
logged_in_as: '%username% bezala konektatua'
form:
group_name: 'Taldearen izena'
username: 'Erabiltzaile izena'
email: E-posta
current_password: 'Oraingo pasahitza'
password: Pasahitza
password_confirmation: 'Errepikatu pasahitza'
new_password: 'Pasahitz berria'
new_password_confirmation: 'Errepikatu pasahitza'

View File

@@ -0,0 +1,92 @@
group:
edit:
submit: 'به‌روزرسانی'
show:
name: 'نام گروه'
new:
submit: 'ایجاد گروه'
flash:
updated: 'گروه با موفقیت به‌روز شد'
created: 'گروه با موفقیت ایجاد شد'
deleted: 'گروه با موفقیت حذف شد'
security:
login:
username: 'نام کاربری'
password: 'کلمه عبور'
remember_me: 'مشخصات ورود من را به خاطر بسپار'
submit: 'ورود'
profile:
show:
username: 'نام کاربری'
email: 'ایمیل'
edit:
submit: 'به‌روزرسانی'
flash:
updated: 'پروفایل کاربری با موفقیت به‌روز شد'
change_password:
submit: 'تغییر کلمه عبور'
flash:
success: 'کلمه عبور با موفقیت تغییر کرد'
registration:
check_email: |
ایمیلی به %email% فرستاده شده است. این ایمیل حاوی لینکی است که برای فعال سازی باید روی آن کلیک کنید.
confirmed: '%username% عزیز، نام کاربری شما با موفقیت فعال شد.'
back: 'بازگشت به صفحه قبلی'
submit: 'ثبت نام'
flash:
user_created: 'کاربر با موفقیت ساخته شد'
email:
subject: '%username% خوش آمدید!'
message: |
%username% سلام!
برای تکمیل فعال سازی نام کاربری خود لطفا %confirmationUrl% را مشاهده کنید
از این لینک تنها یک بار می توان برای فعال سازی نام کاربری استفاده کرد.
با احترام،
گروه پشتیبانی
resetting:
check_email: |
ایمیلی به نشانی شما فرستاده شده است. این ایمیل حاوی لینکی است که برای فعال سازی باید روی آن کلیک کنید.
لطفا توجه کنید که در هر %tokenLifetime% ساعت تنها یک بار می توانید درخواست کلمه عبور جدید ارسال کنید.
اگر ایمیلی با این مشخصات در باکس خود دریافت نکردید، لطفا پوشه اسپم خود را چک کرده و یا مجددا تلاش کنید.
request:
username: 'نام کاربری یا ایمیل'
submit: 'بازنشانی کلمه عبور'
reset:
submit: 'تغییر کلمه عبور'
flash:
success: 'کلمه عبور با موفقیت بازنشانی شد'
email:
subject: 'بازنشانی کلمه عبور'
message: |
%username% سلام!
برای بازنشانی کلمه عبور خود لطفا %confirmationUrl% را مشاهده کنید
با احترام،
گروه پشتیبانی
# Global strings
layout:
logout: خروج
login: ورود
register: 'ثبت نام'
logged_in_as: 'ورود به عنوان %username%'
form:
group_name: 'نام گروه'
username: 'نام کاربری'
email: 'ایمیل'
current_password: 'کلمه عبور فعلی'
password: 'کلمه عبور'
password_confirmation: 'تکرار کلمه عبور'
new_password: 'کلمه عبور جدید'
new_password_confirmation: 'تکرار کلمه عبور جدید'

View File

@@ -0,0 +1,77 @@
group:
edit:
submit: 'Päivitä ryhmä'
show:
name: 'Ryhmän nimi'
new:
submit: 'Luo ryhmä'
flash:
updated: 'Ryhmä on päivitetty.'
created: 'Ryhmä on luotu.'
deleted: 'Ryhmä on poistettu.'
security:
login:
username: Käyttäjätunnus
password: Salasana
remember_me: 'Muista minut'
submit: Kirjaudu
profile:
show:
username: Käyttäjätunnus
email: Sähköpostiosoite
edit:
submit: Päivitä
flash:
updated: 'Profiili on päivitetty.'
change_password:
submit: 'Vaihda salasana'
flash:
success: 'Salasana on vaihdettu.'
registration:
check_email: 'Sähköposti on lähetetty osoitteeseen %email%. Se sisältää aktivointilinkin, jota klikkaamalla tunnus aktivoidaan.'
confirmed: 'Onnittelut %username%, tunnuksesi on nyt aktivoitu.'
back: 'Takaisin alkuperäiselle sivulle.'
submit: 'Luo tunnus'
flash:
user_created: 'Käyttäjätunnus on luotu onnistuneesti.'
email:
subject: 'Tervetuloa %username%!'
message: |
Hei %username%!
Aktivoidaksesi tunnuksesi, ole hyvä ja klikkaa %confirmationUrl%
Terveisin ylläpito
resetting:
# check_email: 'Sähköposti on lähetetty osoitteeseen %email%. Se sisältää linkin, jota klikkaamalla salasana alustetaan.'
request:
username: 'Käyttäjätunnus tai sähköpostiosoite'
submit: 'Alusta salasana'
reset:
submit: 'Vaihda salasana'
flash:
success: 'Salasana on alustettu onnistuneesti.'
email:
subject: 'Alusta salasana'
message: |
Hei %username%!
Alustaaksesi salasanasi, ole hyvä ja klikkaa %confirmationUrl%
Terveisin ylläpito
layout:
logout: Ulos
login: Kirjaudu
register: 'Luo tunnus'
logged_in_as: 'Kirjautuneena %username%'
form:
group_name: 'Ryhmän nimi'
username: Käyttäjätunnus
email: Sähköpostiosoite
current_password: 'Nykyinen salasana'
password: Salasana
password_confirmation: 'Salasana uudestaan'
new_password: 'Uusi salasana'
new_password_confirmation: 'Salasana uudestaan'

View File

@@ -0,0 +1,87 @@
group:
edit:
submit: 'Mettre à jour le groupe'
show:
name: 'Nom du groupe'
new:
submit: 'Créer le groupe'
flash:
updated: 'Le groupe a été mis à jour.'
created: 'Le groupe a été créé.'
deleted: 'Le groupe a été supprimé.'
security:
login:
username: 'Nom d''utilisateur'
password: 'Mot de passe'
remember_me: 'Se souvenir de moi'
submit: Connexion
profile:
show:
username: 'Nom d''utilisateur'
email: 'Adresse e-mail'
edit:
submit: 'Mettre à jour'
flash:
updated: 'Le profil a été mis à jour.'
change_password:
submit: 'Modifier le mot de passe'
flash:
success: 'Le mot de passe a été modifié.'
registration:
check_email: 'Un e-mail a été envoyé à l''adresse %email%. Il contient un lien d''activation sur lequel il vous faudra cliquer afin d''activer votre compte.'
confirmed: 'Félicitations %username%, votre compte est maintenant activé.'
back: 'Retour à la page d''origine.'
submit: 'Créer un compte'
flash:
user_created: 'L''utilisateur a été créé avec succès.'
email:
subject: 'Bienvenue %username% !'
message: |
Bonjour %username% !
Pour valider votre compte utilisateur, merci de vous rendre sur %confirmationUrl%
Ce lien ne peut être utilisé qu'une seule fois pour valider votre compte.
Cordialement,
L'équipe
resetting:
check_email: |
Un e-mail a été envoyé. Il contient un lien sur lequel il vous faudra cliquer pour réinitialiser votre mot de passe.
Remarque : Vous ne pouvez demander un nouveau mot de passe que toutes les %tokenLifetime% heures.
Si vous ne recevez pas un email, vérifiez votre dossier spam ou essayez à nouveau.
request:
username: 'Nom d''utilisateur ou adresse e-mail'
submit: 'Réinitialiser le mot de passe'
reset:
submit: 'Modifier le mot de passe'
flash:
success: 'Le mot de passe a été réinitialisé avec succès.'
email:
subject: 'Réinitialisation de votre mot de passe'
message: |
Bonjour %username% !
Pour réinitialiser votre mot de passe, merci de vous rendre sur %confirmationUrl%
Cordialement,
L'équipe
layout:
logout: Déconnexion
login: Connexion
register: Inscription
logged_in_as: 'Connecté en tant que %username%'
form:
group_name: 'Nom du groupe'
username: 'Nom d''utilisateur'
email: 'Adresse e-mail'
current_password: 'Mot de passe actuel'
password: 'Mot de passe'
password_confirmation: 'Répéter le mot de passe'
new_password: 'Nouveau mot de passe'
new_password_confirmation: 'Répéter le nouveau mot de passe'

View File

@@ -0,0 +1,94 @@
# Group
group:
edit:
submit: Actualizar grupo
show:
name: Nome do grupo
new:
submit: Crear grupo
flash:
updated: Actualizouse o grupo.
created: Creouse o grupo.
deleted: Borrouse o grupo.
# Security
security:
login:
username: Nome de usuario
password: Contrasinal
remember_me: Lembrar
submit: Entrar
# Profile
profile:
show:
username: Nome de usuario
email: Email
edit:
submit: Actualizar usuario
flash:
updated: Actualizouse o perfil.
# Password change
change_password:
submit: Cambiar contrasinal
flash:
success: O contrasinal cambiouse con éxito.
# Registration
registration:
check_email: Enviouse un email a %email%. Contén un enlace de activación que deberás premer para activala túa conta.
confirmed: Parabéns %username%, confirmouse a túa conta.
back: Volver á páxina orixinal.
submit: Rexistrar
flash:
user_created: Creouse o usuario satisfactoriamente.
email:
subject: Benvido %username%!
message: |
Hola %username%!
Para completala validación da túa conta - por favor visita %confirmationUrl%
Atentamente,
o Equipo.
# Password resetting
resetting:
password_already_requested: O contrasinal para este usuario solicitouse xa dentro das 24 horas.
check_email: Enviouse un email %email%. Contén un enlace de activación que deberás premer para restablecelo teu contrasinal.
request:
invalid_username: O usuario ou dirección de correo "%username%" non existe.
username: Nome de usuario
submit: Restablecer contrasinal
reset:
submit: Cambiar contrasinal
flash:
success: O contrasinal cambiaouse con éxito.
email:
subject: Benvido %username%!
message : |
Hola %username%!
Para restablecelo teu contrasinal - por favor visita %confirmationUrl%
Atentamente,
o Equipo.
# Global strings
layout:
logout: Saír
login: Entrar
register: Rexistrar
logged_in_as: Identificado como %username%
# Form field labels
form:
group_name: Nome de grupo
username: Nome de usuario
email: Email
current_password: Contrasinal actualizado
password: Contrasinal
password_confirmation: Repita o contrasinal
new_password: Novo contrasinal
new_password_confirmation: Repita o contrasinal

View File

@@ -0,0 +1,89 @@
group:
edit:
submit: 'עדכן קבוצה'
show:
name: 'שם קבוצה'
new:
submit: 'צור קבומה'
flash:
updated: 'הקבוצה עודכנה בהצלחה'
created: 'הקבוצה נוצרה בהצלחה'
deleted: 'הקבוצה נמחקה בהצלחה'
security:
login:
username: 'שם משתמש'
password: סיסמה
remember_me: 'זכור אותי'
submit: התחבר
profile:
show:
username: 'שם משתמש'
email: 'דוא"ל'
edit:
submit: עדכון
flash:
updated: 'הפרופיל עודכן בהצלחה'
change_password:
submit: 'שינוי סיסמה'
flash:
success: 'הסיסמה שונתה בהצלחה.'
registration:
check_email: 'הודעה בדוא"ל נשלחה ל-%email%. ההודעה מכילה קישור להפעלת חשבון משתמש שלך. יש ללחוץ על הקישור כדי להפעיל את החשבון.'
confirmed: 'ברוכים הבאים %username%, חשבון שלך הופעל.'
back: 'השב לדף הקודם.'
submit: הרשם
flash:
user_created: 'המשתמש נוצר בהצלחה'
email:
subject: 'שלום %username%!'
message: |
%username% שלום רב,
כדי לסיים הרשמתך יש ללחוץ על קישור זה: %confirmationUrl%
זה קישור חד-פעמי לאמת סיסמתך.
בברכה,
הצוות.
resetting:
check_email: |
הודעת דוא"ל נשלחה. ההודעה מכילה קישור לאיפוס סיסמה שלך.
ניתן לבקש איפוס סיסמה תוך %tokenLifetime% שעות.
יש לבדוק תיקיים דואר זבל במידע ולא הגיעה ההודעה.
request:
username: 'שם משתמש או דואר אלקטרוני'
submit: 'איפוס סיסמה'
reset:
submit: 'שינוי סיסמה'
flash:
success: 'הסיסמה אופסה בהצלחה'
email:
subject: 'איפוס סיסמה'
message: |
%username% שלום רב,
כדי לאפס סיסמה שלך יש ללחוץ %confirmationUrl%
בברכה,
הצוות.
# Global strings
layout:
logout: התנתק
login: כניסה
register: רישום
logged_in_as: 'שלום %username%'
form:
group_name: 'שם קבוצה'
username: 'שם משתמש'
email: 'דוא\"ל'
current_password: 'סיסמה נוכחות'
password: סיסמה
password_confirmation: 'אימות סיסמה'
new_password: 'סיסמה חדשה'
new_password_confirmation: 'אימות סיסמה חדשה'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Ažuriraj grupu'
show:
name: 'Ime grupe'
new:
submit: 'Spremi grupu'
flash:
updated: 'Grupa je uspješno ažurirana.'
created: 'Grupa je uspješno kreirana.'
deleted: 'Grupa je uspješno spremljena.'
security:
login:
username: 'Korisničko ime'
password: Lozinka
remember_me: 'Zapamti me'
submit: Prijava
profile:
show:
username: 'Korisničko ime'
email: Email
edit:
submit: Ažuriraj
flash:
updated: 'Profil je uspješno ažuriran.'
change_password:
submit: 'Izmijeni lozinku'
flash:
success: 'Lozinka je uspješno spremljena.'
registration:
check_email: 'Na %email% smo vam poslali poruku s poveznicom za aktivaciju. Korisnički račun aktivirate klikom na tu poveznicu.'
confirmed: 'Pozdrav %username%, vaš korisnički račun je sada aktiviran.'
back: 'Natrag na polaznu stranicu.'
submit: Registracija
flash:
user_created: 'Korisnički račun je uspješno kreiran.'
email:
subject: 'Aktivacija korisničkog računa'
message: |
Pozdrav %username%!
Za aktivaciju korisničkog računa molimo kliknite na %confirmationUrl%
Pozdrav,
Autori stranice
resetting:
# check_email: 'Na %email% smo vam poslali poruku s poveznicom za promjenu lozinke. Lozinku resetirajte klikom na tu poveznicu.'
request:
username: 'Korisničko ime'
submit: 'Izmijeni lozinku'
reset:
submit: 'Spremi lozinku'
flash:
success: 'Lozinka je uspješno spremljena.'
email:
subject: 'Promjena lozinke'
message: |
Pozdrav %username%!
Za promjenu lozinke molimo kliknite na %confirmationUrl%
Pozdrav,
Autori stranice
layout:
logout: Odjava
login: Prijava
register: Registracija
logged_in_as: 'Prijavljen kao %username%'
form:
group_name: 'Ime grupe'
username: 'Korisničko ime'
email: Email
current_password: 'Trenutna lozinka'
password: Lozinka
password_confirmation: 'Potvrda lozinke'
new_password: 'Nova lozinka'
new_password_confirmation: 'Potvrda lozinke'

View File

@@ -0,0 +1,90 @@
group:
edit:
submit: 'Csoport frissítése'
show:
name: 'Csoport név'
new:
submit: 'Csoport létrehozása'
flash:
updated: 'A csoport frissítve.'
created: 'A csoport létrehozva.'
deleted: 'A csoport törölve.'
security:
login:
username: Felhasználónév
password: Jelszó
remember_me: Megjegyzés
submit: Belépés
profile:
show:
username: Felhasználónév
email: E-mail
edit:
submit: Frissítés
flash:
updated: 'A profil frissítve.'
change_password:
submit: 'Jelszó megváltoztazása'
flash:
success: 'A jelszó megváltoztatva.'
registration:
check_email: 'A regisztrált fiók aktiválásához a megadott "%email%" címre küldött üzenetben lévő aktivációs linkre kell kattintani.'
confirmed: 'Gratulálunk %username%, a regisztrált fiók sikeresen aktiválásra került.'
back: 'Vissza az előző oldalra.'
submit: Regisztráció
flash:
user_created: 'A felhasználó sikeresen létrehozva.'
email:
subject: 'Üdvözöljük %username%!'
message: |
Hello %username%!
A regisztrált fiók a következő linkre kattintva aktiválható: %confirmationUrl%
A link csak egyszer használható, rákattintás után ismételt felhasználása nem lehetséges.
Üdvözlettel,
a Csapat.
resetting:
check_email: |
Elfelejtett jelszava lecseréléséhez, kérjük, kattintson az e-mailben található linkre.
Felhívjuk figyelmát rá, hogy a link érvényessége %tokenLifetime% óra múlva lejár.
Amennyiben nem találja az e-mailt a postafiókjában, ellenőrizze a levélszemét mappát vagy kérje újra a kiküldést!
request:
username: 'Felhasználónév vagy e-mail cím'
submit: 'Jelszó lecserélése'
reset:
submit: 'Jelszó megváltoztatása'
flash:
success: 'A jelszó sikeresen lecserélve.'
email:
subject: 'Jelszó lecserélése'
message: |
Hello %username%!
A jelszó a következő oldalon cserélhető le: %confirmationUrl%
Üdvözlettel,
a Csapat.
layout:
logout: Kijelentkezés
login: Bejelentkezés
register: Regisztráció
logged_in_as: 'Belépve mint %username%'
form:
group_name: 'Csoport név'
username: Felhasználónév
email: E-mail
current_password: 'Jelenlegi jelszó'
password: Jelszó
password_confirmation: 'Jelszó megerősítése'
new_password: 'Új jelszó'
new_password_confirmation: 'Új jelszó megerősítése'

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'Memperbaharui Grup'
show:
name: 'Nama Grup'
new:
submit: 'Buat Grup'
flash:
updated: 'Grup telah berhasil diperbaharui.'
created: 'Grup telah berhasil ditambahkan.'
deleted: 'Grup telah berhasil dihapus.'
security:
login:
username: 'Nama Pengguna'
password: 'Kata sandi'
remember_me: 'Ingat saya'
submit: 'Masuk'
profile:
show:
username: 'Nama Pengguna'
email: 'Surel'
edit:
submit: 'Perbaharui'
flash:
updated: 'Profil telah berhasil diperbaharui'
change_password:
submit: 'Ubah kata sandi'
flash:
success: 'Kata sandi telah berhasil diubah.'
registration:
check_email: 'Sebuah surel telah berhasil dikirimkan ke %email%. Anda harus mengklik tautan aktivasi di dalam surel tersebut untuk mengaktifkan akun anda.'
confirmed: 'Selamat %username%, akun anda telah berhasil diaktifkan.'
back: 'Kembali ke halaman sebelumnya.'
submit: Daftar
flash:
user_created: 'Pengguna telah berhasil ditambahkan.'
email:
subject: 'Selamat datang %username%!'
message: |
Hallo %username%!
Untuk menyelesaikan aktifasi akun anda, mohon kunjungi halaman berikut %confirmationUrl%
Tautan ini hanya bisa digunakan sekali untuk akun anda.
Hormat Kami,
Tim Website.
resetting:
check_email: |
Sebuah surel telah dikirim. Anda harus mengklik tautan di dalam email tersebut agar dapat menata ulang kata sandi anda.
Catatan: Anda hanya bisa meminta kata sandi baru dalam %tokenLifetime% jam.
Apabila anda tidak menerima surel, cek spam atau ulangi kembali
request:
username: 'Nama pengguna atau alamat surel'
submit: 'Tata ulang kata sandi'
reset:
submit: 'Ubah kata sandi'
flash:
success: 'Kata sandi telah berhasil ditata ulang.'
email:
subject: 'Tata ulang kata sandi'
message: |
Halo %username%!
Untuk menata kata sandi anda mohon kunjungi halaman berikut %confirmationUrl%
Hormat Kami,
Tim Website.
# Global strings
layout:
logout: 'Keluar'
login: 'Masuk'
register: 'Pendaftaran'
logged_in_as: 'Masuk sebagai %username%'
form:
group_name: 'Nama Grup'
username: 'Nama Pengguna'
email: 'Surel'
current_password: 'Kata sandi saat ini'
password: 'Kata sandi'
password_confirmation: 'Ulangi kata sandi'
new_password: 'Kata sandi Baru'
new_password_confirmation: 'Ulangi kata sandi baru'

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'Aggiorna gruppo'
show:
name: 'Nome gruppo'
new:
submit: 'Crea gruppo'
flash:
updated: 'Il gruppo è stato aggiornato.'
created: 'Il gruppo è stato creato.'
deleted: 'Il gruppo è stato cancellato.'
security:
login:
username: Username
password: Password
remember_me: Ricordami
submit: Login
profile:
show:
username: Username
email: Email
edit:
submit: Aggiorna
flash:
updated: 'Il profilo è stato aggiornato.'
change_password:
submit: 'Cambia password'
flash:
success: 'La password è stata cambiata.'
registration:
check_email: 'Un''email è stata inviata a %email%. Contiene il link d''attivazione che devi utilizzare per attivare il tuo account.'
confirmed: 'Congratulazioni %username%, il tuo account è confermato.'
back: 'Torna alla pagina d''origine.'
submit: Registra
flash:
user_created: 'Utente creato con successo.'
email:
subject: 'Benvenuto %username%!'
message: |
Ciao %username%!
Per terminare la validazione del tuo account visita %confirmationUrl%
Questo link può essere utilizzato solo una volta per verificare il tuo account.
Saluti,
il Team.
resetting:
check_email: |
È stata inviata un'email con il link d'attivazione che devi utilizzare per il reset della password.
Nota: è possibile richiedere una password entro %tokenLifetime% ore.
Se non ricevi un'email verifica la cartella di spam o riprova.
request:
username: 'Username o indirizzo email'
submit: 'Password reset'
reset:
submit: 'Cambia password'
flash:
success: 'La password è stata resettata.'
email:
subject: 'Password reset'
message: |
Ciao %username%!
Per resettare la password visita %confirmationUrl%
Saluti,
il Team.
# Global strings
layout:
logout: Logout
login: Login
register: Registra
logged_in_as: 'Collegato come %username%'
form:
group_name: 'Nome gruppo'
username: Username
email: Email
current_password: 'Password corrente'
password: Password
password_confirmation: 'Ripeti password'
new_password: 'Nuova password'
new_password_confirmation: 'Ripeti password'

View File

@@ -0,0 +1,85 @@
group:
edit:
submit: グループの更新
show:
name: グループ名
new:
submit: グループの作成
flash:
updated: グループが更新されました
created: グループが作成されました
deleted: グループが削除されました
security:
login:
username: ユーザー名
password: パスワード
remember_me: ログイン状態を記憶する
submit: ログイン
profile:
show:
username: ユーザー名
email: メールアドレス
edit:
submit: 更新
flash:
updated: プロフィールが更新されました
change_password:
submit: パスワードの変更
flash:
success: パスワードが変更されました
registration:
check_email: '%email% 宛にメールを送信しました。メールに記載された確認 URL にアクセスして、アカウントを有効化してください。'
confirmed: '%username% さんのアカウントの確認が完了しました。'
back: 元のページに戻る
submit: 登録
flash:
user_created: ユーザーの作成が完了しました
email:
subject: '%username% さん、ようこそ!'
message: |
こんにちは %username% さん!
アカウントを有効化するには、次の確認 URL へアクセスしてください %confirmationUrl%
このリンクは一度しか使用できません。
開発チーム
resetting:
check_email: |
メールが送信されました。送信されたリンクをクリックしてパスワードをリセットして下さい。
注意:パスワードのリセットは %tokenLifetime% 時間のあいだに一度しか要求できません。
もしメールが届かない場合は、迷惑メールフォルダをご確認いただき、その上で再度やり直して下さい。
request:
username: ユーザー名またはメールアドレス
submit: パスワードのリセット
reset:
submit: パスワードの変更
flash:
success: パスワードのリセットが完了しました
email:
subject: パスワードのリセット
message: |
こんにちは %username% さん!
パスワードをリセットするには、次のリセット URL へアクセスしてください %confirmationUrl%
開発チーム
# Global strings
layout:
logout: ログアウト
login: ログイン
register: 登録
logged_in_as: '%username% でログイン中'
form:
group_name: グループ名
username: ユーザー名
email: メールアドレス
current_password: 現在のパスワード
password: パスワード
password_confirmation: 確認
new_password: 新しいパスワード
new_password_confirmation: 確認

View File

@@ -0,0 +1,77 @@
group:
edit:
submit: 'Группаны жаңылоо'
show:
name: 'Группанын аталышы'
new:
submit: 'Группаны түзүү'
flash:
updated: 'Группа жаңыланды'
created: 'Группа түзүлдү'
deleted: 'Группа өчүрүлдү'
security:
login:
username: 'Колдонуучунун аты'
password: 'Сырдык сөз'
remember_me: 'Эске тутуу'
submit: Кирүү
profile:
show:
username: 'Колдонуучунун аты'
email: 'Электрондук почтасы'
edit:
submit: Жаңылоо
flash:
updated: 'Колдонуучунун профили жаңыланды'
change_password:
submit: 'Сырдык сөздү өзгөртүү'
flash:
success: 'Сырдык сөз өзгөрүлдү'
registration:
check_email: 'Кат %email% почтасына жөнөтүлдү. Анын ичинде каттону аныктоочу шилтеме бар.'
confirmed: 'Куттуктайбыз %username%, сиздин аккаунтуңуз ийгиликтүү катталды.'
back: 'Мурунку баракчага кайтуу.'
submit: Катталуу
flash:
user_created: 'Колдонуучу ийгиликтүү түзүлдү.'
email:
subject: 'Кош келдиңиз, %username%!'
message: |
Саламатсызбы, %username%!
Регистрацияны анныктоо үчүн %confirmationUrl%
шилтемеси кириңиз.
resetting:
# check_email: 'Кат %email% почтасына жөнөтүлдү. Ал жакта шилтеме бар жана ал шилтемеге кирүү менен сиздин сырдык сөзүңүз өзгөрөт.'
request:
username: 'Колдонуучунун аты'
submit: 'Сырдык сөздү өзгөртүү'
reset:
submit: 'Сырдык сөздү өзгөртүү'
flash:
success: 'Сырдык сөз ийгиликтүү өзгөрдү'
email:
subject: 'Сырдык сөздү өзгөртүү'
message: |
Саламатсызбы, %username%!
Сырдык сөздү өзгөртүү үчүн, сураныч боюнча кириңиз
Ийгилик каалоо менен,
сайттын командасы.
layout:
logout: Чыгуу
login: Кирүү
register: Регистрация
logged_in_as: 'Сиз %username% аты менен кирдиңиз'
form:
group_name: 'Группанын аты'
username: 'Колдонуучунун аты'
email: 'Электрондук почтасы'
current_password: 'Учурдагы сырдык сөз'
password: 'Сырдык сөз'
password_confirmation: 'Сырдык сөздү аныктоо'
new_password: 'Жаңы сырдык сөз'
new_password_confirmation: 'Сырдык сөздү аныктоо'

View File

@@ -0,0 +1,78 @@
group:
edit:
submit: 'Grupp aktualiséieren'
show:
name: Gruppennumm
new:
submit: 'Grupp creéieren'
flash:
updated: 'D''Grupp gouf aktualiséiert.'
created: 'D''Grupp gouf creéiert.'
deleted: 'D''Grupp gouf geläscht.'
security:
login:
username: Benotzernumm
password: Passwuert
remember_me: 'U mech erënneren'
submit: Umellen
profile:
show:
username: Benotzernumm
email: E-Mail
edit:
submit: 'Benotzer aktualiséieren'
flash:
updated: 'De Benotzerprofil gouf aktualiséiert.'
change_password:
submit: 'Passwuert ännern'
flash:
success: 'D''Passwuert gouf geännert.'
registration:
check_email: 'Eng E-Mail gouf un %email% geschéckt. Se enthält e Link deen s Du uklicke muss, fir Däi Benotzerkonto ze bestätegen.'
confirmed: 'Gléckwonsch %username%, Däi Benutzerkonto ass elo bestätegt.'
submit: Registréieren
flash:
user_created: 'De Benotzer gouf erfollegräich creéiert.'
email:
subject: 'Wëllkomm %username%!'
message: |
Hallo %username%!
Fir Däi Benotzerkonto ze bestätegen, besich wann ech gelift d'Säit %confirmationUrl%
Mat beschte Gréiss,
d'Equipe.
resetting:
# check_email: 'Eng E-Mail gouf un %email% geschéckt. Se enthält e Link, deen s Du uklicke muss, fir Däi Passwort zeréckzesetzen.'
request:
username: Benotzernumm
submit: 'Passwuert zerécksetzen'
reset:
submit: 'Passwuert ännern'
flash:
success: 'D''Passwuert gouf erfollegräich zeréckgesat.'
email:
# subject: 'Wëllkomm %username%!'
message: |
Hallo %username%!
Fir Däi Passwuert zeréckzesetzen, besich wann ech gelift d'Säit %confirmationUrl%
Mat beschte Gréiss,
d'Equipe.
layout:
logout: Ofmellen
login: Umellen
register: Registréieren
logged_in_as: 'Ugemellt als %username%'
form:
group_name: Gruppennumm
username: Benotzernumm
email: E-Mail-Adress
current_password: 'Aktuellt Passwuert'
password: Passwuert
password_confirmation: Bestätegung
new_password: 'Neit Passwuert'
new_password_confirmation: Bestätegung

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Atnaujinti grupę'
show:
name: 'Grupės vardas'
new:
submit: 'Sukurti grupę'
flash:
updated: 'Grupė atnaujinta.'
created: 'Grupė sukurta.'
deleted: 'Grupė ištrinta.'
security:
login:
username: 'Naudotojo vardas'
password: Slaptažodis
remember_me: Atsiminti
submit: Prisijungti
profile:
show:
username: 'Naudotojo vardas'
email: 'El. paštas'
edit:
submit: Atnaujinti
flash:
updated: 'Profilis atnaujintas.'
change_password:
submit: 'Keisti slaptažodį'
flash:
success: 'Slaptažodis pakeistas.'
registration:
check_email: 'El. pašto pranešimas išsiųstas adresu %email%. Jame rasite nuorodą, kurią aplankę, aktyvuosite savo paskyrą.'
confirmed: 'Sveikiname, jūsų paskyra aktyvuota.'
back: 'Grįžti atgal'
submit: Registruotis
flash:
user_created: 'Naudotojas sukurtas.'
email:
subject: 'Registracijos patvirtinimas'
message: |
Sveiki %username%!
Norėdami aktyvuoti savo paskyrą, apsilankykite adresu %confirmationUrl%
Pagarbiai,
Komanda.
resetting:
# check_email: 'El. pašto pranešimas išsiųstas adresu %email%. Jame rasite nuorodą, kurią paspaudę, galėsite pakeisti savo slaptažodį.'
request:
username: 'Naudotojo vardas arba el. paštas'
submit: Tęsti
reset:
submit: 'Pakeisti slaptažodį'
flash:
success: 'Slaptažodis pakeistas.'
email:
subject: 'Slaptažodžio keitimas'
message: |
Sveiki %username%!
Norėdami pakeisti savo slaptažodį, apsilankykite adresu %confirmationUrl%
Pagarbiai,
Komanda.
layout:
logout: Atsijungti
login: Prisijungti
register: Registruotis
logged_in_as: 'Prisijungęs kaip %username%'
form:
group_name: 'Grupės vardas'
username: 'Naudotojo vardas'
email: 'El. paštas'
current_password: 'Dabartinis slaptažodis'
password: Slaptažodis
password_confirmation: 'Pakartoti slaptažodį'
new_password: 'Naujas slaptažodis'
new_password_confirmation: 'Naujas slaptažodis (pakartoti)'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Saglabāt izmaiņas'
show:
name: 'Grupas nosaukums'
new:
submit: 'Izveidot grupu'
flash:
updated: 'Grupa tika atjaunināta.'
created: 'Grupa tika izveidota.'
deleted: 'Grupa tika dzēsta.'
security:
login:
username: Lietotājvārds
password: Parole
remember_me: 'Atcerēties mani'
submit: Ienākt
profile:
show:
username: Lietotājvārds
email: E-pasts
edit:
submit: Saglabāt
flash:
updated: 'Profila izmaiņas tika saglabātas.'
change_password:
submit: 'Nomainīt paroli'
flash:
success: 'Parole tika nomainīta.'
registration:
check_email: 'Uz %email% tika nosūtīts e-pasts ar aktivizācijas saiti. Lūdzu sekojiet tai, lai aktivizētu savu kontu.'
confirmed: 'Apsveicam, %username%, tavs konts tika aktivizēts!'
back: 'Atpakaļ uz sākotnējo lapu.'
submit: Reģistrēties
flash:
user_created: 'Lietotājs tika izveidots.'
email:
subject: 'Sveiki, %username%!'
message: |
Sveiks, %username%!
Lai pabeigtu aktivizēt savu kontu, lūdzu apmeklē %confirmationUrl%
Jauku dienu,
lapas kolektīvs.
resetting:
# check_email: 'Uz %email% tika nosūtīts e-pasts ar saiti, kurai jāseko, lai atiestatītu paroli.'
request:
username: 'Lietotājvārds vai e-pasta adrese'
submit: 'Atiestatīt paroli'
reset:
submit: 'Nomainīt paroli'
flash:
success: 'Parole tika atiestatīta.'
email:
subject: 'Paroles atiestatīšana'
message: |
Sveiki, %username%!
Lai atiestatītu savu paroli, lūdzu apmeklē %confirmationUrl%
Jauku dienu,
lapas kolektīvs.
layout:
logout: Iziet
login: Ienākt
register: Reģistrēties
logged_in_as: 'Autorizējies kā %username%'
form:
group_name: 'Grupas nosaukums'
username: Lietotājvārds
email: E-pasts
current_password: 'Esošā parole'
password: Parole
password_confirmation: Atkārtoti
new_password: 'Jaunā parole'
new_password_confirmation: Atkārtoti

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Oppdater gruppe'
show:
name: Gruppenavn
new:
submit: 'Opprett gruppe'
flash:
updated: 'Gruppen har blitt oppdatert'
created: 'Gruppen har blitt opprettet'
deleted: 'Gruppen har blitt slettet'
security:
login:
username: Brukernavn
password: Passord
remember_me: 'Husk meg'
submit: 'Logg inn'
profile:
show:
username: Brukernavn
email: Epost
edit:
submit: Oppdater
flash:
updated: 'Profilen har blitt oppdatert'
change_password:
submit: 'Endre passord'
flash:
success: 'Passordet har blitt endret'
registration:
check_email: 'En epost har blitt sendt til %email%. Den inneholder en aktiveringslenke du må klikke på for å aktivere kontoen din.'
confirmed: 'Gratulerer %username%, din konto er nå aktivert.'
back: 'Tilbake til den opprinnelige siden.'
submit: Registrer
flash:
user_created: 'Brukeren har blitt opprettet'
email:
subject: 'Velkommen %username%!'
message: |
Hallo %username%!
For å fullføre aktiveringen av din konto - vennligst besøk %confirmationUrl%
Med vennlig hilsen,
Teamet.
resetting:
# check_email: 'En epost har blitt sendt til %email%. Den inneholder en lenke du må klikke på for å tilbakestille passordet.'
request:
username: 'Brukernavn eller epostadresse'
submit: 'Tilbakestill passord'
reset:
submit: 'Endre passord'
flash:
success: 'Passordet har blitt tilbakestilt'
email:
subject: 'Tilbakestill Passord'
message: |
Hallo %username%!
For å tilbakestille ditt passord - vennligst besøk %confirmationUrl%
Med vennlig hilsen,
Teamet.
layout:
logout: 'Logg ut'
login: 'Logg inn'
register: Registrer
logged_in_as: 'Logget inn som %username%'
form:
group_name: Gruppenavn
username: Brukernavn
email: Epost
current_password: 'Nåværende passord'
password: Passord
password_confirmation: Verifisering
new_password: 'Nytt passord'
new_password_confirmation: Verifisering

View File

@@ -0,0 +1,84 @@
group:
edit:
submit: 'Groep bijwerken'
show:
name: 'Groep naam'
new:
submit: 'Groep aanmaken'
flash:
updated: 'De groep is bijgewerkt.'
created: 'De groep is aangemaakt.'
deleted: 'De groep is verwijderd.'
security:
login:
username: Gebruikersnaam
password: Wachtwoord
remember_me: 'Onthoud mijn gegevens'
submit: Inloggen
profile:
show:
username: Gebruikersnaam
email: E-mail
edit:
submit: Bijwerken
flash:
updated: 'Het profiel is bijgewerkt.'
change_password:
submit: 'Wachtwoord wijzigen'
flash:
success: 'Het wachtwoord is gewijzigd.'
registration:
check_email: 'Er is een e-mail verstuurd naar %email%, met een link om uw account te activeren.'
confirmed: 'Gefeliciteerd %username%, uw account is nu geactiveerd.'
back: 'Terug naar de oorspronkelijke pagina.'
submit: Registreer
flash:
user_created: 'De gebruiker is succesvol aangemaakt.'
email:
subject: 'Welkom %username%!'
message: |
Hallo %username%!
U moet uw account nog valideren, ga naar %confirmationUrl%
Vriendelijke groeten,
het Team.
resetting:
check_email: |
Er werd een email gestuurd. De email bevat een link om je wachtwoord te resetten.
Opgelet: Je kan pas na %tokenLifetime% uur een nieuw wachtwoord aanvragen.
Indien je geen email ontvangen hebt, controleer dan zeker je spam folder of probeer opnieuw.
request:
username: 'Gebruikersnaam of e-mailadres'
submit: 'Reset wachtwoord'
reset:
submit: 'Wijzig wachtwoord'
flash:
success: 'Het wachtwoord is succesvol gereset.'
email:
subject: 'Reset wachtwoord'
message: |
Hallo %username%!
Om uw wachtwoord te resetten, klikt u op de volgende link %confirmationUrl%
Met vriendelijke groet,
het Team.
layout:
logout: Uitloggen
login: Inloggen
register: Registreer
logged_in_as: 'Ingelogd als %username%'
form:
group_name: 'Groep naam'
username: Gebruikersnaam
email: E-mail
current_password: 'Huidig wachtwoord'
password: Wachtwoord
password_confirmation: 'Wachtwoord controle'
new_password: 'Nieuw wachtwoord'
new_password_confirmation: 'Wachtwoord controle'

View File

@@ -0,0 +1,84 @@
group:
edit:
submit: 'Edytuj grupę'
show:
name: 'Nazwa grupy'
new:
submit: 'Utwórz grupę'
flash:
updated: 'Grupa została zaktualizowana.'
created: 'Grupa została utworzona.'
deleted: 'Grupa została usunięta.'
security:
login:
username: 'Nazwa użytkownika'
password: Hasło
remember_me: 'Nie wylogowuj mnie'
submit: Zaloguj
profile:
show:
username: 'Nazwa użytkownika'
email: E-mail
edit:
submit: 'Edytuj użytkownika'
flash:
updated: 'Zapisano zmiany w profilu.'
change_password:
submit: 'Zmień hasło'
flash:
success: 'Hasło zostało zmienione.'
registration:
check_email: 'Na adres %email% wysłano wiadomość e-mail. Zawiera ona link, na który należy kliknąć, aby aktywować konto.'
confirmed: 'Gratulacje %username%, potwierdziłeś konto.'
back: 'Powrót do poprzedniej strony.'
submit: Zarejestruj
flash:
user_created: 'Stworzono użytkownika.'
email:
subject: 'Witaj %username%!'
message: |
Cześć %username%!
Aby potwierdzić swoje konto - proszę przejść do %confirmationUrl%
Pozdrawiamy,
Zespół.
resetting:
check_email: |
E-mail został wysłany. Zawiera on link do formularza zmiany hasła.
Uwaga: Możesz zresetować hasło tylko jeden raz w ciągu %tokenLifetime% godzin.
Sprawdź swoją skrzynkę pocztową, jeśli jednak nie widzisz wiadomości od nas, sprawdź folder spam lub spróbuj ponownie później.
request:
username: 'Nazwa użytkownika lub e-mail'
submit: 'Resetuj hasło'
reset:
submit: 'Zmień hasło'
flash:
success: 'Hasło zostało zresetowane.'
email:
subject: 'Resetowanie hasła'
message: |
Cześć %username%!
Aby zresetować hasło - proszę przejść do %confirmationUrl%
Pozdrawiamy,
Zespół.
layout:
logout: Wyloguj
login: Zaloguj
register: Zarejestruj
logged_in_as: 'Zalogowano jako %username%'
form:
group_name: 'Nazwa grupy'
username: 'Nazwa użytkownika'
email: E-mail
current_password: 'Obecne hasło'
password: Hasło
password_confirmation: 'Powtórz hasło'
new_password: 'Nowe hasło'
new_password_confirmation: 'Powtórz hasło'

View File

@@ -0,0 +1,84 @@
group:
edit:
submit: 'Atualizar Grupo'
show:
name: 'Nome do Grupo'
new:
submit: 'Criar Grupo'
flash:
updated: 'O grupo foi atualizado'
created: 'O grupo foi criado'
deleted: 'O grupo foi apagado'
security:
login:
username: 'Utilizador'
password: 'Password'
remember_me: 'Lembrar-me'
submit: 'Entrar'
profile:
show:
username: 'Utilizador'
email: 'Email'
edit:
submit: 'Atualizar conta'
flash:
updated: 'O perfil foi atualizado'
change_password:
submit: 'Mudar a password'
flash:
success: 'A password foi alterada'
registration:
check_email: 'Foi enviado um email para %email%. Este contém um link de ativação que terá de visitar para ativar a sua conta.'
confirmed: 'Parabéns %username%, a sua conta foi confirmada.'
back: 'Voltar para a página anterior.'
submit: 'Registar'
flash:
user_created: 'O utilizador foi criado com sucesso'
email:
subject: 'Bem-vindo(a) %username%!'
message: |
Olá %username%!
Para completar a validação da sua conta, por favor visite o seguinte link: %confirmationUrl%
Cumprimentos,
A equipa.
resetting:
check_email: |
Foi enviado um email. Este contém um link que terá de visitar para recuperar a sua password.
Nota: Só poderá voltar a pedir para recuperar a sua password dentro de %tokenLifetime% horas.
Se não receber o email verifique a pasta de spam do seu cliente de email ou tente novamente.
request:
username: 'Utilizador ou endereço de email'
submit: 'Recuperar password'
reset:
submit: 'Alterar password'
flash:
success: 'A password foi recuperada com sucesso'
email:
subject: 'Recuperar password'
message: |
Olá %username%!
Para recuperar a password, por favor aceda a %confirmationUrl%
Cumprimentos,
A equipa.
# Global strings
layout:
logout: 'Sair'
login: 'Entrar'
register: 'Registar'
logged_in_as: 'Entrou como %username%'
form:
group_name: 'Nome do Grupo'
username: 'Utilizador'
email: 'Email'
current_password: 'Password atual'
password: 'Password'
password_confirmation: 'Verificar password'
new_password: 'Nova password'
new_password_confirmation: 'Verificar a nova password'

View File

@@ -0,0 +1,83 @@
group:
edit:
submit: 'Atualizar Grupo'
show:
name: 'Nome do Grupo'
new:
submit: 'Criar Grupo'
flash:
updated: 'O grupo foi atualizado.'
created: 'O grupo foi criado.'
deleted: 'O grupo foi removido.'
security:
login:
username: Usuário
password: Senha
remember_me: 'Permanecer conectado'
submit: Entrar
profile:
show:
username: Usuário
email: Email
edit:
submit: Atualizar
flash:
updated: 'O perfil foi atualizado.'
change_password:
submit: 'Alterar senha'
flash:
success: 'A senha foi alterada.'
registration:
check_email: 'Um email foi enviado para o endereço %email%. Para ativar a sua conta, clique no link na mensagem.'
confirmed: 'Parabéns, %username%. A sua conta foi ativada.'
back: 'Retornar para a página de origem.'
submit: Registrar
flash:
user_created: 'O usuário foi criado com sucesso.'
email:
subject: 'Bem-vindo(a), %username%!'
message: |
Olá, %username%!
Para completar a validação da sua conta, clique no link: %confirmationUrl%
Atenciosamente,
a Equipe.
resetting:
check_email: |
Um email foi enviado. Ele contem um link que deve ser acessado para resetar sua senha.
Nota: Você apenas poderá requisitar uma nova senha dentro de %tokenLifetime% horas.
Se você não receber sua senha, cheque sua pasta de spam ou tente novamente.
request:
username: 'Usuário ou email'
submit: 'Recuperar senha'
reset:
submit: 'Alterar senha'
flash:
success: 'A senha foi redefinida com sucesso.'
email:
subject: 'Redefinir senha'
message: |
Olá, %username%!
Para redefinir sua senha, clique no link: %confirmationUrl%
Atenciosamente,
a Equipe.
layout:
logout: Sair
login: Entrar
register: Registrar
logged_in_as: 'Conectado como %username%'
form:
group_name: 'Nome do Grupo'
username: Usuário
email: Email
current_password: 'Senha atual'
password: Senha
password_confirmation: 'Repita a senha'
new_password: 'Nova senha'
new_password_confirmation: 'Repita a nova senha'

View File

@@ -0,0 +1,91 @@
group:
edit:
submit: 'Actualizează grupul'
show:
name: 'Numele grupului'
new:
submit: 'Creează grup'
flash:
updated: 'Grupul a fost actualizat.'
created: 'Grupul a fost creat.'
deleted: 'Grupul a fost șters.'
security:
login:
username: 'Nume de utilizator'
password: Parola
remember_me: 'Ține-mă minte'
submit: Autentificare
profile:
show:
username: 'Numele de utilizator'
email: Email
edit:
submit: Actualizează
flash:
updated: 'Profilul a fost actualizat.'
change_password:
submit: 'Schimbă parola'
flash:
success: 'Parola a fost schimbată.'
registration:
check_email: |
Un email a fost trimis către %email%. Conține un link de activare pe care trebuie să îl accesezi pentru a-ți activa contul.
confirmed: 'Felicitări %username%, contul tău a fost activat.'
back: 'Înapoi la pagina de la care ai venit.'
submit: Înregistrează-te
flash:
user_created: 'Utilizatorul a fost creat cu succes.'
email:
subject: 'Bine ai venit %username%!'
message: |
Salut %username%!
Pentru a-ți activa contul - accesează %confirmationUrl%
Acest link poate fi folosit numai o singură dată pentru a activa contul.
Toate cele bune,
Echipa
resetting:
check_email: |
Un email a fost trimis. Conține un link pe care trebuie să îl accesezi pentru a-ți reseta parola.
Notă: Poți cere o nouă parolă numai în următoarele %tokenLifetime% ore.
Daca nu primești email-ul verifica in spam sau mai incearca o dată.
request:
username: 'Numele de utilizator sau adresa de email'
submit: 'Resetează parola'
reset:
submit: 'Schimbă parola'
flash:
success: 'Parola a fost resetată cu succes.'
email:
subject: 'Resetare parolă'
message: |
Salut %username%!
Pentru a-ți reseta parola - accesează %confirmationUrl%
Toate cele bune,
Echipa
# Global strings
layout:
logout: 'Ieșire'
login: Autentificare
register: Înregistrare
logged_in_as: 'Autentificat ca %username%'
form:
group_name: 'Numele grupului'
username: 'Nume de utilizator'
email: Email
current_password: 'Parola curentă'
password: Parolă
password_confirmation: 'Verificare parolă'
new_password: 'Parola nouă'
new_password_confirmation: 'Verificare parolă nouă'

View File

@@ -0,0 +1,87 @@
group:
edit:
submit: 'Обновить группу'
show:
name: 'Название группы'
new:
submit: 'Создать группу'
flash:
updated: 'Группа обновлена.'
created: 'Группа создана.'
deleted: 'Группа удалена.'
security:
login:
username: 'Имя пользователя'
password: Пароль
remember_me: 'Запомнить меня'
submit: Войти
profile:
show:
username: 'Имя пользователя'
email: 'Электронная почта'
edit:
submit: Обновить
flash:
updated: 'Профиль пользователя обновлен.'
change_password:
submit: 'Изменить пароль'
flash:
success: 'Пароль изменен.'
registration:
check_email: 'Письмо отправлено на адрес %email%. В нём содержится ссылка, по которой вы можете подтвердить свою регистрацию.'
confirmed: 'Поздравляем %username%, ваш аккаунт подтвержден.'
back: 'Вернуться на предыдущую страницу.'
submit: Зарегистрироваться
flash:
user_created: 'Пользователь успешно создан.'
email:
subject: 'Добро пожаловать, %username%!'
message: |
Приветствуем, %username%!
Для подтверждения вашей регистрации, пройдите по ссылке %confirmationUrl%
Эта ссылка может быть использована только единожды для подтверждения вашей учетной записи.
С наилучшими пожеланиями,
команда сайта.
resetting:
check_email: |
Письмо отправлено. Оно содержит ссылку, при переходе по которой ваш пароль будет сброшен.
Заметьте, вы сможете запросить новый пароль только через %tokenLifetime% часов.
Если вы не получили письмо, проверьте папку Спам или попробуйте снова.
request:
username: 'Имя пользователя или электронная почта'
submit: 'Сбросить пароль'
reset:
submit: 'Изменить пароль'
flash:
success: 'Пароль успешно сброшен.'
email:
subject: 'Сброс пароля'
message: |
Приветствуем, %username%!
Для сброса пароля, пожалуйста, пройдите по ссылке %confirmationUrl%
С наилучшими пожеланиями,
команда сайта.
layout:
logout: Выход
login: Вход
register: Регистрация
logged_in_as: 'Вы вошли как %username%'
form:
group_name: 'Название группы'
username: 'Имя пользователя'
email: 'Электронная почта'
current_password: 'Текущий пароль'
password: Пароль
password_confirmation: 'Подтвердите пароль'
new_password: 'Новый пароль'
new_password_confirmation: 'Подтвердите пароль'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 'Upraviť skupinu'
show:
name: 'Názov skupiny'
new:
submit: 'Vytvoriť skupinu'
flash:
updated: 'Skupina bola úspešne zmenená.'
created: 'Skupina bola úspešne vytvorená.'
deleted: 'Skupina bola úspešne vymazaná.'
security:
login:
username: 'Používateľské meno'
password: Heslo
remember_me: 'Zapamätať si'
submit: Prihlásenie
profile:
show:
username: 'Používateľské meno'
email: Email
edit:
submit: Upraviť
flash:
updated: 'Profil bol úspešne zmenený.'
change_password:
submit: 'Zmena hesla'
flash:
success: 'Heslo bolo úspešne zmenené.'
registration:
check_email: 'Aktivačný email bol zaslaný na adresu %email%. V tele správy je aktivačný link, na ktorý treba kliknúť pre úspešné dokončenie registrácie.'
confirmed: 'Gratulujeme %username%, Vaše konto bolo aktivované.'
back: 'Návrat na predchádzajúcu stránku.'
submit: Registrácia
flash:
user_created: 'Vaše konto bolo úspešne vytvorené.'
email:
subject: 'Vitaj %username%!'
message: |
Ahoj %username%!
Pre ukončenie registrácie, prosím klikni na nasledovný link: %confirmationUrl%
S pozdravom,
Realizačný tím
resetting:
# check_email: 'Postup pre zmenu hesla bol zaslaný na adresu %email%. Správa obsahuje link, na ktorú treba kliknúť pre úspešné dokončenie zmeny hesla.'
request:
username: 'Používateľské meno alebo emailová adresa'
submit: 'Obnova hesla'
reset:
submit: 'Zmeniť heslo'
flash:
success: 'Heslo bolo úspešne zmenené.'
email:
subject: 'Vynulovanie hesla'
message: |
Ahoj %username%!
Pre zmenu hesla, klikni prosím na nasledovný link: %confirmationUrl%
S pozdravom,
Realizačný tím
layout:
logout: Odhlásenie
login: Prihlásenie
register: Registrácia
logged_in_as: 'Ste prihlásený ako %username%'
form:
group_name: 'Názov skupiny'
username: 'Používateľské meno'
email: Email
current_password: 'Súčasné heslo'
password: Heslo
password_confirmation: 'Potvrdenie hesla'
new_password: 'Nové heslo'
new_password_confirmation: 'Potvrdenie hesla'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: Shrani
show:
name: 'Ime skupine'
new:
submit: Shrani
flash:
updated: 'Skupina je bila uspešno shranjena.'
created: 'Skupina je bila uspešno ustvarjena.'
deleted: 'Skupina je bila uspešno izbrisana.'
security:
login:
username: 'Uporabniško ime'
password: Geslo
remember_me: 'Zapomni si me'
submit: Prijava
profile:
show:
username: 'Uporabniško ime'
email: Email
edit:
submit: Shrani
flash:
updated: 'Profil je bil uspešno shranjen.'
change_password:
submit: 'Spremeni geslo'
flash:
success: 'Geslo je bilo uspešno spremenjeno.'
registration:
check_email: 'Na %email% smo vam poslali sporočilo s kodo za aktivacijo. Račun aktivirate s klikom na to povezavo.'
confirmed: 'Pozdravljeni %username%, vaš račun je sedaj aktiviran.'
back: 'Nazaj na prvotno stran.'
submit: Registracija
flash:
user_created: 'Uporabnik je bil uspešno ustvarjen.'
email:
subject: 'Dobrodošli %username%!'
message: |
Pozdravljeni %username%!
Za aktivacijo računa prosimo, obiščite %confirmationUrl%
Lep pozdrav,
ekipa.
resetting:
# check_email: 'Na %email% smo vam poslali sporočilo s kodo za spremembo gesla. Geslo boste spremenili po kliku na to povezavo.'
request:
username: 'Uporabniško ime'
submit: 'Spremeni geslo'
reset:
submit: 'Spremeni geslo'
flash:
success: 'Geslo je bilo uspešno spremenjeno.'
email:
subject: 'Sprememba gesla'
message: |
Pozdravljeni %username%!
Za spremembo gesla prosimo, obiščite %confirmationUrl%
Lep pozdrav,
ekipa.
layout:
logout: Odjava
login: Prijava
register: Registracija
logged_in_as: 'Prijavljen kot %username%'
form:
group_name: 'Ime skupine'
username: 'Uporabniško ime'
email: Email
current_password: 'Trenutno geslo'
password: Geslo
password_confirmation: 'Preverjanje gesla'
new_password: 'Novo geslo'
new_password_confirmation: 'Preverjanje gesla'

View File

@@ -0,0 +1,81 @@
group:
edit:
submit: 'Ažuriraj grupu'
show:
name: 'Naziv grupe'
new:
submit: 'Kreiraj grupu'
flash:
updated: 'Grupa je ažurirana.'
created: 'Grupa je kreirana.'
deleted: 'Grupa je obrisana.'
security:
login:
username: 'Korisničko ime'
password: Lozinka
remember_me: 'Zapamti me'
submit: 'Prijavi se'
profile:
show:
username: 'Korisničko ime'
email: 'Adresa e-pošte'
edit:
submit: Ažuriraj
flash:
updated: 'Profil je ažuriran.'
change_password:
submit: 'Izmeni lozinku'
flash:
success: 'Lozinka je izmenjena.'
registration:
check_email: 'Poruka je poslata na adresu %email%. Ona sadrži aktivacioni link koji morate kliknuti da bi aktivirali Vaš nalog.'
confirmed: 'Čestitamo %username%, Vaš nalog je sada aktivan.'
back: 'Nazad na prethodnu stranu.'
submit: 'Registruj se'
flash:
user_created: 'Korisnički nalog je uspešno kreiran.'
email:
subject: 'Dobrodošli %username%!'
message: |
Zdravo %username%!
Da bi aktivirali Vaš nalog posetite %confirmationUrl%
Ovaj link možete upotrebiti samo jednom da biste potvrdili Vaš nalog.
S poštovanjem,
tim sajta.
resetting:
check_email: 'Poruka je poslata na adresu %email%. Ona sadrži link koji morate kliknuti da bi resetovali Vašu lozinku.'
request:
username: 'Korisničko ime ili adresa e-pošte'
submit: 'Resetuj lozinku'
reset:
submit: 'Izmeni lozinku'
flash:
success: 'Lozinka je uspešno resetovana.'
email:
subject: 'Resetovanje lozinke'
message: |
Zdravo %username%!
Da bi resetovali Vašu lozinku posetite %confirmationUrl%
S poštovanjem,
tim sajta.
layout:
logout: Odjavljivanje
login: Prijavljivanje
register: Registracija
logged_in_as: 'Prijavljen kao %username%'
form:
group_name: 'Naziv grupe'
username: 'Korisničko ime'
email: 'Adresa e-pošte'
current_password: 'Trenutna lozinka'
password: Lozinka
password_confirmation: 'Potvrda lozinke'
new_password: 'Nova lozinka'
new_password_confirmation: 'Potvrda lozinke'

View File

@@ -0,0 +1,81 @@
group:
edit:
submit: 'Uppdatera gruppen'
show:
name: Gruppnamn
new:
submit: 'Skapa grupp'
flash:
updated: 'Gruppen har uppdaterats.'
created: 'Gruppen har skapats.'
deleted: 'Gruppen har tagits bort.'
security:
login:
username: Användarnamn
password: Lösenord
remember_me: 'Kom ihåg mig'
submit: 'Logga in'
profile:
show:
username: Användarnamn
email: Epost
edit:
submit: Uppdatera
flash:
updated: 'Profilen har uppdaterats.'
change_password:
submit: 'Ändra lösenord'
flash:
success: 'Lösenordet har ändrats.'
registration:
check_email: 'Ett meddelande har skickats till %email%. Det innehåller en länk som du måste klicka på för att aktivera ditt konto.'
confirmed: 'Grattis %username%, ditt konto är nu aktiverat.'
back: 'Tillbaka till den ursprungliga sidan.'
submit: Registrera
flash:
user_created: 'Användaren har skapats.'
email:
subject: 'Välkommen %username%!'
message: |
Hej %username%!
För att aktivera ditt konto - vänligen besök %confirmationUrl%
Länken kan endast användas en gång för att aktivera ditt konto.
Hälsningar,
Teamet.
resetting:
check_email: 'Ett meddelande har skickats till %email%. Det innehåller en länk som du måste klicka på för att återställa ditt lösenord.'
request:
username: 'Användarnamn eller epost-adress'
submit: 'Återställ lösenord'
reset:
submit: 'Ändra lösenord'
flash:
success: 'Lösenordet har återställts.'
email:
subject: 'Återställ lösenord'
message: |
Hej %username%!
För att återställa ditt lösenord - vänligen besök %confirmationUrl%
Hälsningar,
Teamet.
layout:
logout: 'Logga ut'
login: 'Logga in'
register: Registrera
logged_in_as: 'Inloggad som %username%'
form:
group_name: Gruppnamn
username: Användarnamn
email: Epost
current_password: 'Nuvarande lösenord'
password: Lösenord
password_confirmation: Verifiering
new_password: 'Nytt lösenord'
new_password_confirmation: Verifiering

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: บันทึกการแก้ไข
show:
name: ชื่อกลุ่ม
new:
submit: สร้างกลุ่ม
flash:
updated: กลุ่มถูกแก้ไขแล้ว
created: กลุ่มถูกแก้ไขแล้ว
deleted: กลุ่มถูกแก้ไขแล้ว
security:
login:
username: ชื่อผู้ใช้
password: รหัสผ่าน
remember_me: จำการเข้าระบบ
submit: เข้าระบบ
profile:
show:
username: ชื่อผู้ใช้
email: อีเมล์
edit:
submit: บันทึกการแก้ไข
flash:
updated: ข้อมูลส่วนตัวถูกแก้ไขแล้ว
change_password:
submit: เปลี่ยนรหัสผ่าน
flash:
success: รหัสผ่านถูกแก้ไขแล้ว
registration:
check_email: 'ระบบได้ส่งอีเมลยืนยันการสมัครสมาชิกไปที่ %email% คุณต้องคลิกลิงค์ที่ส่งไปเพื่อยืนยันการสมัคร'
confirmed: 'ยินดีด้วย %username%, บัญชีของคุณถูกยืนยันแล้ว'
back: กลับไปหน้าเดิม
submit: สมัครสมาชิก
flash:
user_created: สร้างผู้ใช้เรียบร้อยแล้ว
email:
subject: 'ยินดีต้อนรับ %username%!'
message: |
สวัสดี %username%!
เพื่อยืนยันการสมัครสมาชิกให้เสร็จสมบูรณ์ กรุณาไปที่ %confirmationUrl%
ด้วยความนับถือ,
ทีมงาน
resetting:
# check_email: 'ระบบได้ส่งอีเมล์การขอเปลี่ยนรหัสผ่านไปที่ %email% คุณต้องคลิกลิงค์ที่ส่งไปเพื่อทำการเปลี่ยนระหัสผ่าน'
request:
username: ชื่อผู้ใช้หรืออีเมล์
submit: เปลี่ยนรหัสผ่าน
reset:
submit: บันทึกการเปลี่ยนแปลงรหัส
flash:
success: เปลี่ยนรหัสผ่านเรียบร้อยแล้ว
email:
subject: การเปลี่ยนรหัสผ่าน
message: |
สวัสดี %username%!
เพื่อดำเนินการเปลี่ยนรหัสผ่านของคุณ กรุณาไปที่ %confirmationUrl%
ด้วยความนับถือ,
ทีมงาน
layout:
logout: ออกจากระบบ
login: เข้าระบบ
register: สมัครสมาชิก
logged_in_as: 'เข้าระบบด้วย %username%'
form:
group_name: ชื่อกลุ่ม
username: ชื่อเข้าระบบ
email: อีเมล์
current_password: รหัสผ่านปัจจุบัน
password: รหัสผ่าน
password_confirmation: ยืนยันรหัสผ่าน
new_password: รหัสผ่านใหม่
new_password_confirmation: ยืนยันรหัสผ่านใหม่

View File

@@ -0,0 +1,85 @@
group:
edit:
submit: 'Grubu Güncelle'
show:
name: 'Grup Adı'
new:
submit: 'Grup Yarat'
flash:
updated: 'Grup Güncellendi.'
created: 'Grup Yaratıldı.'
deleted: 'Grup Silindi.'
security:
login:
username: 'Kullanıcı adı'
password: Parola
remember_me: 'Beni hatırla'
submit: Giriş
profile:
show:
username: 'Kullanıcı adı'
email: 'E-posta adresi'
edit:
submit: Güncelle
flash:
updated: 'Profil Güncellendi.'
change_password:
submit: 'Parolayı Değiştir'
flash:
success: 'Parola değiştirildi.'
registration:
check_email: 'E-posta adresinize hesabınızı aktive etmek için kullanacağınız aktivasyon linkini barındıran bir e-posta gönderildi.'
confirmed: 'Tebrikler %username%. Hesabınız şu anda aktifleştirildi.'
back: 'Asıl sayfaya geri dön.'
submit: 'Kayıt ol'
flash:
user_created: 'Kullanıcı başarıyla yaratıldı.'
email:
subject: 'Hoşgeldin %username%!'
message: |
Hoşgeldiniz %username%!
Hesabınızın aktivasyonunu tamamlamak için lütfen %confirmationUrl%
adresini ziyaret ediniz.
Teşekkürler,
Web Takımı.
resetting:
check_email: |
E-posta adresinize parolanızı sıfırlama adresi bulunan bir e-posta gönderildi.
Not: Yeni şifre talep etmek için %tokenLifetime% saat beklemelisiniz.
E-posta gelmedi ise spam klasörünü kontrol edin veya tekrar deneyin.
request:
username: 'Kullanıcı adı ya da e-posta adresi'
submit: 'Parolayı sıfırla'
reset:
submit: 'Parolayı değiştir'
flash:
success: 'Parola başarıyla değiştirildi.'
email:
subject: 'Parola Yenileme'
message: |
Merhaba %username%!
Parolanızı yenilemek için %confirmationUrl%
adresini ziyaret ediniz.
Teşekkürler,
Web Takımı.
layout:
logout: Çıkış
login: Giriş
register: 'Kayıt ol'
logged_in_as: '%username% olarak giriş yapıldı'
form:
group_name: 'Grup adı'
username: 'Kullanıcı adı'
email: 'E-posta adresi'
current_password: 'Geçerli parola'
password: Parola
password_confirmation: Parola tekrar
new_password: 'Yeni parola'
new_password_confirmation: Yeni parola tekrar

View File

@@ -0,0 +1,85 @@
group:
edit:
submit: 'Оновити групу'
show:
name: 'Назва групи'
new:
submit: 'Створити групу'
flash:
updated: 'Група оновлена.'
created: 'Група створена.'
deleted: 'Група видалена.'
security:
login:
username: 'Ім''я користувача'
password: Пароль
remember_me: 'Запам''ятати мене'
submit: Увійти
profile:
show:
username: 'Ім''я користувача'
email: 'Електронна адреса'
edit:
submit: Оновити
flash:
updated: 'Профіль користувача оновлено.'
change_password:
submit: 'Змінити пароль'
flash:
success: 'Пароль змінено.'
registration:
check_email: 'Листа надіслано на адресу %email%. У ньому міститься посилання, за яким Ви можете підтвердити свою реєстрацію.'
confirmed: 'Вітаємо %username%, Ваш аккаунт підтверджено.'
back: 'Повернутися на попередню сторінку.'
submit: Реєстрація
flash:
user_created: 'Користувач успішно створений.'
email:
subject: 'Вітаємо %username%!'
message: |
Вітаємо %username%!
Для підтверждення Вашої реєстрації, перейдіть за посиланням %confirmationUrl%
Це посилання може бути використано лише один раз для підтвердження Вашого облікового запису.
З найкращими побажаннями,
команда сайту.
resetting:
check_email: |
Лист відправлено. Він містить посилання, при переході за яким Ваш пароль буде скинуто.
Примітка: Ви можете змінити пароль тільки протягом %tokenLifetime% годин.
Якщо Ви не отримали лист то перевірте будь-ласка папку зі спамом.
request:
username: 'Ім''я користувача'
submit: 'Скинути пароль'
reset:
submit: 'Змінити пароль'
flash:
success: 'Пароль успішно скинуто.'
email:
subject: 'Скидання пароля'
message: |
Вітаємо %username%!
Для скидання пароля - будь ласка, перейдіть за посиланням %confirmationUrl%
З найкращими побажаннями,
команда сайту.
layout:
logout: Вихід
login: Вхід
register: Реєстрація
logged_in_as: 'Ви увійшли як %username%'
form:
group_name: 'Назва групи'
username: 'Ім''я користувача'
email: 'Електронна адреса'
current_password: 'Поточний пароль'
password: Пароль
password_confirmation: 'Підтвердіть пароль'
new_password: 'Новий пароль'
new_password_confirmation: 'Підтвердіть пароль'

View File

@@ -0,0 +1,73 @@
group:
edit:
submit: 'Nhóm cập nhật'
show:
name: 'Tên nhóm'
new:
submit: 'Tạo nhóm'
flash:
updated: 'Nhóm đã được cập nhật'
created: 'Nhóm đã được khởi tạo'
deleted: 'Nhóm này đã bị xóa'
security:
login:
username: 'Tên đăng nhập:'
password: 'Mật khẩu:'
remember_me: 'Ghi nhớ thông tin của tôi'
submit: 'Đăng nhập'
profile:
show:
username: 'Tên đăng nhập'
email: Email
edit:
submit: 'Cập nhật'
flash:
updated: 'Hồ sơ cá nhân đã được cập nhật'
change_password:
submit: 'Thay đổi mật khẩu'
flash:
success: 'Mật khẩu đã được thay đổi'
registration:
check_email: 'Một email đã được gửi đến %email%. Nó có chứa một liên kết kích hoạt bạn phải bấm vào để kích hoạt tài khoản của bạn.'
confirmed: 'Chúc mừng %username%, tài khoản của bạn đã được kích hoạt.'
back: 'Quay lại'
submit: 'Đăng ký'
flash:
user_created: 'Người sử dụng đã được khởi tạo'
email:
subject: 'Chào mừng %username%!'
message: 'Xin chào %username%! Để hoàn tất kích hoạt tài khoản của bạn - vui lòng truy cập %confirmationUrl% Cám ơn.'
resetting:
# check_email: 'Một email đã được gửi đến %email%. Có một liên kết bạn phải bấm vào để thiết lập lại mật khẩu của bạn.'
request:
username: 'Tên đăng nhập hoặc địa chỉ email:'
submit: 'Thiết lập lại mật khẩu'
reset:
submit: 'Thay đổi mật khẩu'
flash:
success: 'Các mật khẩu đã được thiết lập lại thành công'
email:
subject: 'Thiết lập lại mật khẩu'
message: 'Xin chào %username%! Để thiết lập lại mật khẩu của bạn - vui lòng truy cập %confirmationUrl% Kính trọng, mỗi thành viên.'
# Global strings
layout:
logout: 'Đăng xuất'
login: 'Đăng nhập'
register: 'Đăng ký'
logged_in_as: 'Đăng nhập như %username%'
form:
group_name: 'Tên nhóm:'
username: 'Tên đăng nhập:'
email: 'Email:'
current_password: 'Mật khẩu hiện tại:'
password: 'Mật khẩu:'
password_confirmation: 'Xác minh:'
new_password: 'Mật khẩu mới:'
new_password_confirmation: 'Xác minh:'

View File

@@ -0,0 +1,79 @@
group:
edit:
submit: 更新小组
show:
name: 小组名称
new:
submit: 创建小组
flash:
updated: 小组已被更新
created: 小组已创建
deleted: 小组已被删除
security:
login:
username: 用户名
password: 密码
remember_me: 自动登录
submit: 登录
profile:
show:
username: 用户名
email: 电子邮箱
edit:
submit: 更新
flash:
updated: 用户信息已更新
change_password:
submit: 修改密码
flash:
success: 密码已成功修改
registration:
check_email: 系统向%email%发送了一封包含激活链接的邮件,请访问该链接以启用你的帐户。
confirmed: '%username%,恭喜你,你的帐户已启用!'
back: 返回前一页面
submit: 注册
flash:
user_created: 用户已创建
email:
subject: '%username%,欢迎你'
message: |
%username%,你好!
要启用你的用户帐号,请访问:%confirmationUrl%
祝好
网站团队
resetting:
# check_email: 系统向%email%发送了一封包含密码重置链接的邮件,请查收。
request:
username: 用户名或邮箱
submit: 重置密码
reset:
submit: 修改密码
flash:
success: 密码已重置。
email:
subject: 重置密码
message: |
%username%,你好!
请访问 %confirmationUrl% 以重置你的帐户密码。
祝好
网站团队
layout:
logout: 退出
login: 登录
register: 注册
logged_in_as: 已登录为:%username%
form:
group_name: 小组名称
username: 用户名
email: 电子邮箱
current_password: 当前密码
password: 密码
password_confirmation: 确认密码
new_password: 新密码
new_password_confirmation: 确认新密码

View File

@@ -0,0 +1,28 @@
fos_user:
username:
already_used: 'الإسم المختار مسجل مسبقا'
blank: 'يرجى تعيين إسم المستخدم'
short: ' إسم المستخدم قصير جدا'
long: ' إسم المستخدم طويل جدا'
email:
already_used: 'البريد الإلكتروني مسجل مسبقا'
blank: 'يرجى تعين البريد الإلكتروني'
short: ' البريد الإلكتروني قصير'
long: ' البريد الإلكتروني طويل'
invalid: 'البريد الإلكتروني غير صحيح'
password:
blank: 'يرجى تعيين كلمة المرور'
short: 'كلمة المرور قصيرة'
mismatch: 'كلمة المرور المدخلة غير مطابقة للكلمة الأصلية'
new_password:
blank: 'يرجى تعيين كلمة مرور جديدة'
short: ' كلمة المرور الجديدة قصيرة'
current_password:
invalid: 'كلمة المرور المدخلة غير صحيحة'
group:
blank: 'يرجى تعيين إسم المجموعة'
short: ' إسم المجموعة قصير جدا'
long: ' إسم المجموعة طويل جدا'
fos_group:
name:
already_used: 'هذا الإسم غير متاح.'

View File

@@ -0,0 +1,24 @@
fos_user:
username:
already_used: 'Потребителското име е заето.'
blank: 'Моля въведете потребителско име.'
short: 'Потребителското име е прекалено късо.'
long: 'Потребителското име е прекалено дълго.'
email:
already_used: 'E-mail адреса е зает.'
blank: 'Моля въведете E-mail адрес.'
short: 'E-mail адреса е прекалено къс.'
long: 'E-mail адреса е прекалено дълъг.'
invalid: 'E-mail адреса е невалиден.'
password:
blank: 'Моля въведете парола.'
short: 'Паролата е прекалено къса.'
new_password:
blank: 'Моля въведете нова парола.'
short: 'Новата парола е прекалено къса.'
current_password:
invalid: 'Въведената парола е невалидна.'
group:
blank: 'Моля въведете име.'
short: 'Името е прекалено късо.'
long: 'Името е прекалено дълго.'

View File

@@ -0,0 +1,28 @@
fos_user:
username:
already_used: 'ব্যবহারকারীর নামটি ইতিমধ্যে ব্যবহার করা হয়েছে'
blank: 'অনুগ্রহ করে ব্যবহারকারীর নাম লিখুন'
short: 'নামটি থুবই ছোট'
long: 'নামটি থুবই বড়'
email:
already_used: 'ই-মেইল টি ইতিমধ্যে ব্যবহার করা হয়েছে'
blank: 'অনুগ্রহ করে একটি ই-মেইল লিখুন'
short: 'ই-মেইল টি থুবই ছোট'
long: 'ই-মেইল টি থুবই বড়'
invalid: 'ই-মেইল টি সঠিক নয়'
password:
blank: 'অনুগ্রহ করে পাসওয়ার্ড লিখুন'
short: 'পাসওয়ার্ড টি থুবই ছোট'
mismatch: 'পাসওয়ার্ডটি মেলেনি'
new_password:
blank: 'অনুগ্রহ করে একটি নতুন পাসওয়ার্ড লিখুন'
short: 'নতুন পাসওয়ার্ড টি থুবই ছোট'
current_password:
invalid: 'পাসওয়ার্ডটি সঠিক নয়'
group:
blank: 'অনুগ্রহ করে একটি নাম লিখুন'
short: 'নামটি থুবই ছোট'
long: 'নামটি থুবই বড়'
fos_group:
name:
already_used: 'নামটি ইতিমধ্যে ব্যবহার করা হয়েছে'

View File

@@ -0,0 +1,28 @@
fos_user:
username:
already_used: 'ব্যবহারকারীর নামটি ইতিমধ্যে ব্যবহার করা হয়েছে'
blank: 'অনুগ্রহ করে ব্যবহারকারীর নাম লিখুন'
short: 'নামটি থুবই ছোট'
long: 'নামটি থুবই বড়'
email:
already_used: 'ই-মেইল টি ইতিমধ্যে ব্যবহার করা হয়েছে'
blank: 'অনুগ্রহ করে একটি ই-মেইল লিখুন'
short: 'ই-মেইল টি থুবই ছোট'
long: 'ই-মেইল টি থুবই বড়'
invalid: 'ই-মেইল টি সঠিক নয়'
password:
blank: 'অনুগ্রহ করে পাসওয়ার্ড লিখুন'
short: 'পাসওয়ার্ড টি থুবই ছোট'
mismatch: 'পাসওয়ার্ডটি মেলেনি'
new_password:
blank: 'অনুগ্রহ করে একটি নতুন পাসওয়ার্ড লিখুন'
short: 'নতুন পাসওয়ার্ড টি থুবই ছোট'
current_password:
invalid: 'পাসওয়ার্ডটি সঠিক নয়'
group:
blank: 'অনুগ্রহ করে একটি নাম লিখুন'
short: 'নামটি থুবই ছোট'
long: 'নামটি থুবই বড়'
fos_group:
name:
already_used: 'নামটি ইতিমধ্যে ব্যবহার করা হয়েছে'

View File

@@ -0,0 +1,28 @@
fos_user:
username:
already_used: 'El nom d''usuari ja està sent utilitzat'
blank: 'Si us plau, introdueixi un nom d''usuari'
short: 'El nom d''usuari és massa curt'
long: 'El nom d''usuari és massa llarg'
email:
already_used: 'L''adreça de correu ja està sent utilitzada'
blank: 'Si us plau, introdueixi una adreça de correu'
short: 'L''adreça de correu és massa curta'
long: 'L''adreça de correu és massa llarga'
invalid: 'L''adreça de correu no és vàlida'
password:
blank: 'Si us plau, introdueixi una contrasenya'
short: 'La contrasenya és massa curta'
mismatch: 'Les dues contrasenyes no coincideixen'
new_password:
blank: 'Si us plau, introdueixi una nova contrasenya'
short: 'La nova contrasenya és massa curta'
current_password:
invalid: 'La contrasenya no és vàlida'
group:
blank: 'Si us plau, introdueix un nom de grup'
short: 'El nom de grup és massa curt'
long: 'El nom de grup és massa llarg'
fos_group:
name:
already_used: 'El nom ja està en ús.'

Some files were not shown because too many files have changed in this diff Show More