├── .gitignore ├── README.md ├── app ├── README.md ├── __init__.py ├── commands │ ├── __init__.py │ └── init_db.py ├── local_settings.py ├── models │ ├── __init__.py │ ├── models.py │ └── user_models.py ├── settings.py ├── static │ └── css │ │ └── global.css ├── templates │ ├── README.md │ ├── common │ │ ├── form_macros.html │ │ └── page_base.html │ ├── flask_user │ │ ├── _macros.html │ │ ├── flask_user_base.html │ │ ├── login.html │ │ ├── member_base.html │ │ ├── public_base.html │ │ └── register.html │ ├── layout.html │ └── pages │ │ ├── home_page.html │ │ ├── user_page.html │ │ └── user_profile_page.html ├── translations │ ├── babel.cfg │ ├── de │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── en │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── es │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── fa │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── fi │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── flask_user.pot │ ├── fr │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── it │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── messages.pot │ ├── nl │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── ru │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── sv │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ ├── tr │ │ └── LC_MESSAGES │ │ │ ├── flask_user.mo │ │ │ └── flask_user.po │ └── zh │ │ └── LC_MESSAGES │ │ ├── flask_user.mo │ │ └── flask_user.po └── views │ ├── __init__.py │ ├── members_views.py │ └── public_views.py ├── fabfile.py ├── manage.py ├── migrations ├── README.md ├── alembic.ini ├── env.py ├── script.py.mako └── versions │ └── 0001c8ac1a69_initial_version.py ├── requirements.txt ├── tests ├── .coveragerc ├── README.md ├── __init__.py ├── conftest.py └── test_page_urls.py └── tox.ini /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | app.sqlite 3 | .cache 4 | *.pyc 5 | env 6 | venv 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![alt Flask-Admin ](https://habrastorage.org/webt/z7/px/gy/z7pxgyd_xbxh2mdm1_unc38o0bo.png) 2 | ![alt Flask-User ](https://habrastorage.org/webt/hq/ep/wj/hqepwjev4pucazix5ztzqw9pvk0.png) 3 | 4 | # Flask-User and Flask-Admin in one app 5 | 6 | This code base serves as starting point for writing your next Flask application. 7 | 8 | ## Code characteristics 9 | 10 | * Well organized directories with lots of comments 11 | * app 12 | * commands 13 | * models 14 | * static 15 | * templates 16 | * views 17 | * tests 18 | * Includes test framework (`py.test` and `tox`) 19 | * Includes database migration framework (`alembic`) 20 | * Sends error emails to admins for unhandled exceptions 21 | 22 | 23 | ## Setting up a development environment 24 | 25 | We assume that you have `git` and `virtualenv` installed. 26 | 27 | cd ~ 28 | virtualenv env 29 | . env/bin/activate 30 | mkdir -p ~/www/my_app 31 | cd www 32 | git clone https://github.com/Alexmod/Flask-User-and-Flask-admin.git my_app 33 | cd my_app/ 34 | pip install -r requirements.txt 35 | 36 | 37 | # Configuring SMTP 38 | 39 | Edit the `local_settings.py` file. 40 | 41 | Specifically set all the MAIL_... settings to match your SMTP settings 42 | 43 | Note that Google's SMTP server requires the configuration of "less secure apps". 44 | See https://support.google.com/accounts/answer/6010255?hl=en 45 | 46 | Note that Yahoo's SMTP server requires the configuration of "Allow apps that use less secure sign in". 47 | See https://help.yahoo.com/kb/SLN27791.html 48 | 49 | 50 | ## Initializing the Database 51 | 52 | # Create DB tables and populate the roles and users tables 53 | python manage.py init_db 54 | 55 | # Or if you have Fabric installed: 56 | fab init_db 57 | 58 | 59 | ## Running the app 60 | 61 | # Start the Flask development web server 62 | python manage.py runserver 63 | 64 | # Or if you have Fabric installed: 65 | fab runserver 66 | 67 | Point your web browser to http://localhost:5000/ 68 | 69 | You can make use of the following users: 70 | - email `user@example.com` with password `Password1`. 71 | - email `admin@example.com` with password `Password1`. 72 | 73 | 74 | ## Running the automated tests 75 | 76 | # Start the Flask development web server 77 | py.test tests/ 78 | 79 | # Or if you have Fabric installed: 80 | fab test 81 | 82 | 83 | ## Trouble shooting 84 | 85 | If you make changes in the Models and run into DB schema issues, delete the sqlite DB file `app.sqlite`. 86 | -------------------------------------------------------------------------------- /app/README.md: -------------------------------------------------------------------------------- 1 | # app directory 2 | 3 | This directory contains the Flask application code. 4 | 5 | The code has been organized into the following sub-directories: 6 | 7 | # Sub-directories 8 | commands # Commands made available to manage.py 9 | models # Database Models and their Forms 10 | static # Static asset files that will be mapped to the "/static/" URL 11 | templates # Jinja2 HTML template files 12 | views # View functions 13 | 14 | -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | from flask import Flask 2 | from flask_mail import Mail 3 | from flask_migrate import Migrate 4 | from flask_sqlalchemy import SQLAlchemy 5 | from flask_user import UserManager, SQLAlchemyAdapter 6 | from flask_wtf.csrf import CSRFProtect 7 | from flask_babel import Babel 8 | from flask_bootstrap import Bootstrap 9 | from flask_admin import Admin 10 | from flask_admin.contrib.fileadmin import FileAdmin 11 | from flask_admin.base import MenuLink 12 | from flask_admin.contrib.sqla import ModelView 13 | import os.path as op 14 | 15 | 16 | # Instantiate Flask extensions 17 | db = SQLAlchemy() 18 | csrf_protect = CSRFProtect() 19 | mail = Mail() 20 | migrate = Migrate() 21 | babel = Babel() 22 | 23 | 24 | def create_app(extra_config_settings={}): 25 | # Create a Flask applicaction. 26 | 27 | # Instantiate Flask 28 | app = Flask(__name__) 29 | 30 | # Load App Config settings 31 | # Load common settings from 'app/settings.py' file 32 | app.config.from_object('app.settings') 33 | # Load local settings from 'app/local_settings.py' 34 | app.config.from_object('app.local_settings') 35 | # Load extra config settings from 'extra_config_settings' param 36 | app.config.update(extra_config_settings) 37 | 38 | # Setup Flask-Extensions -- do this _after_ app config has been loaded 39 | 40 | # Setup Flask-SQLAlchemy 41 | db.init_app(app) 42 | 43 | # Setup Flask-Migrate 44 | migrate.init_app(app, db) 45 | 46 | # Setup Flask-Mail 47 | mail.init_app(app) 48 | 49 | # Setup WTForms CSRFProtect 50 | csrf_protect.init_app(app) 51 | 52 | # Register blueprints 53 | from app.views.public_views import public_blueprint 54 | app.register_blueprint(public_blueprint) 55 | from app.views.members_views import members_blueprint 56 | app.register_blueprint(members_blueprint) 57 | # from app.views.admin_views import admin_blueprint 58 | # app.register_blueprint(admin_blueprint) 59 | 60 | # Define bootstrap_is_hidden_field for flask-bootstrap's bootstrap_wtf.html 61 | from wtforms.fields import HiddenField 62 | 63 | def is_hidden_field_filter(field): 64 | return isinstance(field, HiddenField) 65 | 66 | app.jinja_env.globals['bootstrap_is_hidden_field'] = is_hidden_field_filter 67 | 68 | # Setup an error-logger to send emails to app.config.ADMINS 69 | init_email_error_handler(app) 70 | 71 | # Setup Flask-User to handle user account related forms 72 | from .models.user_models import User, MyRegisterForm 73 | from .views.members_views import user_profile_page 74 | db_adapter = SQLAlchemyAdapter(db, User) # Setup the SQLAlchemy DB Adapter 75 | UserManager( 76 | db_adapter, app, # Init Flask-User and bind to app 77 | register_form=MyRegisterForm, # Custom register form UserProfile fields 78 | user_profile_view_function=user_profile_page, 79 | ) 80 | 81 | babel.init_app(app) # Initialize Flask-Babel 82 | 83 | Bootstrap(app) # Initialize flask_bootstrap 84 | 85 | # Admin part 86 | class AdminUserView(ModelView): 87 | can_create = False 88 | column_display_pk = True 89 | column_exclude_list = ('password') 90 | form_overrides = dict(password=HiddenField) 91 | 92 | class AdmUsersRolesView(ModelView): 93 | column_display_pk = True 94 | 95 | class AdmRolesView(ModelView): 96 | column_display_pk = True 97 | 98 | from .models.models import AdmUsers, AdmUsersRoles, AdmRoles 99 | admin = Admin(app, template_mode='bootstrap3') 100 | admin.add_view(AdminUserView(AdmUsers, db.session, name='Users')) 101 | admin.add_view(AdmRolesView(AdmUsersRoles, db.session, 102 | name='Roles-User')) 103 | admin.add_view(AdmUsersRolesView(AdmRoles, db.session, name='Role')) 104 | path = op.join(op.dirname(__file__), 'static') 105 | admin.add_view(FileAdmin(path, '/static/', name='Files')) 106 | admin.add_link(MenuLink(name='Profile', endpoint='user.profile')) 107 | admin.add_link(MenuLink(name='Logout', endpoint='user.logout')) 108 | 109 | return app 110 | 111 | 112 | def init_email_error_handler(app): 113 | # Initialize a logger to send emails on error-level messages. 114 | # Unhandled exceptions will now send an email message to app.config.ADMINS. 115 | if app.debug: 116 | return # Do not send error emails while developing 117 | 118 | # Retrieve email settings from app.config 119 | host = app.config['MAIL_SERVER'] 120 | port = app.config['MAIL_PORT'] 121 | from_addr = app.config['MAIL_DEFAULT_SENDER'] 122 | username = app.config['MAIL_USERNAME'] 123 | password = app.config['MAIL_PASSWORD'] 124 | secure = () if app.config.get('MAIL_USE_TLS') else None 125 | 126 | # Retrieve app settings from app.config 127 | to_addr_list = app.config['ADMINS'] 128 | subject = app.config.get('APP_SYSTEM_ERROR_SUBJECT_LINE', 'System Error') 129 | 130 | # Setup an SMTP mail handler for error-level messages 131 | import logging 132 | from logging.handlers import SMTPHandler 133 | 134 | mail_handler = SMTPHandler( 135 | mailhost=(host, port), # Mail host and port 136 | fromaddr=from_addr, # From address 137 | toaddrs=to_addr_list, # To address 138 | subject=subject, # Subject line 139 | credentials=(username, password), # Credentials 140 | secure=secure, 141 | ) 142 | 143 | # Log errors using: app.logger.error('Some error message') 144 | mail_handler.setLevel(logging.ERROR) 145 | app.logger.addHandler(mail_handler) 146 | -------------------------------------------------------------------------------- /app/commands/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | 4 | from .init_db import InitDbCommand -------------------------------------------------------------------------------- /app/commands/init_db.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | from flask import current_app 3 | from flask_script import Command 4 | from app import db 5 | from app.models.user_models import User, Role 6 | 7 | 8 | class InitDbCommand(Command): 9 | """ Initialize the database.""" 10 | 11 | def run(self): 12 | init_db() 13 | 14 | 15 | def init_db(): 16 | """ Initialize the database.""" 17 | db.drop_all() 18 | db.create_all() 19 | create_users() 20 | 21 | 22 | def create_users(): 23 | """ Create users """ 24 | 25 | # Create all tables 26 | db.create_all() 27 | 28 | # Adding roles 29 | admin_role = find_or_create_role('admin', 'Admin') 30 | 31 | # Add users 32 | find_or_create_user('admin@example.com', 'Password1', admin_role) 33 | find_or_create_user('member@example.com', 'Password1') 34 | 35 | # Save to DB 36 | db.session.commit() 37 | 38 | 39 | def find_or_create_role(name, label): 40 | """ Find existing role or create new role """ 41 | role = Role.query.filter(Role.name == name).first() 42 | if not role: 43 | role = Role(name=name, label=label) 44 | db.session.add(role) 45 | return role 46 | 47 | 48 | def find_or_create_user(email, password, role=None): 49 | """ Find existing user or create new user """ 50 | user = User.query.filter(User.email == email).first() 51 | if not user: 52 | user = User(email=email, 53 | password=current_app.user_manager.hash_password(password), 54 | active=True, 55 | confirmed_at=datetime.datetime.utcnow()) 56 | if role: 57 | user.roles.append(role) 58 | db.session.add(user) 59 | return user 60 | -------------------------------------------------------------------------------- /app/local_settings.py: -------------------------------------------------------------------------------- 1 | from datetime import timedelta 2 | import os 3 | 4 | # ***************************** 5 | # Environment specific settings 6 | # ***************************** 7 | 8 | # DO NOT use "DEBUG = True" in production environments 9 | DEBUG = True 10 | 11 | # DO NOT use Unsecure Secrets in production environments 12 | # Generate a safe one with: 13 | # python -c "import os; print(repr(os.urandom(24)));" 14 | SECRET_KEY = 'DO_NOT_use_Unsecure_Secrets_in_production_environments' 15 | COOKIE_SECURE = 'Secure' 16 | COOKIE_DURATION = timedelta(days=365) 17 | 18 | # SQLAlchemy settings 19 | SQLALCHEMY_DATABASE_URI = 'sqlite:///../app.sqlite' 20 | SQLALCHEMY_TRACK_MODIFICATIONS = False # Avoids a SQLAlchemy Warning 21 | 22 | BABEL_TRANSLATION_DIRECTORIES = os.path.join(os.path.abspath( 23 | os.path.dirname(__file__)), 'translations/') 24 | 25 | BABEL_DEFAULT_LOCALE = 'ru' 26 | 27 | # Flask-Mail settings 28 | # For smtp.gmail.com to work, you MUST set "Allow less secure apps" 29 | # to ON in Google Accounts. 30 | # Change it in https://myaccount.google.com/security#connectedapps 31 | # (near the bottom). 32 | 33 | 34 | MAIL_SERVER = 'smtp.gmail.com' 35 | MAIL_PORT = 587 36 | MAIL_USE_SSL = False 37 | MAIL_USE_TLS = True 38 | MAIL_USERNAME = 'yourname@gmail.com' 39 | MAIL_PASSWORD = 'password' 40 | MAIL_DEFAULT_SENDER = '"Your Name" ' 41 | 42 | ADMINS = [ 43 | '"Admin One" ', 44 | ] 45 | -------------------------------------------------------------------------------- /app/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/models/__init__.py -------------------------------------------------------------------------------- /app/models/models.py: -------------------------------------------------------------------------------- 1 | from flask_sqlalchemy import SQLAlchemy 2 | db = SQLAlchemy() 3 | 4 | 5 | class AdmUsers(db.Model): 6 | __tablename__ = 'users' 7 | id = db.Column(db.Integer, primary_key=True) 8 | 9 | email = db.Column(db.Unicode(255), nullable=False, 10 | server_default=u'', unique=True) 11 | confirmed_at = db.Column(db.DateTime()) 12 | password = db.Column(db.String(255), nullable=False, server_default='') 13 | active = db.Column(db.Boolean(), nullable=False, server_default='0') 14 | 15 | active = db.Column('is_active', db.Boolean(), 16 | nullable=False, server_default='0') 17 | 18 | 19 | class AdmUsersRoles(db.Model): 20 | __tablename__ = 'users_roles' 21 | id = db.Column(db.Integer(), primary_key=True) 22 | user_id = db.Column(db.Integer()) 23 | role_id = db.Column(db.Integer()) 24 | 25 | 26 | class AdmRoles(db.Model): 27 | __tablename__ = 'roles' 28 | id = db.Column(db.Integer(), primary_key=True) 29 | name = db.Column(db.String(50), nullable=False, 30 | server_default=u'', unique=True) 31 | # for display purposes 32 | label = db.Column(db.Unicode(255), server_default=u'') 33 | -------------------------------------------------------------------------------- /app/models/user_models.py: -------------------------------------------------------------------------------- 1 | from flask_user import UserMixin 2 | from flask_user.forms import RegisterForm 3 | from flask_wtf import FlaskForm 4 | from app import db 5 | 6 | # Define the User data model. Make sure to add the flask_user.UserMixin !! 7 | 8 | 9 | class User(db.Model, UserMixin): 10 | __tablename__ = 'users' 11 | id = db.Column(db.Integer, primary_key=True) 12 | 13 | # User authentication information (required for Flask-User) 14 | email = db.Column(db.Unicode(255), nullable=False, 15 | server_default=u'', unique=True) 16 | confirmed_at = db.Column(db.DateTime()) 17 | password = db.Column(db.String(255), nullable=False, server_default='') 18 | active = db.Column(db.Boolean(), nullable=False, server_default='0') 19 | 20 | # User information 21 | active = db.Column('is_active', db.Boolean(), 22 | nullable=False, server_default='0') 23 | 24 | # Relationships 25 | roles = db.relationship('Role', secondary='users_roles', 26 | backref=db.backref('users', lazy='dynamic')) 27 | 28 | 29 | # Define the Role data model 30 | class Role(db.Model): 31 | __tablename__ = 'roles' 32 | id = db.Column(db.Integer(), primary_key=True) 33 | name = db.Column(db.String(50), nullable=False, 34 | server_default=u'', unique=True) # for @roles_accepted() 35 | # for display purposes 36 | label = db.Column(db.Unicode(255), server_default=u'') 37 | 38 | 39 | # Define the UserRoles association model 40 | 41 | 42 | class UsersRoles(db.Model): 43 | __tablename__ = 'users_roles' 44 | id = db.Column(db.Integer(), primary_key=True) 45 | user_id = db.Column(db.Integer(), db.ForeignKey( 46 | 'users.id', ondelete='CASCADE')) 47 | role_id = db.Column(db.Integer(), db.ForeignKey( 48 | 'roles.id', ondelete='CASCADE')) 49 | 50 | 51 | # Define the User registration form 52 | # It augments the Flask-User RegisterForm with additional fields 53 | class MyRegisterForm(RegisterForm): 54 | pass 55 | 56 | # Define the User profile form 57 | 58 | 59 | class UserProfileForm(FlaskForm): 60 | pass 61 | -------------------------------------------------------------------------------- /app/settings.py: -------------------------------------------------------------------------------- 1 | # Settings common to all environments (development|staging|production) 2 | # Place environment specific settings in env_settings.py 3 | # An example file (env_settings_example.py) can be used as a starting point 4 | 5 | # Application settings 6 | APP_NAME = "Example.com" 7 | APP_SYSTEM_ERROR_SUBJECT_LINE = APP_NAME + " system error" 8 | 9 | # Flask settings 10 | CSRF_ENABLED = True 11 | 12 | # Flask-SQLAlchemy settings 13 | SQLALCHEMY_TRACK_MODIFICATIONS = False 14 | 15 | # Flask-User settings 16 | USER_APP_NAME = APP_NAME 17 | USER_ENABLE_CHANGE_PASSWORD = True # Allow users to change their password 18 | USER_ENABLE_CHANGE_USERNAME = False # Allow users to change their username 19 | USER_ENABLE_CONFIRM_EMAIL = True # Force users to confirm their email 20 | USER_ENABLE_FORGOT_PASSWORD = True # Allow users to reset their passwords 21 | USER_ENABLE_EMAIL = True # Register with Email 22 | USER_ENABLE_REGISTRATION = True # Allow new users to register 23 | USER_ENABLE_RETYPE_PASSWORD = True # Prompt for `retype password` in: 24 | USER_ENABLE_USERNAME = False # Register and Login with username 25 | USER_AFTER_LOGIN_ENDPOINT = 'members.member_page' 26 | USER_AFTER_LOGOUT_ENDPOINT = 'public.home_page' 27 | -------------------------------------------------------------------------------- /app/static/css/global.css: -------------------------------------------------------------------------------- 1 | /* Sticky footer styles 2 | * -------------------------------------------------- */ 3 | 4 | html { 5 | position: relative; 6 | min-height: 100%; 7 | } 8 | 9 | body { 10 | /* Margin bottom by footer height */ 11 | margin-bottom: 60px; 12 | } 13 | 14 | .footer { 15 | position: absolute; 16 | bottom: 0; 17 | width: 100%; 18 | /* Set the fixed height of the footer here */ 19 | height: 60px; 20 | background-color: #f5f5f5; 21 | } 22 | 23 | body>.container { 24 | padding: 60px 15px 0; 25 | } 26 | 27 | .container .text-muted { 28 | margin: 20px 0; 29 | } 30 | 31 | .footer>.container { 32 | padding-right: 15px; 33 | padding-left: 15px; 34 | } 35 | 36 | code { 37 | font-size: 80%; 38 | } 39 | -------------------------------------------------------------------------------- /app/templates/README.md: -------------------------------------------------------------------------------- 1 | # This directory contains Jinja2 template files 2 | 3 | This Flask application uses the Jinja2 templating engine to render 4 | data into HTML files. 5 | 6 | The template files are organized into the following directories: 7 | 8 | common # Common base template files and macros 9 | flask_user # Flask-User template files (register, login, etc.) 10 | pages # Template files for web pages 11 | 12 | Flask-User makes use of standard template files that reside in 13 | `PATH/TO/VIRTUALENV/lib/PYTHONVERSION/site-packages/flask_user/templates/flask_user/`. 14 | These standard templates can be overruled by placing a copy in the `app/templates/flask_user/` directory. 15 | -------------------------------------------------------------------------------- /app/templates/common/form_macros.html: -------------------------------------------------------------------------------- 1 | {% macro render_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%} 2 |
3 | {% if field.type != 'HiddenField' and label_visible %} 4 | {% if not label %}{% set label=field.label.text %}{% endif %} 5 | 6 | {% endif %} 7 | {{ field(class_='form-control', **kwargs) }} 8 | {% if field.errors %} 9 | {% for e in field.errors %} 10 |

{{ e }}

11 | {% endfor %} 12 | {% endif %} 13 |
14 | {%- endmacro %} 15 | 16 | {% macro render_checkbox_field(field, label=None) -%} 17 | {% if not label %}{% set label=field.label.text %}{% endif %} 18 |
19 | 22 |
23 | {%- endmacro %} 24 | 25 | {% macro render_radio_field(field) -%} 26 | {% for value, label, checked in field.iter_choices() %} 27 |
28 | 32 |
33 | {% endfor %} 34 | {%- endmacro %} 35 | 36 | {% macro render_submit_field(field, label=None, tabindex=None) -%} 37 | {% if not label %}{% set label=field.label.text %}{% endif %} 38 | {##} 39 | 42 | {%- endmacro %} 43 | -------------------------------------------------------------------------------- /app/templates/common/page_base.html: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | -------------------------------------------------------------------------------- /app/templates/flask_user/_macros.html: -------------------------------------------------------------------------------- 1 | {% macro render_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%} 2 |
3 | {% if field.type != 'HiddenField' and label_visible %} 4 | {% if not label %}{% set label=field.label.text %}{% endif %} 5 | 6 | {% endif %} 7 | {{ field(class_='form-control', **kwargs) }} 8 | {% if field.errors %} 9 | {% for e in field.errors %} 10 |

{{ e }}

11 | {% endfor %} 12 | {% endif %} 13 |
14 | {%- endmacro %} 15 | 16 | {% macro render_checkbox_field(field, label=None) -%} 17 | {% if not label %}{% set label=field.label.text %}{% endif %} 18 |
19 | 22 |
23 | {%- endmacro %} 24 | 25 | {% macro render_radio_field(field) -%} 26 | {% for value, label, checked in field.iter_choices() %} 27 |
28 | 32 |
33 | {% endfor %} 34 | {%- endmacro %} 35 | 36 | {% macro render_submit_field(field, label=None, tabindex=None) -%} 37 | {% if not label %}{% set label=field.label.text %}{% endif %} 38 | {##} 39 | 42 | {%- endmacro %} 43 | -------------------------------------------------------------------------------- /app/templates/flask_user/flask_user_base.html: -------------------------------------------------------------------------------- 1 | {% extends "layout.html" %} 2 | 3 | 4 | {% block pre_content %} 5 |
6 |
7 |
8 | {% endblock %} 9 | 10 | 11 | {% block post_content %} 12 |
13 |
14 |
15 | {% endblock %} -------------------------------------------------------------------------------- /app/templates/flask_user/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/public_base.html' %} 2 | 3 | {% block content %} 4 | {% from "flask_user/_macros.html" import render_field, render_checkbox_field, render_submit_field %} 5 |

{%trans%}Sign in{%endtrans%}

6 | 7 |
8 | {{ form.hidden_tag() }} 9 | 10 | {# Username or Email field #} 11 | {% set field = form.username if user_manager.enable_username else form.email %} 12 |
13 | {# Label on left, "New here? Register." on right #} 14 |
15 |
16 | 17 |
18 |
19 | {% if user_manager.enable_register and not user_manager.require_invitation %} 20 | 21 | {%trans%}New here? Register.{%endtrans%} 22 | {% endif %} 23 |
24 |
25 | {{ field(class_='form-control', tabindex=110) }} 26 | {% if field.errors %} 27 | {% for e in field.errors %} 28 |

{{ e }}

29 | {% endfor %} 30 | {% endif %} 31 |
32 | 33 | {# Password field #} 34 | {% set field = form.password %} 35 |
36 | {# Label on left, "Forgot your Password?" on right #} 37 |
38 |
39 | 40 |
41 |
42 | {% if user_manager.enable_forgot_password %} 43 | 44 | {%trans%}Forgot your Password?{%endtrans%} 45 | {% endif %} 46 |
47 |
48 | {{ field(class_='form-control', tabindex=120) }} 49 | {% if field.errors %} 50 | {% for e in field.errors %} 51 |

{{ e }}

52 | {% endfor %} 53 | {% endif %} 54 |
55 | 56 | {# Remember me #} 57 | {% if user_manager.enable_remember_me %} 58 | {{ render_checkbox_field(login_form.remember_me, tabindex=130) }} 59 | {% endif %} 60 | 61 | {# Submit button #} 62 | {{ render_submit_field(form.submit, tabindex=180) }} 63 |
64 | 65 | {% endblock %} 66 | -------------------------------------------------------------------------------- /app/templates/flask_user/member_base.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/flask_user_base.html' %} 2 | -------------------------------------------------------------------------------- /app/templates/flask_user/public_base.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/flask_user_base.html' %} 2 | -------------------------------------------------------------------------------- /app/templates/flask_user/register.html: -------------------------------------------------------------------------------- 1 | {% extends 'flask_user/public_base.html' %} 2 | 3 | {% block content %} 4 | {% from "flask_user/_macros.html" import render_field, render_submit_field %} 5 |

{% trans %}Register{% endtrans %}

6 | 7 | 8 |
9 | {{ form.hidden_tag() }} 10 | 11 | {# Username or Email #} 12 | {% set field = form.username if user_manager.enable_username else form.email %} 13 |
14 | {# Label on left, "Already registered? Sign in." on right #} 15 |
16 |
17 | 18 |
19 |
20 | {% if user_manager.enable_register %} 21 | 22 | {%trans%}Already registered? Sign in.{%endtrans%} 23 | {% endif %} 24 |
25 |
26 | {{ field(class_='form-control', tabindex=210) }} 27 | {% if field.errors %} 28 | {% for e in field.errors %} 29 |

{{ _(e) }}

30 | {% endfor %} 31 | {% endif %} 32 |
33 | 34 | {% if user_manager.enable_email and user_manager.enable_username %} 35 | {{ render_field(form.email, tabindex=220) }} 36 | {% endif %} 37 | 38 | {# 39 | Если нужны Имя и Фамилия надо еще расскоментарить в user_models.py 40 | {{ render_field(form.first_name, tabindex=240) }} 41 | 42 | {{ render_field(form.last_name, tabindex=250) }} 43 | #} 44 | 45 | {{ render_field(form.password, tabindex=260) }} 46 | 47 | {% if user_manager.enable_retype_password %} 48 | {{ render_field(form.retype_password, tabindex=270) }} 49 | {% endif %} 50 | 51 | {{ render_submit_field(form.submit, tabindex=280) }} 52 |
53 | 54 | 55 | {% endblock %} 56 | -------------------------------------------------------------------------------- /app/templates/layout.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "bootstrap/base.html" %} 3 | {% block title %}This is an example page{% endblock %} 4 | {% import "bootstrap/fixes.html" as fixes %} 5 | {% block head %} 6 | {{super()}} 7 | {{fixes.ie8()}} 8 | {% endblock %} 9 | 10 | {% block styles %} 11 | {{super()}} 12 | 13 | {% endblock %} 14 | 15 | {% block body %} 16 | 17 | {% block navbar %} 18 | 50 | 51 | {% endblock %} 52 | 53 | 54 | 55 |
56 |
57 | 58 | {% import "bootstrap/utils.html" as utils %} {{ utils.flashed_messages(dismissible=True, container=False) }} 59 | {% block content %}{% endblock %} 60 | 61 |
62 |
63 | 64 |
65 |
66 |

© {{ user_manager.app_name }}

67 |
68 |
69 | 70 | {% block scripts %} 71 | {{super()}} 72 | {% endblock %} 73 | 74 | 75 | 76 | {% endblock %} 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /app/templates/pages/home_page.html: -------------------------------------------------------------------------------- 1 | {% extends "common/page_base.html" %} 2 | 3 | {% block content %} 4 |

{%trans%}Home Page{%endtrans%}

5 |

{%trans%}Register{%endtrans%}

6 |

{%trans%}Sign in{%endtrans%}

7 |

{%trans%}Home Page{%endtrans%} (accessible to anyone)

8 |

{%trans%}Member Page{%endtrans%} (login_required: member@example.com / Password1)

9 |

{%trans%}Admin Page{%endtrans%} (roles_required: admin@example.com / Password1)

10 |

{%trans%}Sign out{%endtrans%}

11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /app/templates/pages/user_page.html: -------------------------------------------------------------------------------- 1 | {% extends "common/page_base.html" %} {# common/page_base.html extends layout.html #} 2 | 3 | {% block content %} 4 |

{%trans%}Members page{%endtrans%}

5 | {% endblock %} 6 | -------------------------------------------------------------------------------- /app/templates/pages/user_profile_page.html: -------------------------------------------------------------------------------- 1 | {% extends "common/page_base.html" %} {# common/page_base.html extends layout.html #} 2 | 3 | {% block content %} 4 |

{{ _('User profile') }}

5 | 6 |

{{ _('Change password') }}

7 | 8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /app/translations/babel.cfg: -------------------------------------------------------------------------------- 1 | [python: **.py] 2 | [jinja2: **/templates/**.html] 3 | extensions=jinja2.ext.autoescape,jinja2.ext.with_ 4 | -------------------------------------------------------------------------------- /app/translations/de/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/de/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/de/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # German translations for PROJECT. 2 | # Copyright (C) 2015 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2017-08-27 03:37-0700\n" 12 | "Last-Translator: Simon Allendörfer \n" 13 | "Language: de\n" 14 | "Language-Team: de \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | "Das Passwort muss mindestens 6 Zeichen enthalten, ein Kleinbuchstabe, ein" 27 | " Großbuchstabe und eine Zahl" 28 | 29 | #: flask_user/forms.py:47 30 | msgid "Username must be at least 3 characters long" 31 | msgstr "Nutzername muss mindestens 3 Zeichen lang sein" 32 | 33 | #: flask_user/forms.py:52 34 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 35 | msgstr "Nutzername darf nur Buchstaben, Zahlen, '-', '.' und '_' enthalten" 36 | 37 | #: flask_user/forms.py:58 38 | msgid "This Username is already in use. Please try another one." 39 | msgstr "Dieser Nutzername ist bereits vergeben. Bitte versuchen Sie einen anderen." 40 | 41 | #: flask_user/forms.py:65 42 | msgid "This Email is already in use. Please try another one." 43 | msgstr "" 44 | "Diese E-Mail-Adresse wird bereits genutzt. Bitte versuchen Sie eine " 45 | "andere." 46 | 47 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 48 | #: flask_user/forms.py:260 flask_user/forms.py:336 49 | msgid "Email" 50 | msgstr "E-Mail-Adresse" 51 | 52 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 53 | #: flask_user/forms.py:337 54 | msgid "Email is required" 55 | msgstr "E-Mail-Adresse wird benötigt" 56 | 57 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 58 | #: flask_user/forms.py:338 59 | msgid "Invalid Email" 60 | msgstr "Ungültige E-Mail-Adresse" 61 | 62 | #: flask_user/forms.py:76 63 | msgid "Add Email" 64 | msgstr "E-Mail-Adresse hinzufügen" 65 | 66 | #: flask_user/forms.py:79 flask_user/forms.py:122 67 | msgid "Old Password" 68 | msgstr "Altes Passwort" 69 | 70 | #: flask_user/forms.py:80 flask_user/forms.py:123 71 | msgid "Old Password is required" 72 | msgstr "Altes Passwort wird benötigt" 73 | 74 | #: flask_user/forms.py:82 flask_user/forms.py:310 75 | msgid "New Password" 76 | msgstr "Neues Passwort" 77 | 78 | #: flask_user/forms.py:83 flask_user/forms.py:311 79 | msgid "New Password is required" 80 | msgstr "Neues Passwort wird benötigt" 81 | 82 | #: flask_user/forms.py:85 flask_user/forms.py:312 83 | msgid "Retype New Password" 84 | msgstr "Neues Passwort erneut eingeben" 85 | 86 | #: flask_user/forms.py:86 flask_user/forms.py:313 87 | msgid "New Password and Retype Password did not match" 88 | msgstr "Neues Passwort und Wiederholung stimmen nicht überein" 89 | 90 | #: flask_user/forms.py:89 flask_user/forms.py:315 91 | #: flask_user/templates/flask_user/change_password.html:5 92 | #: flask_user/templates/flask_user/user_profile.html:11 93 | msgid "Change password" 94 | msgstr "Passwort ändern" 95 | 96 | #: flask_user/forms.py:111 flask_user/forms.py:145 97 | msgid "Old Password is incorrect" 98 | msgstr "Altes Passwort ist falsch" 99 | 100 | #: flask_user/forms.py:118 101 | msgid "New Username" 102 | msgstr "Neuer Nutzername" 103 | 104 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 105 | msgid "Username is required" 106 | msgstr "Nutzername wird benötigt" 107 | 108 | #: flask_user/forms.py:126 109 | #: flask_user/templates/flask_user/change_username.html:5 110 | #: flask_user/templates/flask_user/user_profile.html:8 111 | msgid "Change username" 112 | msgstr "Nutzername ändern" 113 | 114 | #: flask_user/forms.py:152 flask_user/forms.py:303 115 | msgid "Your email address" 116 | msgstr "Ihre E-Mail-Adresse" 117 | 118 | #: flask_user/forms.py:153 flask_user/forms.py:304 119 | msgid "Email address is required" 120 | msgstr "E-Mail-Adresse wird benötigt" 121 | 122 | #: flask_user/forms.py:154 flask_user/forms.py:305 123 | msgid "Invalid Email address" 124 | msgstr "Ungültige E-Mail-Adresse" 125 | 126 | #: flask_user/forms.py:156 127 | msgid "Send reset password email" 128 | msgstr "E-Mail zur Passwortzurücksetzung senden" 129 | 130 | #: flask_user/forms.py:163 flask_user/forms.py:237 131 | #, python-format 132 | msgid "%(username_or_email)s does not exist" 133 | msgstr "%(username_or_email)s existiert nicht" 134 | 135 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 136 | msgid "Username" 137 | msgstr "Nutzername" 138 | 139 | #: flask_user/forms.py:177 flask_user/forms.py:264 140 | msgid "Password" 141 | msgstr "Passwort" 142 | 143 | #: flask_user/forms.py:178 flask_user/forms.py:265 144 | msgid "Password is required" 145 | msgstr "Passwort wird benötigt" 146 | 147 | #: flask_user/forms.py:180 148 | msgid "Remember me" 149 | msgstr "Angemeldet bleiben" 150 | 151 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 152 | #: flask_user/templates/flask_user/login_or_register.html:9 153 | msgid "Sign in" 154 | msgstr "Anmelden" 155 | 156 | #: flask_user/forms.py:189 157 | msgid "Username or Email" 158 | msgstr "Nutzername oder E-Mail-Adresse" 159 | 160 | #: flask_user/forms.py:226 161 | msgid "Username/Email" 162 | msgstr "Nutzername/E-Mail-Adresse" 163 | 164 | #: flask_user/forms.py:240 165 | msgid "Incorrect Password" 166 | msgstr "Passwort falsch" 167 | 168 | #: flask_user/forms.py:244 169 | #, python-format 170 | msgid "Incorrect %(username_or_email)s and/or Password" 171 | msgstr "%(username_or_email)s und/oder Passwort falsch" 172 | 173 | #: flask_user/forms.py:266 174 | msgid "Retype Password" 175 | msgstr "Passwort-Wiederholung" 176 | 177 | #: flask_user/forms.py:267 178 | msgid "Password and Retype Password did not match" 179 | msgstr "Passwort und Passwort-Wiederholung stimmten nicht überein" 180 | 181 | #: flask_user/forms.py:268 182 | msgid "Token" 183 | msgstr "Token" 184 | 185 | #: flask_user/forms.py:270 186 | #: flask_user/templates/flask_user/login_or_register.html:41 187 | #: flask_user/templates/flask_user/register.html:5 188 | msgid "Register" 189 | msgstr "Registrieren" 190 | 191 | #: flask_user/forms.py:307 192 | msgid "Resend email confirmation email" 193 | msgstr "Bestätigungs-E-Mail erneut senden" 194 | 195 | #: flask_user/forms.py:340 196 | msgid "Invite!" 197 | msgstr "Einladen!" 198 | 199 | #: flask_user/translations.py:74 200 | msgid "Home Page" 201 | msgstr "Homepage" 202 | 203 | #: flask_user/translations.py:75 204 | msgid "Profile Page" 205 | msgstr "Profilseite" 206 | 207 | #: flask_user/translations.py:76 208 | msgid "Special Page" 209 | msgstr "Spezialseite" 210 | 211 | #: flask_user/views.py:46 212 | msgid "Your confirmation token has expired." 213 | msgstr "Ihr Bestätigungscode ist abgelaufen." 214 | 215 | #: flask_user/views.py:50 flask_user/views.py:70 216 | msgid "Invalid confirmation token." 217 | msgstr "Ungültiger Bestätigungscode." 218 | 219 | #: flask_user/views.py:77 220 | msgid "Your email has been confirmed." 221 | msgstr "Ihre E-Mail-Adresse wurde bestätigt." 222 | 223 | #: flask_user/views.py:115 224 | msgid "Your password has been changed successfully." 225 | msgstr "Ihr Passwort wurde erfolgreich geändert." 226 | 227 | #: flask_user/views.py:153 228 | #, python-format 229 | msgid "Your username has been changed to '%(username)s'." 230 | msgstr "Ihr Nutzername wurde zu '%(username)s' geändert." 231 | 232 | #: flask_user/views.py:221 233 | #, python-format 234 | msgid "" 235 | "A reset password email has been sent to '%(email)s'. Open that email and " 236 | "follow the instructions to reset your password." 237 | msgstr "" 238 | "Eine E-Mail zum Zurücksetzen des Passworts ist an '%(email)s' gesendet " 239 | "worden. Folgen Sie den Anweisungen in der E-Mail um Ihr Passwort " 240 | "zurückzusetzen." 241 | 242 | #: flask_user/views.py:293 243 | msgid "You have signed out successfully." 244 | msgstr "Sie haben sich erfolgreich abgemeldet." 245 | 246 | #: flask_user/views.py:534 247 | msgid "Invitation has been sent." 248 | msgstr "Einladung wurde versendet." 249 | 250 | #: flask_user/views.py:578 251 | msgid "Your reset password token has expired." 252 | msgstr "Ihr Passwortzurücksetzungscode ist abgelaufen." 253 | 254 | #: flask_user/views.py:582 255 | msgid "Your reset password token is invalid." 256 | msgstr "Ihr Passwortzurücksetzungscode ist ungültig." 257 | 258 | #: flask_user/views.py:609 259 | msgid "Your password has been reset successfully." 260 | msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt." 261 | 262 | #: flask_user/views.py:626 263 | #, python-format 264 | msgid "You must confirm your email to access '%(url)s'." 265 | msgstr "Sie müssen Ihre E-Mail-Adresse bestätigen um '%(url)s' aufrufen zu können." 266 | 267 | #: flask_user/views.py:638 268 | #, python-format 269 | msgid "You must be signed in to access '%(url)s'." 270 | msgstr "Sie müssen angemeldet sein um '%(url)s' aufrufen zu können." 271 | 272 | #: flask_user/views.py:649 273 | #, python-format 274 | msgid "You do not have permission to access '%(url)s'." 275 | msgstr "Sie haben nicht die nötigen Berechtigungen um '%(url)s' aufzurufen." 276 | 277 | #: flask_user/views.py:680 flask_user/views.py:701 278 | #, python-format 279 | msgid "" 280 | "A confirmation email has been sent to %(email)s with instructions to " 281 | "complete your registration." 282 | msgstr "" 283 | "Eine Bestätigungs-E-Mail mit Anweisungen zum Abschließen der " 284 | "Registrierung wurde an %(email)s gesendet." 285 | 286 | #: flask_user/views.py:682 287 | msgid "You have registered successfully." 288 | msgstr "Sie haben sich erfolgreich registriert." 289 | 290 | #: flask_user/views.py:710 291 | msgid "Your account has not been enabled." 292 | msgstr "Ihr Konto wurde nicht freigeschaltet." 293 | 294 | #: flask_user/views.py:719 295 | #, python-format 296 | msgid "" 297 | "Your email address has not yet been confirmed. Check your email Inbox and" 298 | " Spam folders for the confirmation email or Re-send " 299 | "confirmation email." 300 | msgstr "" 301 | "Ihre E-Mail-Adresse wurde noch nicht bestätigt. Bitte sehen Sie in Ihrem " 302 | "Posteingang und Spam-Ordner nach der Bestätigungs-E-Mail oder senden Sie die Bestätigung erneut." 304 | 305 | #: flask_user/views.py:730 306 | msgid "You have signed in successfully." 307 | msgstr "Sie haben sich erfolgreich angemeldet." 308 | 309 | #: flask_user/templates/flask_user/forgot_password.html:5 310 | msgid "Forgot Password" 311 | msgstr "Passwort vergessen" 312 | 313 | #: flask_user/templates/flask_user/invite.html:5 314 | msgid "Invite User" 315 | msgstr "Nutzer einladen" 316 | 317 | #: flask_user/templates/flask_user/login.html:21 318 | msgid "New here? Register." 319 | msgstr "Neu hier? Jetzt Registrieren." 320 | 321 | #: flask_user/templates/flask_user/login.html:44 322 | #: flask_user/templates/flask_user/login_or_register.html:34 323 | msgid "Forgot your Password?" 324 | msgstr "Passwort vergessen?" 325 | 326 | #: flask_user/templates/flask_user/manage_emails.html:5 327 | msgid "Manage Emails" 328 | msgstr "E-Mail-Adressen verwalten" 329 | 330 | #: flask_user/templates/flask_user/register.html:21 331 | msgid "Already registered? Sign in." 332 | msgstr "Bereits registriert? Hier anmelden." 333 | 334 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 335 | msgid "Resend Confirmation Email" 336 | msgstr "Bestätigungs-E-Mail erneut senden" 337 | 338 | #: flask_user/templates/flask_user/reset_password.html:5 339 | msgid "Reset Password" 340 | msgstr "Passwort zurücksetzen" 341 | 342 | #: flask_user/templates/flask_user/user_profile.html:5 343 | msgid "User profile" 344 | msgstr "Nutzerprofil" 345 | 346 | -------------------------------------------------------------------------------- /app/translations/en/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/en/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/en/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # English translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2015-08-03 13:37-0800\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language: en\n" 14 | "Language-Team: en \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | 27 | #: flask_user/forms.py:47 28 | msgid "Username must be at least 3 characters long" 29 | msgstr "" 30 | 31 | #: flask_user/forms.py:52 32 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 33 | msgstr "" 34 | 35 | #: flask_user/forms.py:58 36 | msgid "This Username is already in use. Please try another one." 37 | msgstr "" 38 | 39 | #: flask_user/forms.py:65 40 | msgid "This Email is already in use. Please try another one." 41 | msgstr "" 42 | 43 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 44 | #: flask_user/forms.py:260 flask_user/forms.py:336 45 | msgid "Email" 46 | msgstr "" 47 | 48 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 49 | #: flask_user/forms.py:337 50 | msgid "Email is required" 51 | msgstr "" 52 | 53 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 54 | #: flask_user/forms.py:338 55 | msgid "Invalid Email" 56 | msgstr "" 57 | 58 | #: flask_user/forms.py:76 59 | msgid "Add Email" 60 | msgstr "" 61 | 62 | #: flask_user/forms.py:79 flask_user/forms.py:122 63 | msgid "Old Password" 64 | msgstr "" 65 | 66 | #: flask_user/forms.py:80 flask_user/forms.py:123 67 | msgid "Old Password is required" 68 | msgstr "" 69 | 70 | #: flask_user/forms.py:82 flask_user/forms.py:310 71 | msgid "New Password" 72 | msgstr "" 73 | 74 | #: flask_user/forms.py:83 flask_user/forms.py:311 75 | msgid "New Password is required" 76 | msgstr "" 77 | 78 | #: flask_user/forms.py:85 flask_user/forms.py:312 79 | msgid "Retype New Password" 80 | msgstr "" 81 | 82 | #: flask_user/forms.py:86 flask_user/forms.py:313 83 | msgid "New Password and Retype Password did not match" 84 | msgstr "" 85 | 86 | #: flask_user/forms.py:89 flask_user/forms.py:315 87 | #: flask_user/templates/flask_user/change_password.html:5 88 | #: flask_user/templates/flask_user/user_profile.html:11 89 | msgid "Change password" 90 | msgstr "" 91 | 92 | #: flask_user/forms.py:111 flask_user/forms.py:145 93 | msgid "Old Password is incorrect" 94 | msgstr "" 95 | 96 | #: flask_user/forms.py:118 97 | msgid "New Username" 98 | msgstr "" 99 | 100 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 101 | msgid "Username is required" 102 | msgstr "" 103 | 104 | #: flask_user/forms.py:126 105 | #: flask_user/templates/flask_user/change_username.html:5 106 | #: flask_user/templates/flask_user/user_profile.html:8 107 | msgid "Change username" 108 | msgstr "" 109 | 110 | #: flask_user/forms.py:152 flask_user/forms.py:303 111 | msgid "Your email address" 112 | msgstr "" 113 | 114 | #: flask_user/forms.py:153 flask_user/forms.py:304 115 | msgid "Email address is required" 116 | msgstr "" 117 | 118 | #: flask_user/forms.py:154 flask_user/forms.py:305 119 | msgid "Invalid Email address" 120 | msgstr "" 121 | 122 | #: flask_user/forms.py:156 123 | msgid "Send reset password email" 124 | msgstr "" 125 | 126 | #: flask_user/forms.py:163 flask_user/forms.py:237 127 | #, python-format 128 | msgid "%(username_or_email)s does not exist" 129 | msgstr "" 130 | 131 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 132 | msgid "Username" 133 | msgstr "" 134 | 135 | #: flask_user/forms.py:177 flask_user/forms.py:264 136 | msgid "Password" 137 | msgstr "" 138 | 139 | #: flask_user/forms.py:178 flask_user/forms.py:265 140 | msgid "Password is required" 141 | msgstr "" 142 | 143 | #: flask_user/forms.py:180 144 | msgid "Remember me" 145 | msgstr "" 146 | 147 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 148 | #: flask_user/templates/flask_user/login_or_register.html:9 149 | msgid "Sign in" 150 | msgstr "" 151 | 152 | #: flask_user/forms.py:189 153 | msgid "Username or Email" 154 | msgstr "" 155 | 156 | #: flask_user/forms.py:226 157 | msgid "Username/Email" 158 | msgstr "" 159 | 160 | #: flask_user/forms.py:240 161 | msgid "Incorrect Password" 162 | msgstr "" 163 | 164 | #: flask_user/forms.py:244 165 | #, python-format 166 | msgid "Incorrect %(username_or_email)s and/or Password" 167 | msgstr "" 168 | 169 | #: flask_user/forms.py:266 170 | msgid "Retype Password" 171 | msgstr "" 172 | 173 | #: flask_user/forms.py:267 174 | msgid "Password and Retype Password did not match" 175 | msgstr "" 176 | 177 | #: flask_user/forms.py:268 178 | msgid "Token" 179 | msgstr "" 180 | 181 | #: flask_user/forms.py:270 182 | #: flask_user/templates/flask_user/login_or_register.html:41 183 | #: flask_user/templates/flask_user/register.html:5 184 | msgid "Register" 185 | msgstr "" 186 | 187 | #: flask_user/forms.py:307 188 | msgid "Resend email confirmation email" 189 | msgstr "" 190 | 191 | #: flask_user/forms.py:340 192 | msgid "Invite!" 193 | msgstr "" 194 | 195 | #: flask_user/translations.py:74 196 | msgid "Home Page" 197 | msgstr "" 198 | 199 | #: flask_user/translations.py:75 200 | msgid "Profile Page" 201 | msgstr "" 202 | 203 | #: flask_user/translations.py:76 204 | msgid "Special Page" 205 | msgstr "" 206 | 207 | #: flask_user/views.py:46 208 | msgid "Your confirmation token has expired." 209 | msgstr "" 210 | 211 | #: flask_user/views.py:50 flask_user/views.py:70 212 | msgid "Invalid confirmation token." 213 | msgstr "" 214 | 215 | #: flask_user/views.py:77 216 | msgid "Your email has been confirmed." 217 | msgstr "" 218 | 219 | #: flask_user/views.py:115 220 | msgid "Your password has been changed successfully." 221 | msgstr "" 222 | 223 | #: flask_user/views.py:153 224 | #, python-format 225 | msgid "Your username has been changed to '%(username)s'." 226 | msgstr "" 227 | 228 | #: flask_user/views.py:221 229 | #, python-format 230 | msgid "" 231 | "A reset password email has been sent to '%(email)s'. Open that email and " 232 | "follow the instructions to reset your password." 233 | msgstr "" 234 | 235 | #: flask_user/views.py:293 236 | msgid "You have signed out successfully." 237 | msgstr "" 238 | 239 | #: flask_user/views.py:534 240 | msgid "Invitation has been sent." 241 | msgstr "" 242 | 243 | #: flask_user/views.py:578 244 | msgid "Your reset password token has expired." 245 | msgstr "" 246 | 247 | #: flask_user/views.py:582 248 | msgid "Your reset password token is invalid." 249 | msgstr "" 250 | 251 | #: flask_user/views.py:609 252 | msgid "Your password has been reset successfully." 253 | msgstr "" 254 | 255 | #: flask_user/views.py:626 256 | #, python-format 257 | msgid "You must confirm your email to access '%(url)s'." 258 | msgstr "" 259 | 260 | #: flask_user/views.py:638 261 | #, python-format 262 | msgid "You must be signed in to access '%(url)s'." 263 | msgstr "" 264 | 265 | #: flask_user/views.py:649 266 | #, python-format 267 | msgid "You do not have permission to access '%(url)s'." 268 | msgstr "" 269 | 270 | #: flask_user/views.py:680 flask_user/views.py:701 271 | #, python-format 272 | msgid "" 273 | "A confirmation email has been sent to %(email)s with instructions to " 274 | "complete your registration." 275 | msgstr "" 276 | 277 | #: flask_user/views.py:682 278 | msgid "You have registered successfully." 279 | msgstr "" 280 | 281 | #: flask_user/views.py:710 282 | msgid "Your account has not been enabled." 283 | msgstr "" 284 | 285 | #: flask_user/views.py:719 286 | #, python-format 287 | msgid "" 288 | "Your email address has not yet been confirmed. Check your email Inbox and" 289 | " Spam folders for the confirmation email or Re-send " 290 | "confirmation email." 291 | msgstr "" 292 | 293 | #: flask_user/views.py:730 294 | msgid "You have signed in successfully." 295 | msgstr "" 296 | 297 | #: flask_user/templates/flask_user/forgot_password.html:5 298 | msgid "Forgot Password" 299 | msgstr "" 300 | 301 | #: flask_user/templates/flask_user/invite.html:5 302 | msgid "Invite User" 303 | msgstr "" 304 | 305 | #: flask_user/templates/flask_user/login.html:21 306 | msgid "New here? Register." 307 | msgstr "" 308 | 309 | #: flask_user/templates/flask_user/login.html:44 310 | #: flask_user/templates/flask_user/login_or_register.html:34 311 | msgid "Forgot your Password?" 312 | msgstr "" 313 | 314 | #: flask_user/templates/flask_user/manage_emails.html:5 315 | msgid "Manage Emails" 316 | msgstr "" 317 | 318 | #: flask_user/templates/flask_user/register.html:21 319 | msgid "Already registered? Sign in." 320 | msgstr "" 321 | 322 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 323 | msgid "Resend Confirmation Email" 324 | msgstr "" 325 | 326 | #: flask_user/templates/flask_user/reset_password.html:5 327 | msgid "Reset Password" 328 | msgstr "" 329 | 330 | #: flask_user/templates/flask_user/user_profile.html:5 331 | #, fuzzy 332 | msgid "User profile" 333 | msgstr "" 334 | 335 | #~ msgid "" 336 | #~ msgstr "" 337 | 338 | #~ msgid "Your account has been disabled." 339 | #~ msgstr "" 340 | 341 | #~ msgid "I have %(count)s apple" 342 | #~ msgid_plural "I have %(count)s apples" 343 | #~ msgstr[0] "" 344 | #~ msgstr[1] "" 345 | 346 | #~ msgid "Username may only contain letters, numbers, '-', '.' and '_'." 347 | #~ msgstr "" 348 | 349 | #~ msgid "Incorrect Username/Email and Password" 350 | #~ msgstr "" 351 | 352 | #~ msgid "Incorrect Username and Password" 353 | #~ msgstr "" 354 | 355 | #~ msgid "Incorrect Email and Password" 356 | #~ msgstr "" 357 | 358 | #~ msgid "Change Password" 359 | #~ msgstr "" 360 | 361 | #~ msgid "Change Username" 362 | #~ msgstr "" 363 | 364 | #~ msgid "Email does not exist" 365 | #~ msgstr "" 366 | 367 | -------------------------------------------------------------------------------- /app/translations/es/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/es/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/es/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Spanish translations for PROJECT. 2 | # Copyright (C) 2017 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2017. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2018-02-17 15:52+0300\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language: es\n" 14 | "Language-Team: es \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.5.3\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | 27 | #: flask_user/forms.py:47 28 | msgid "Username must be at least 3 characters long" 29 | msgstr "" 30 | 31 | #: flask_user/forms.py:52 32 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 33 | msgstr "" 34 | 35 | #: flask_user/forms.py:58 36 | msgid "This Username is already in use. Please try another one." 37 | msgstr "" 38 | 39 | #: flask_user/forms.py:65 40 | msgid "This Email is already in use. Please try another one." 41 | msgstr "" 42 | 43 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 44 | #: flask_user/forms.py:260 flask_user/forms.py:336 45 | msgid "Email" 46 | msgstr "" 47 | 48 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 49 | #: flask_user/forms.py:337 50 | msgid "Email is required" 51 | msgstr "" 52 | 53 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 54 | #: flask_user/forms.py:338 55 | msgid "Invalid Email" 56 | msgstr "" 57 | 58 | #: flask_user/forms.py:76 59 | msgid "Add Email" 60 | msgstr "" 61 | 62 | #: flask_user/forms.py:79 flask_user/forms.py:122 63 | msgid "Old Password" 64 | msgstr "" 65 | 66 | #: flask_user/forms.py:80 flask_user/forms.py:123 67 | msgid "Old Password is required" 68 | msgstr "" 69 | 70 | #: flask_user/forms.py:82 flask_user/forms.py:310 71 | msgid "New Password" 72 | msgstr "" 73 | 74 | #: flask_user/forms.py:83 flask_user/forms.py:311 75 | msgid "New Password is required" 76 | msgstr "" 77 | 78 | #: flask_user/forms.py:85 flask_user/forms.py:312 79 | msgid "Retype New Password" 80 | msgstr "" 81 | 82 | #: flask_user/forms.py:86 flask_user/forms.py:313 83 | msgid "New Password and Retype Password did not match" 84 | msgstr "" 85 | 86 | #: flask_user/forms.py:89 flask_user/forms.py:315 87 | #: flask_user/templates/flask_user/change_password.html:5 88 | #: flask_user/templates/flask_user/user_profile.html:11 89 | msgid "Change password" 90 | msgstr "" 91 | 92 | #: flask_user/forms.py:111 flask_user/forms.py:145 93 | msgid "Old Password is incorrect" 94 | msgstr "" 95 | 96 | #: flask_user/forms.py:118 97 | msgid "New Username" 98 | msgstr "" 99 | 100 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 101 | msgid "Username is required" 102 | msgstr "" 103 | 104 | #: flask_user/forms.py:126 105 | #: flask_user/templates/flask_user/change_username.html:5 106 | #: flask_user/templates/flask_user/user_profile.html:8 107 | msgid "Change username" 108 | msgstr "" 109 | 110 | #: flask_user/forms.py:152 flask_user/forms.py:303 111 | msgid "Your email address" 112 | msgstr "" 113 | 114 | #: flask_user/forms.py:153 flask_user/forms.py:304 115 | msgid "Email address is required" 116 | msgstr "" 117 | 118 | #: flask_user/forms.py:154 flask_user/forms.py:305 119 | msgid "Invalid Email address" 120 | msgstr "" 121 | 122 | #: flask_user/forms.py:156 123 | msgid "Send reset password email" 124 | msgstr "" 125 | 126 | #: flask_user/forms.py:163 flask_user/forms.py:237 127 | #, python-format 128 | msgid "%(username_or_email)s does not exist" 129 | msgstr "" 130 | 131 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 132 | msgid "Username" 133 | msgstr "" 134 | 135 | #: flask_user/forms.py:177 flask_user/forms.py:264 136 | msgid "Password" 137 | msgstr "" 138 | 139 | #: flask_user/forms.py:178 flask_user/forms.py:265 140 | msgid "Password is required" 141 | msgstr "" 142 | 143 | #: flask_user/forms.py:180 144 | msgid "Remember me" 145 | msgstr "" 146 | 147 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 148 | #: flask_user/templates/flask_user/login_or_register.html:9 149 | msgid "Sign in" 150 | msgstr "" 151 | 152 | #: flask_user/forms.py:189 153 | msgid "Username or Email" 154 | msgstr "" 155 | 156 | #: flask_user/forms.py:226 157 | msgid "Username/Email" 158 | msgstr "" 159 | 160 | #: flask_user/forms.py:240 161 | msgid "Incorrect Password" 162 | msgstr "" 163 | 164 | #: flask_user/forms.py:244 165 | #, python-format 166 | msgid "Incorrect %(username_or_email)s and/or Password" 167 | msgstr "" 168 | 169 | #: flask_user/forms.py:266 170 | msgid "Retype Password" 171 | msgstr "" 172 | 173 | #: flask_user/forms.py:267 174 | msgid "Password and Retype Password did not match" 175 | msgstr "" 176 | 177 | #: flask_user/forms.py:268 178 | msgid "Token" 179 | msgstr "" 180 | 181 | #: flask_user/forms.py:270 182 | #: flask_user/templates/flask_user/login_or_register.html:41 183 | #: flask_user/templates/flask_user/register.html:5 184 | msgid "Register" 185 | msgstr "" 186 | 187 | #: flask_user/forms.py:307 188 | msgid "Resend email confirmation email" 189 | msgstr "" 190 | 191 | #: flask_user/forms.py:340 192 | msgid "Invite!" 193 | msgstr "" 194 | 195 | #: flask_user/translations.py:74 196 | msgid "Home Page" 197 | msgstr "" 198 | 199 | #: flask_user/translations.py:75 200 | msgid "Profile Page" 201 | msgstr "" 202 | 203 | #: flask_user/translations.py:76 204 | msgid "Special Page" 205 | msgstr "" 206 | 207 | #: flask_user/views.py:46 208 | msgid "Your confirmation token has expired." 209 | msgstr "" 210 | 211 | #: flask_user/views.py:50 flask_user/views.py:70 212 | msgid "Invalid confirmation token." 213 | msgstr "" 214 | 215 | #: flask_user/views.py:77 216 | msgid "Your email has been confirmed." 217 | msgstr "" 218 | 219 | #: flask_user/views.py:115 220 | msgid "Your password has been changed successfully." 221 | msgstr "" 222 | 223 | #: flask_user/views.py:153 224 | #, python-format 225 | msgid "Your username has been changed to '%(username)s'." 226 | msgstr "" 227 | 228 | #: flask_user/views.py:221 229 | #, python-format 230 | msgid "" 231 | "A reset password email has been sent to '%(email)s'. Open that email and " 232 | "follow the instructions to reset your password." 233 | msgstr "" 234 | 235 | #: flask_user/views.py:293 236 | msgid "You have signed out successfully." 237 | msgstr "" 238 | 239 | #: flask_user/views.py:534 240 | msgid "Invitation has been sent." 241 | msgstr "" 242 | 243 | #: flask_user/views.py:578 244 | msgid "Your reset password token has expired." 245 | msgstr "" 246 | 247 | #: flask_user/views.py:582 248 | msgid "Your reset password token is invalid." 249 | msgstr "" 250 | 251 | #: flask_user/views.py:609 252 | msgid "Your password has been reset successfully." 253 | msgstr "" 254 | 255 | #: flask_user/views.py:626 256 | #, python-format 257 | msgid "You must confirm your email to access '%(url)s'." 258 | msgstr "" 259 | 260 | #: flask_user/views.py:638 261 | #, python-format 262 | msgid "You must be signed in to access '%(url)s'." 263 | msgstr "" 264 | 265 | #: flask_user/views.py:649 266 | #, python-format 267 | msgid "You do not have permission to access '%(url)s'." 268 | msgstr "" 269 | 270 | #: flask_user/views.py:680 flask_user/views.py:701 271 | #, python-format 272 | msgid "" 273 | "A confirmation email has been sent to %(email)s with instructions to " 274 | "complete your registration." 275 | msgstr "" 276 | 277 | #: flask_user/views.py:682 278 | msgid "You have registered successfully." 279 | msgstr "" 280 | 281 | #: flask_user/views.py:710 282 | msgid "Your account has not been enabled." 283 | msgstr "" 284 | 285 | #: flask_user/views.py:719 286 | #, python-format 287 | msgid "" 288 | "Your email address has not yet been confirmed. Check your email Inbox and" 289 | " Spam folders for the confirmation email or Re-send " 290 | "confirmation email." 291 | msgstr "" 292 | 293 | #: flask_user/views.py:730 294 | msgid "You have signed in successfully." 295 | msgstr "" 296 | 297 | #: flask_user/templates/flask_user/forgot_password.html:5 298 | msgid "Forgot Password" 299 | msgstr "" 300 | 301 | #: flask_user/templates/flask_user/invite.html:5 302 | msgid "Invite User" 303 | msgstr "" 304 | 305 | #: flask_user/templates/flask_user/login.html:21 306 | msgid "New here? Register." 307 | msgstr "" 308 | 309 | #: flask_user/templates/flask_user/login.html:44 310 | #: flask_user/templates/flask_user/login_or_register.html:34 311 | msgid "Forgot your Password?" 312 | msgstr "" 313 | 314 | #: flask_user/templates/flask_user/manage_emails.html:5 315 | msgid "Manage Emails" 316 | msgstr "" 317 | 318 | #: flask_user/templates/flask_user/register.html:21 319 | msgid "Already registered? Sign in." 320 | msgstr "" 321 | 322 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 323 | msgid "Resend Confirmation Email" 324 | msgstr "" 325 | 326 | #: flask_user/templates/flask_user/reset_password.html:5 327 | msgid "Reset Password" 328 | msgstr "" 329 | 330 | #: flask_user/templates/flask_user/user_profile.html:5 331 | msgid "User profile" 332 | msgstr "" 333 | 334 | -------------------------------------------------------------------------------- /app/translations/fa/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/fa/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/fa/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Persian translations for PROJECT. 2 | # Copyright (C) 2015 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2015. 5 | # Mohammad Amin Sameti , 2016. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PROJECT VERSION\n" 10 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 12 | "PO-Revision-Date: 2016-11-04 01:24+0330\n" 13 | "Last-Translator: Mohammad Amin Sameti \n" 14 | "Language: fa\n" 15 | "Language-Team: Persian <>\n" 16 | "Plural-Forms: nplurals=1; plural=0\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=utf-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Generated-By: Babel 2.3.4\n" 21 | 22 | #: flask_user/forms.py:41 23 | msgid "" 24 | "Password must have at least 6 characters with one lowercase letter, one " 25 | "uppercase letter and one number" 26 | msgstr "" 27 | "گذرواژه باید حداقل ۶ کاراکتر شامل حداقل یک عدد، یک حرف بزرگ و یک حرف کوچک" 28 | " باشد" 29 | 30 | #: flask_user/forms.py:47 31 | msgid "Username must be at least 3 characters long" 32 | msgstr "نام کاربری باید حداقل ۳ کاراکتر باشد" 33 | 34 | #: flask_user/forms.py:52 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "" 37 | "نام کاربری می‌تواند فقط دارای عدد، حروف و یکی از کاراکترهای رو به رو " 38 | "باشد: ـ-." 39 | 40 | #: flask_user/forms.py:58 41 | msgid "This Username is already in use. Please try another one." 42 | msgstr "در حال حاضر این نام کاربری استفاده شده است. نام دیگری امتحان کنید." 43 | 44 | #: flask_user/forms.py:65 45 | msgid "This Email is already in use. Please try another one." 46 | msgstr "این رایانامه قبلا استفاده شده است. نشانی دیگری وارد کنید." 47 | 48 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 49 | #: flask_user/forms.py:260 flask_user/forms.py:336 50 | msgid "Email" 51 | msgstr "رایانامه" 52 | 53 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 54 | #: flask_user/forms.py:337 55 | msgid "Email is required" 56 | msgstr "رایانامه باید وارد شود" 57 | 58 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 59 | #: flask_user/forms.py:338 60 | msgid "Invalid Email" 61 | msgstr "رایانامه نامعتبر" 62 | 63 | #: flask_user/forms.py:76 64 | msgid "Add Email" 65 | msgstr "افزودن رایانامه" 66 | 67 | #: flask_user/forms.py:79 flask_user/forms.py:122 68 | msgid "Old Password" 69 | msgstr "گذرواژه قدیمی" 70 | 71 | #: flask_user/forms.py:80 flask_user/forms.py:123 72 | msgid "Old Password is required" 73 | msgstr "گذرواژه قدیمی وارد نشده است" 74 | 75 | #: flask_user/forms.py:82 flask_user/forms.py:310 76 | msgid "New Password" 77 | msgstr "گذرواژه جدید" 78 | 79 | #: flask_user/forms.py:83 flask_user/forms.py:311 80 | msgid "New Password is required" 81 | msgstr "گذرواژه جدید وارد نشده است" 82 | 83 | #: flask_user/forms.py:85 flask_user/forms.py:312 84 | msgid "Retype New Password" 85 | msgstr "تکرار گذرواژه جدید" 86 | 87 | #: flask_user/forms.py:86 flask_user/forms.py:313 88 | msgid "New Password and Retype Password did not match" 89 | msgstr "گذرواژه‌های جدید مطابقت ندارند" 90 | 91 | #: flask_user/forms.py:89 flask_user/forms.py:315 92 | #: flask_user/templates/flask_user/change_password.html:5 93 | #: flask_user/templates/flask_user/user_profile.html:11 94 | msgid "Change password" 95 | msgstr "تغییر گذرواژه" 96 | 97 | #: flask_user/forms.py:111 flask_user/forms.py:145 98 | msgid "Old Password is incorrect" 99 | msgstr "گذرواژه قدیمی نادرست است" 100 | 101 | #: flask_user/forms.py:118 102 | msgid "New Username" 103 | msgstr "نام کاربری جدید" 104 | 105 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 106 | msgid "Username is required" 107 | msgstr "نام کاربری لازم است" 108 | 109 | #: flask_user/forms.py:126 110 | #: flask_user/templates/flask_user/change_username.html:5 111 | #: flask_user/templates/flask_user/user_profile.html:8 112 | msgid "Change username" 113 | msgstr "تغییر نام کاربری" 114 | 115 | #: flask_user/forms.py:152 flask_user/forms.py:303 116 | msgid "Your email address" 117 | msgstr "نشانی رایانامه شما" 118 | 119 | #: flask_user/forms.py:153 flask_user/forms.py:304 120 | msgid "Email address is required" 121 | msgstr "رایانامه لازم است" 122 | 123 | #: flask_user/forms.py:154 flask_user/forms.py:305 124 | msgid "Invalid Email address" 125 | msgstr "رایانامه نامعتبر" 126 | 127 | #: flask_user/forms.py:156 128 | msgid "Send reset password email" 129 | msgstr "فرستادن رایانامه برای بازنشانی گذرواژه" 130 | 131 | #: flask_user/forms.py:163 flask_user/forms.py:237 132 | #, python-format 133 | msgid "%(username_or_email)s does not exist" 134 | msgstr "%(username_or_email)s موجود نیست" 135 | 136 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 137 | msgid "Username" 138 | msgstr "نام کاربری" 139 | 140 | #: flask_user/forms.py:177 flask_user/forms.py:264 141 | msgid "Password" 142 | msgstr "گذرواژه" 143 | 144 | #: flask_user/forms.py:178 flask_user/forms.py:265 145 | msgid "Password is required" 146 | msgstr "گذرواژه مورد نیاز است" 147 | 148 | #: flask_user/forms.py:180 149 | msgid "Remember me" 150 | msgstr "مرا به یاد داشته باش" 151 | 152 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 153 | #: flask_user/templates/flask_user/login_or_register.html:9 154 | msgid "Sign in" 155 | msgstr "ورود" 156 | 157 | #: flask_user/forms.py:189 158 | msgid "Username or Email" 159 | msgstr "رایانامه یا نام کاربری" 160 | 161 | #: flask_user/forms.py:226 162 | msgid "Username/Email" 163 | msgstr "رایانامه/نام کاربری" 164 | 165 | #: flask_user/forms.py:240 166 | #, fuzzy 167 | msgid "Incorrect Password" 168 | msgstr "فراموشی گذرواژه" 169 | 170 | #: flask_user/forms.py:244 171 | #, python-format 172 | msgid "Incorrect %(username_or_email)s and/or Password" 173 | msgstr "گذرواژه و/یا نام کاربری %(username_or_email)s نامعتبر" 174 | 175 | #: flask_user/forms.py:266 176 | msgid "Retype Password" 177 | msgstr "بازنویسی گذرواژه" 178 | 179 | #: flask_user/forms.py:267 180 | msgid "Password and Retype Password did not match" 181 | msgstr "گذرواژه و بازنویسی آن با هم مطابقت ندارند" 182 | 183 | #: flask_user/forms.py:268 184 | msgid "Token" 185 | msgstr "توکن" 186 | 187 | #: flask_user/forms.py:270 188 | #: flask_user/templates/flask_user/login_or_register.html:41 189 | #: flask_user/templates/flask_user/register.html:5 190 | msgid "Register" 191 | msgstr "ثبت‌نام" 192 | 193 | #: flask_user/forms.py:307 194 | msgid "Resend email confirmation email" 195 | msgstr "ارسال دوباره رایانامه تأیید حساب کاربری" 196 | 197 | #: flask_user/forms.py:340 198 | msgid "Invite!" 199 | msgstr "دعوت کنید!" 200 | 201 | #: flask_user/translations.py:74 202 | msgid "Home Page" 203 | msgstr "صفحه اصلی" 204 | 205 | #: flask_user/translations.py:75 206 | msgid "Profile Page" 207 | msgstr "صفحه نمایه" 208 | 209 | #: flask_user/translations.py:76 210 | msgid "Special Page" 211 | msgstr "صفحه خاص" 212 | 213 | #: flask_user/views.py:46 214 | msgid "Your confirmation token has expired." 215 | msgstr "توکن تأیید شما منقضی شده است." 216 | 217 | #: flask_user/views.py:50 flask_user/views.py:70 218 | msgid "Invalid confirmation token." 219 | msgstr "توکن تأیید نامعتبر است." 220 | 221 | #: flask_user/views.py:77 222 | msgid "Your email has been confirmed." 223 | msgstr "رایانامه شما تأیید شد." 224 | 225 | #: flask_user/views.py:115 226 | msgid "Your password has been changed successfully." 227 | msgstr "گذرواژه شما با موفقیت تغییر یافت." 228 | 229 | #: flask_user/views.py:153 230 | #, python-format 231 | msgid "Your username has been changed to '%(username)s'." 232 | msgstr "نام کاربری شما به '%(username)s' تغییر یافت." 233 | 234 | #: flask_user/views.py:221 235 | #, python-format 236 | msgid "" 237 | "A reset password email has been sent to '%(email)s'. Open that email and " 238 | "follow the instructions to reset your password." 239 | msgstr "" 240 | "یک رایانامه برای بازنشانی گذرواژه به '%(email)s' ارسال شد. آن نشانی را " 241 | "باز کنید و مراحل را دنبال کنید تا گذرواژه‌تان را بازنشانی کنید." 242 | 243 | #: flask_user/views.py:293 244 | msgid "You have signed out successfully." 245 | msgstr "شما با موفقیت خارج شدید." 246 | 247 | #: flask_user/views.py:534 248 | msgid "Invitation has been sent." 249 | msgstr "دعوت‌نامه فرستاده شد." 250 | 251 | #: flask_user/views.py:578 252 | msgid "Your reset password token has expired." 253 | msgstr "توکن بازنشانی گذرواژه شما منقضی شده است." 254 | 255 | #: flask_user/views.py:582 256 | msgid "Your reset password token is invalid." 257 | msgstr "توکن بازنشانی گذرواژه شما نامعتبر است." 258 | 259 | #: flask_user/views.py:609 260 | msgid "Your password has been reset successfully." 261 | msgstr "گذرواژه شما با موفقیت بازنشانده شد." 262 | 263 | #: flask_user/views.py:626 264 | #, python-format 265 | msgid "You must confirm your email to access '%(url)s'." 266 | msgstr "شما باید برای دسترسی به '%(url)s' رایانامه خود را تأیید کنید." 267 | 268 | #: flask_user/views.py:638 269 | #, python-format 270 | msgid "You must be signed in to access '%(url)s'." 271 | msgstr "برای دسترسی به نشانی '%(url)s' باید وارد شوی." 272 | 273 | #: flask_user/views.py:649 274 | #, python-format 275 | msgid "You do not have permission to access '%(url)s'." 276 | msgstr "شما اجازه دسترسی به '%(url)s' را ندارید." 277 | 278 | #: flask_user/views.py:680 flask_user/views.py:701 279 | #, python-format 280 | msgid "" 281 | "A confirmation email has been sent to %(email)s with instructions to " 282 | "complete your registration." 283 | msgstr "" 284 | "یک رایانامه به همراه راهنمای کامل کردن ثبت‌نام شما به %(email)s فرستاده " 285 | "شد." 286 | 287 | #: flask_user/views.py:682 288 | msgid "You have registered successfully." 289 | msgstr "شما با موفقیت ثبت نام کردید." 290 | 291 | #: flask_user/views.py:710 292 | msgid "Your account has not been enabled." 293 | msgstr "حساب شما فعال نشده استو" 294 | 295 | #: flask_user/views.py:719 296 | #, python-format 297 | msgid "" 298 | "Your email address has not yet been confirmed. Check your email Inbox and" 299 | " Spam folders for the confirmation email or Re-send " 300 | "confirmation email." 301 | msgstr "" 302 | "رایانامه شما هنوز تأیید نشده است. صندوق ورودی یا پوشه اسپم رایانامه خود " 303 | "را بررسی کنید یا رایانامه تأیید را دوباره ارسال " 304 | "کنید." 305 | 306 | #: flask_user/views.py:730 307 | msgid "You have signed in successfully." 308 | msgstr "شما با موفقیت وارد شدید." 309 | 310 | #: flask_user/templates/flask_user/forgot_password.html:5 311 | msgid "Forgot Password" 312 | msgstr "فراموشی گذرواژه" 313 | 314 | #: flask_user/templates/flask_user/invite.html:5 315 | msgid "Invite User" 316 | msgstr "دعوت کردن کاربر" 317 | 318 | #: flask_user/templates/flask_user/login.html:21 319 | msgid "New here? Register." 320 | msgstr "تازه این جایید؟ ثبت نام کنید." 321 | 322 | #: flask_user/templates/flask_user/login.html:44 323 | #: flask_user/templates/flask_user/login_or_register.html:34 324 | msgid "Forgot your Password?" 325 | msgstr "گذرواژه‌تان را از یاد بردید؟" 326 | 327 | #: flask_user/templates/flask_user/manage_emails.html:5 328 | msgid "Manage Emails" 329 | msgstr "مدیریت رایانامه‌ها" 330 | 331 | #: flask_user/templates/flask_user/register.html:21 332 | msgid "Already registered? Sign in." 333 | msgstr "در حال حاضر ثبت نام کرده اید؟ وارد شوید." 334 | 335 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 336 | msgid "Resend Confirmation Email" 337 | msgstr "ارسال دوباره رایانامه تأیید" 338 | 339 | #: flask_user/templates/flask_user/reset_password.html:5 340 | msgid "Reset Password" 341 | msgstr "بازنشانی گذرواژه" 342 | 343 | #: flask_user/templates/flask_user/user_profile.html:5 344 | msgid "User profile" 345 | msgstr "نمایه کاربر" 346 | 347 | -------------------------------------------------------------------------------- /app/translations/fi/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/fi/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/fi/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Finnish translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2015-07-13 22:24+0200\n" 12 | "Last-Translator: Andriy Tymchenko \n" 13 | "Language: fi\n" 14 | "Language-Team: fi \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | 27 | #: flask_user/forms.py:47 28 | msgid "Username must be at least 3 characters long" 29 | msgstr "" 30 | 31 | #: flask_user/forms.py:52 32 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 33 | msgstr "" 34 | 35 | #: flask_user/forms.py:58 36 | msgid "This Username is already in use. Please try another one." 37 | msgstr "" 38 | 39 | #: flask_user/forms.py:65 40 | msgid "This Email is already in use. Please try another one." 41 | msgstr "" 42 | 43 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 44 | #: flask_user/forms.py:260 flask_user/forms.py:336 45 | msgid "Email" 46 | msgstr "Sähköposti" 47 | 48 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 49 | #: flask_user/forms.py:337 50 | msgid "Email is required" 51 | msgstr "" 52 | 53 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 54 | #: flask_user/forms.py:338 55 | msgid "Invalid Email" 56 | msgstr "" 57 | 58 | #: flask_user/forms.py:76 59 | msgid "Add Email" 60 | msgstr "" 61 | 62 | #: flask_user/forms.py:79 flask_user/forms.py:122 63 | msgid "Old Password" 64 | msgstr "" 65 | 66 | #: flask_user/forms.py:80 flask_user/forms.py:123 67 | msgid "Old Password is required" 68 | msgstr "" 69 | 70 | #: flask_user/forms.py:82 flask_user/forms.py:310 71 | msgid "New Password" 72 | msgstr "Uusi Salasana" 73 | 74 | #: flask_user/forms.py:83 flask_user/forms.py:311 75 | msgid "New Password is required" 76 | msgstr "" 77 | 78 | #: flask_user/forms.py:85 flask_user/forms.py:312 79 | msgid "Retype New Password" 80 | msgstr "" 81 | 82 | #: flask_user/forms.py:86 flask_user/forms.py:313 83 | msgid "New Password and Retype Password did not match" 84 | msgstr "" 85 | 86 | #: flask_user/forms.py:89 flask_user/forms.py:315 87 | #: flask_user/templates/flask_user/change_password.html:5 88 | #: flask_user/templates/flask_user/user_profile.html:11 89 | msgid "Change password" 90 | msgstr "" 91 | 92 | #: flask_user/forms.py:111 flask_user/forms.py:145 93 | msgid "Old Password is incorrect" 94 | msgstr "" 95 | 96 | #: flask_user/forms.py:118 97 | msgid "New Username" 98 | msgstr "Uusi Käyttäjätunnus" 99 | 100 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 101 | msgid "Username is required" 102 | msgstr "" 103 | 104 | #: flask_user/forms.py:126 105 | #: flask_user/templates/flask_user/change_username.html:5 106 | #: flask_user/templates/flask_user/user_profile.html:8 107 | msgid "Change username" 108 | msgstr "" 109 | 110 | #: flask_user/forms.py:152 flask_user/forms.py:303 111 | msgid "Your email address" 112 | msgstr "" 113 | 114 | #: flask_user/forms.py:153 flask_user/forms.py:304 115 | msgid "Email address is required" 116 | msgstr "" 117 | 118 | #: flask_user/forms.py:154 flask_user/forms.py:305 119 | msgid "Invalid Email address" 120 | msgstr "" 121 | 122 | #: flask_user/forms.py:156 123 | msgid "Send reset password email" 124 | msgstr "" 125 | 126 | #: flask_user/forms.py:163 flask_user/forms.py:237 127 | #, python-format 128 | msgid "%(username_or_email)s does not exist" 129 | msgstr "" 130 | 131 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 132 | msgid "Username" 133 | msgstr "Käyttäjätunnus" 134 | 135 | #: flask_user/forms.py:177 flask_user/forms.py:264 136 | msgid "Password" 137 | msgstr "Salasana" 138 | 139 | #: flask_user/forms.py:178 flask_user/forms.py:265 140 | msgid "Password is required" 141 | msgstr "" 142 | 143 | #: flask_user/forms.py:180 144 | msgid "Remember me" 145 | msgstr "Muista minusta" 146 | 147 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 148 | #: flask_user/templates/flask_user/login_or_register.html:9 149 | msgid "Sign in" 150 | msgstr "Kirjautuminen" 151 | 152 | #: flask_user/forms.py:189 153 | msgid "Username or Email" 154 | msgstr "Käyttäjätunnus tai sähköposti" 155 | 156 | #: flask_user/forms.py:226 157 | #, fuzzy 158 | msgid "Username/Email" 159 | msgstr "Käyttäjätunnus tai sähköposti" 160 | 161 | #: flask_user/forms.py:240 162 | #, fuzzy 163 | msgid "Incorrect Password" 164 | msgstr "Uusi Salasana" 165 | 166 | #: flask_user/forms.py:244 167 | #, python-format 168 | msgid "Incorrect %(username_or_email)s and/or Password" 169 | msgstr "" 170 | 171 | #: flask_user/forms.py:266 172 | msgid "Retype Password" 173 | msgstr "" 174 | 175 | #: flask_user/forms.py:267 176 | msgid "Password and Retype Password did not match" 177 | msgstr "" 178 | 179 | #: flask_user/forms.py:268 180 | msgid "Token" 181 | msgstr "" 182 | 183 | #: flask_user/forms.py:270 184 | #: flask_user/templates/flask_user/login_or_register.html:41 185 | #: flask_user/templates/flask_user/register.html:5 186 | msgid "Register" 187 | msgstr "" 188 | 189 | #: flask_user/forms.py:307 190 | msgid "Resend email confirmation email" 191 | msgstr "" 192 | 193 | #: flask_user/forms.py:340 194 | msgid "Invite!" 195 | msgstr "" 196 | 197 | #: flask_user/translations.py:74 198 | msgid "Home Page" 199 | msgstr "Koti sivu" 200 | 201 | #: flask_user/translations.py:75 202 | msgid "Profile Page" 203 | msgstr "" 204 | 205 | #: flask_user/translations.py:76 206 | msgid "Special Page" 207 | msgstr "" 208 | 209 | #: flask_user/views.py:46 210 | msgid "Your confirmation token has expired." 211 | msgstr "" 212 | 213 | #: flask_user/views.py:50 flask_user/views.py:70 214 | msgid "Invalid confirmation token." 215 | msgstr "" 216 | 217 | #: flask_user/views.py:77 218 | msgid "Your email has been confirmed." 219 | msgstr "" 220 | 221 | #: flask_user/views.py:115 222 | msgid "Your password has been changed successfully." 223 | msgstr "" 224 | 225 | #: flask_user/views.py:153 226 | #, python-format 227 | msgid "Your username has been changed to '%(username)s'." 228 | msgstr "" 229 | 230 | #: flask_user/views.py:221 231 | #, python-format 232 | msgid "" 233 | "A reset password email has been sent to '%(email)s'. Open that email and " 234 | "follow the instructions to reset your password." 235 | msgstr "" 236 | 237 | #: flask_user/views.py:293 238 | msgid "You have signed out successfully." 239 | msgstr "" 240 | 241 | #: flask_user/views.py:534 242 | msgid "Invitation has been sent." 243 | msgstr "" 244 | 245 | #: flask_user/views.py:578 246 | msgid "Your reset password token has expired." 247 | msgstr "" 248 | 249 | #: flask_user/views.py:582 250 | msgid "Your reset password token is invalid." 251 | msgstr "" 252 | 253 | #: flask_user/views.py:609 254 | msgid "Your password has been reset successfully." 255 | msgstr "" 256 | 257 | #: flask_user/views.py:626 258 | #, python-format 259 | msgid "You must confirm your email to access '%(url)s'." 260 | msgstr "" 261 | 262 | #: flask_user/views.py:638 263 | #, python-format 264 | msgid "You must be signed in to access '%(url)s'." 265 | msgstr "" 266 | 267 | #: flask_user/views.py:649 268 | #, python-format 269 | msgid "You do not have permission to access '%(url)s'." 270 | msgstr "" 271 | 272 | #: flask_user/views.py:680 flask_user/views.py:701 273 | #, python-format 274 | msgid "" 275 | "A confirmation email has been sent to %(email)s with instructions to " 276 | "complete your registration." 277 | msgstr "" 278 | 279 | #: flask_user/views.py:682 280 | msgid "You have registered successfully." 281 | msgstr "" 282 | 283 | #: flask_user/views.py:710 284 | msgid "Your account has not been enabled." 285 | msgstr "" 286 | 287 | #: flask_user/views.py:719 288 | #, python-format 289 | msgid "" 290 | "Your email address has not yet been confirmed. Check your email Inbox and" 291 | " Spam folders for the confirmation email or Re-send " 292 | "confirmation email." 293 | msgstr "" 294 | 295 | #: flask_user/views.py:730 296 | msgid "You have signed in successfully." 297 | msgstr "" 298 | 299 | #: flask_user/templates/flask_user/forgot_password.html:5 300 | msgid "Forgot Password" 301 | msgstr "" 302 | 303 | #: flask_user/templates/flask_user/invite.html:5 304 | msgid "Invite User" 305 | msgstr "" 306 | 307 | #: flask_user/templates/flask_user/login.html:21 308 | msgid "New here? Register." 309 | msgstr "" 310 | 311 | #: flask_user/templates/flask_user/login.html:44 312 | #: flask_user/templates/flask_user/login_or_register.html:34 313 | msgid "Forgot your Password?" 314 | msgstr "" 315 | 316 | #: flask_user/templates/flask_user/manage_emails.html:5 317 | msgid "Manage Emails" 318 | msgstr "" 319 | 320 | #: flask_user/templates/flask_user/register.html:21 321 | msgid "Already registered? Sign in." 322 | msgstr "" 323 | 324 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 325 | msgid "Resend Confirmation Email" 326 | msgstr "" 327 | 328 | #: flask_user/templates/flask_user/reset_password.html:5 329 | msgid "Reset Password" 330 | msgstr "" 331 | 332 | #: flask_user/templates/flask_user/user_profile.html:5 333 | msgid "User profile" 334 | msgstr "" 335 | 336 | #~ msgid "Username may only contain letters, numbers, '-', '.' and '_'." 337 | #~ msgstr "" 338 | 339 | #~ msgid "Incorrect Username/Email and Password" 340 | #~ msgstr "" 341 | 342 | #~ msgid "Incorrect Username and Password" 343 | #~ msgstr "" 344 | 345 | #~ msgid "Incorrect Email and Password" 346 | #~ msgstr "" 347 | 348 | #~ msgid "" 349 | #~ msgstr "" 350 | 351 | #~ msgid "Change Password" 352 | #~ msgstr "" 353 | 354 | #~ msgid "Change Username" 355 | #~ msgstr "" 356 | 357 | #~ msgid "Email does not exist" 358 | #~ msgstr "" 359 | 360 | -------------------------------------------------------------------------------- /app/translations/flask_user.pot: -------------------------------------------------------------------------------- 1 | # Translations template for PROJECT. 2 | # Copyright (C) 2017 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2017. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PROJECT VERSION\n" 10 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Generated-By: Babel 2.3.4\n" 19 | 20 | #: flask_user/forms.py:41 21 | msgid "" 22 | "Password must have at least 6 characters with one lowercase letter, one " 23 | "uppercase letter and one number" 24 | msgstr "" 25 | 26 | #: flask_user/forms.py:47 27 | msgid "Username must be at least 3 characters long" 28 | msgstr "" 29 | 30 | #: flask_user/forms.py:52 31 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 32 | msgstr "" 33 | 34 | #: flask_user/forms.py:58 35 | msgid "This Username is already in use. Please try another one." 36 | msgstr "" 37 | 38 | #: flask_user/forms.py:65 39 | msgid "This Email is already in use. Please try another one." 40 | msgstr "" 41 | 42 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 43 | #: flask_user/forms.py:260 flask_user/forms.py:336 44 | msgid "Email" 45 | msgstr "" 46 | 47 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 48 | #: flask_user/forms.py:337 49 | msgid "Email is required" 50 | msgstr "" 51 | 52 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 53 | #: flask_user/forms.py:338 54 | msgid "Invalid Email" 55 | msgstr "" 56 | 57 | #: flask_user/forms.py:76 58 | msgid "Add Email" 59 | msgstr "" 60 | 61 | #: flask_user/forms.py:79 flask_user/forms.py:122 62 | msgid "Old Password" 63 | msgstr "" 64 | 65 | #: flask_user/forms.py:80 flask_user/forms.py:123 66 | msgid "Old Password is required" 67 | msgstr "" 68 | 69 | #: flask_user/forms.py:82 flask_user/forms.py:310 70 | msgid "New Password" 71 | msgstr "" 72 | 73 | #: flask_user/forms.py:83 flask_user/forms.py:311 74 | msgid "New Password is required" 75 | msgstr "" 76 | 77 | #: flask_user/forms.py:85 flask_user/forms.py:312 78 | msgid "Retype New Password" 79 | msgstr "" 80 | 81 | #: flask_user/forms.py:86 flask_user/forms.py:313 82 | msgid "New Password and Retype Password did not match" 83 | msgstr "" 84 | 85 | #: flask_user/forms.py:89 flask_user/forms.py:315 86 | #: flask_user/templates/flask_user/change_password.html:5 87 | #: flask_user/templates/flask_user/user_profile.html:11 88 | msgid "Change password" 89 | msgstr "" 90 | 91 | #: flask_user/forms.py:111 flask_user/forms.py:145 92 | msgid "Old Password is incorrect" 93 | msgstr "" 94 | 95 | #: flask_user/forms.py:118 96 | msgid "New Username" 97 | msgstr "" 98 | 99 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 100 | msgid "Username is required" 101 | msgstr "" 102 | 103 | #: flask_user/forms.py:126 104 | #: flask_user/templates/flask_user/change_username.html:5 105 | #: flask_user/templates/flask_user/user_profile.html:8 106 | msgid "Change username" 107 | msgstr "" 108 | 109 | #: flask_user/forms.py:152 flask_user/forms.py:303 110 | msgid "Your email address" 111 | msgstr "" 112 | 113 | #: flask_user/forms.py:153 flask_user/forms.py:304 114 | msgid "Email address is required" 115 | msgstr "" 116 | 117 | #: flask_user/forms.py:154 flask_user/forms.py:305 118 | msgid "Invalid Email address" 119 | msgstr "" 120 | 121 | #: flask_user/forms.py:156 122 | msgid "Send reset password email" 123 | msgstr "" 124 | 125 | #: flask_user/forms.py:163 flask_user/forms.py:237 126 | #, python-format 127 | msgid "%(username_or_email)s does not exist" 128 | msgstr "" 129 | 130 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 131 | msgid "Username" 132 | msgstr "" 133 | 134 | #: flask_user/forms.py:177 flask_user/forms.py:264 135 | msgid "Password" 136 | msgstr "" 137 | 138 | #: flask_user/forms.py:178 flask_user/forms.py:265 139 | msgid "Password is required" 140 | msgstr "" 141 | 142 | #: flask_user/forms.py:180 143 | msgid "Remember me" 144 | msgstr "" 145 | 146 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 147 | #: flask_user/templates/flask_user/login_or_register.html:9 148 | msgid "Sign in" 149 | msgstr "" 150 | 151 | #: flask_user/forms.py:189 152 | msgid "Username or Email" 153 | msgstr "" 154 | 155 | #: flask_user/forms.py:226 156 | msgid "Username/Email" 157 | msgstr "" 158 | 159 | #: flask_user/forms.py:240 160 | msgid "Incorrect Password" 161 | msgstr "" 162 | 163 | #: flask_user/forms.py:244 164 | #, python-format 165 | msgid "Incorrect %(username_or_email)s and/or Password" 166 | msgstr "" 167 | 168 | #: flask_user/forms.py:266 169 | msgid "Retype Password" 170 | msgstr "" 171 | 172 | #: flask_user/forms.py:267 173 | msgid "Password and Retype Password did not match" 174 | msgstr "" 175 | 176 | #: flask_user/forms.py:268 177 | msgid "Token" 178 | msgstr "" 179 | 180 | #: flask_user/forms.py:270 181 | #: flask_user/templates/flask_user/login_or_register.html:41 182 | #: flask_user/templates/flask_user/register.html:5 183 | msgid "Register" 184 | msgstr "" 185 | 186 | #: flask_user/forms.py:307 187 | msgid "Resend email confirmation email" 188 | msgstr "" 189 | 190 | #: flask_user/forms.py:340 191 | msgid "Invite!" 192 | msgstr "" 193 | 194 | #: flask_user/translations.py:74 195 | msgid "Home Page" 196 | msgstr "" 197 | 198 | #: flask_user/translations.py:75 199 | msgid "Profile Page" 200 | msgstr "" 201 | 202 | #: flask_user/translations.py:76 203 | msgid "Special Page" 204 | msgstr "" 205 | 206 | #: flask_user/views.py:46 207 | msgid "Your confirmation token has expired." 208 | msgstr "" 209 | 210 | #: flask_user/views.py:50 flask_user/views.py:70 211 | msgid "Invalid confirmation token." 212 | msgstr "" 213 | 214 | #: flask_user/views.py:77 215 | msgid "Your email has been confirmed." 216 | msgstr "" 217 | 218 | #: flask_user/views.py:115 219 | msgid "Your password has been changed successfully." 220 | msgstr "" 221 | 222 | #: flask_user/views.py:153 223 | #, python-format 224 | msgid "Your username has been changed to '%(username)s'." 225 | msgstr "" 226 | 227 | #: flask_user/views.py:221 228 | #, python-format 229 | msgid "" 230 | "A reset password email has been sent to '%(email)s'. Open that email and " 231 | "follow the instructions to reset your password." 232 | msgstr "" 233 | 234 | #: flask_user/views.py:293 235 | msgid "You have signed out successfully." 236 | msgstr "" 237 | 238 | #: flask_user/views.py:534 239 | msgid "Invitation has been sent." 240 | msgstr "" 241 | 242 | #: flask_user/views.py:578 243 | msgid "Your reset password token has expired." 244 | msgstr "" 245 | 246 | #: flask_user/views.py:582 247 | msgid "Your reset password token is invalid." 248 | msgstr "" 249 | 250 | #: flask_user/views.py:609 251 | msgid "Your password has been reset successfully." 252 | msgstr "" 253 | 254 | #: flask_user/views.py:626 255 | #, python-format 256 | msgid "You must confirm your email to access '%(url)s'." 257 | msgstr "" 258 | 259 | #: flask_user/views.py:638 260 | #, python-format 261 | msgid "You must be signed in to access '%(url)s'." 262 | msgstr "" 263 | 264 | #: flask_user/views.py:649 265 | #, python-format 266 | msgid "You do not have permission to access '%(url)s'." 267 | msgstr "" 268 | 269 | #: flask_user/views.py:680 flask_user/views.py:701 270 | #, python-format 271 | msgid "" 272 | "A confirmation email has been sent to %(email)s with instructions to " 273 | "complete your registration." 274 | msgstr "" 275 | 276 | #: flask_user/views.py:682 277 | msgid "You have registered successfully." 278 | msgstr "" 279 | 280 | #: flask_user/views.py:710 281 | msgid "Your account has not been enabled." 282 | msgstr "" 283 | 284 | #: flask_user/views.py:719 285 | #, python-format 286 | msgid "" 287 | "Your email address has not yet been confirmed. Check your email Inbox and" 288 | " Spam folders for the confirmation email or Re-send " 289 | "confirmation email." 290 | msgstr "" 291 | 292 | #: flask_user/views.py:730 293 | msgid "You have signed in successfully." 294 | msgstr "" 295 | 296 | #: flask_user/templates/flask_user/forgot_password.html:5 297 | msgid "Forgot Password" 298 | msgstr "" 299 | 300 | #: flask_user/templates/flask_user/invite.html:5 301 | msgid "Invite User" 302 | msgstr "" 303 | 304 | #: flask_user/templates/flask_user/login.html:21 305 | msgid "New here? Register." 306 | msgstr "" 307 | 308 | #: flask_user/templates/flask_user/login.html:44 309 | #: flask_user/templates/flask_user/login_or_register.html:34 310 | msgid "Forgot your Password?" 311 | msgstr "" 312 | 313 | #: flask_user/templates/flask_user/manage_emails.html:5 314 | msgid "Manage Emails" 315 | msgstr "" 316 | 317 | #: flask_user/templates/flask_user/register.html:21 318 | msgid "Already registered? Sign in." 319 | msgstr "" 320 | 321 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 322 | msgid "Resend Confirmation Email" 323 | msgstr "" 324 | 325 | #: flask_user/templates/flask_user/reset_password.html:5 326 | msgid "Reset Password" 327 | msgstr "" 328 | 329 | #: flask_user/templates/flask_user/user_profile.html:5 330 | msgid "User profile" 331 | msgstr "" 332 | 333 | -------------------------------------------------------------------------------- /app/translations/fr/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/fr/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/fr/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # French translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2015-08-03 13:24-0800\n" 12 | "Last-Translator: Alexis Benoist \n" 13 | "Language: fr\n" 14 | "Language-Team: fr \n" 15 | "Plural-Forms: nplurals=2; plural=(n > 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | "Le mot de passe doit contenir 6 caractères avec une minuscule, une " 27 | "majuscule et un chiffre." 28 | 29 | #: flask_user/forms.py:47 30 | msgid "Username must be at least 3 characters long" 31 | msgstr "Le nom d'utilisateur doit contenir au moins 3 caractères." 32 | 33 | #: flask_user/forms.py:52 34 | #, fuzzy 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "" 37 | "Le pseudo peut contenir uniquement des lettres, chiffres, '-', '.' et " 38 | "'_'." 39 | 40 | #: flask_user/forms.py:58 41 | msgid "This Username is already in use. Please try another one." 42 | msgstr "Ce pseudo est déjà utilisé. Veuillez en choisir un autre." 43 | 44 | #: flask_user/forms.py:65 45 | msgid "This Email is already in use. Please try another one." 46 | msgstr "Cette adresse email est déjà utilisée. Veuillez en choisir une autre." 47 | 48 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 49 | #: flask_user/forms.py:260 flask_user/forms.py:336 50 | msgid "Email" 51 | msgstr "Adresse email" 52 | 53 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 54 | #: flask_user/forms.py:337 55 | msgid "Email is required" 56 | msgstr "Adresse email requise" 57 | 58 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 59 | #: flask_user/forms.py:338 60 | msgid "Invalid Email" 61 | msgstr "Adresse email invalide" 62 | 63 | #: flask_user/forms.py:76 64 | msgid "Add Email" 65 | msgstr "Ajouter un mail" 66 | 67 | #: flask_user/forms.py:79 flask_user/forms.py:122 68 | msgid "Old Password" 69 | msgstr "Ancien mot de passe" 70 | 71 | #: flask_user/forms.py:80 flask_user/forms.py:123 72 | msgid "Old Password is required" 73 | msgstr "L'ancien mot de passe est requis" 74 | 75 | #: flask_user/forms.py:82 flask_user/forms.py:310 76 | msgid "New Password" 77 | msgstr "Nouveau mot de passe" 78 | 79 | #: flask_user/forms.py:83 flask_user/forms.py:311 80 | msgid "New Password is required" 81 | msgstr "Le nouveau mot de passe est requis" 82 | 83 | #: flask_user/forms.py:85 flask_user/forms.py:312 84 | msgid "Retype New Password" 85 | msgstr "Retapez le nouveau mot de passe" 86 | 87 | #: flask_user/forms.py:86 flask_user/forms.py:313 88 | msgid "New Password and Retype Password did not match" 89 | msgstr "Les deux mots de passe ne sont pas identiques" 90 | 91 | #: flask_user/forms.py:89 flask_user/forms.py:315 92 | #: flask_user/templates/flask_user/change_password.html:5 93 | #: flask_user/templates/flask_user/user_profile.html:11 94 | msgid "Change password" 95 | msgstr "Changer le mot de passe" 96 | 97 | #: flask_user/forms.py:111 flask_user/forms.py:145 98 | msgid "Old Password is incorrect" 99 | msgstr "L'ancien mot de passe est incorrect" 100 | 101 | #: flask_user/forms.py:118 102 | msgid "New Username" 103 | msgstr "Nouveau pseudo" 104 | 105 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 106 | msgid "Username is required" 107 | msgstr "Le pseudo est requis" 108 | 109 | #: flask_user/forms.py:126 110 | #: flask_user/templates/flask_user/change_username.html:5 111 | #: flask_user/templates/flask_user/user_profile.html:8 112 | msgid "Change username" 113 | msgstr "Changer le pseudo" 114 | 115 | #: flask_user/forms.py:152 flask_user/forms.py:303 116 | msgid "Your email address" 117 | msgstr "" 118 | 119 | #: flask_user/forms.py:153 flask_user/forms.py:304 120 | #, fuzzy 121 | msgid "Email address is required" 122 | msgstr "Adresse email requise" 123 | 124 | #: flask_user/forms.py:154 flask_user/forms.py:305 125 | #, fuzzy 126 | msgid "Invalid Email address" 127 | msgstr "Adresse email invalide" 128 | 129 | #: flask_user/forms.py:156 130 | msgid "Send reset password email" 131 | msgstr "Mot de passe oublié" 132 | 133 | #: flask_user/forms.py:163 flask_user/forms.py:237 134 | #, python-format 135 | msgid "%(username_or_email)s does not exist" 136 | msgstr "" 137 | 138 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 139 | msgid "Username" 140 | msgstr "Pseudo" 141 | 142 | #: flask_user/forms.py:177 flask_user/forms.py:264 143 | msgid "Password" 144 | msgstr "Mot de passe" 145 | 146 | #: flask_user/forms.py:178 flask_user/forms.py:265 147 | msgid "Password is required" 148 | msgstr "Un mot de passe est requis" 149 | 150 | #: flask_user/forms.py:180 151 | msgid "Remember me" 152 | msgstr "Rester connecté" 153 | 154 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 155 | #: flask_user/templates/flask_user/login_or_register.html:9 156 | msgid "Sign in" 157 | msgstr "Connexion" 158 | 159 | #: flask_user/forms.py:189 160 | msgid "Username or Email" 161 | msgstr "Pseudo ou email" 162 | 163 | #: flask_user/forms.py:226 164 | #, fuzzy 165 | msgid "Username/Email" 166 | msgstr "Pseudo ou email" 167 | 168 | #: flask_user/forms.py:240 169 | #, fuzzy 170 | msgid "Incorrect Password" 171 | msgstr "Mot de passe oublié" 172 | 173 | #: flask_user/forms.py:244 174 | #, python-format 175 | msgid "Incorrect %(username_or_email)s and/or Password" 176 | msgstr "%(username_or_email)s et/ou mot de passe incorrect " 177 | 178 | #: flask_user/forms.py:266 179 | msgid "Retype Password" 180 | msgstr "Retapez le mot de passe" 181 | 182 | #: flask_user/forms.py:267 183 | msgid "Password and Retype Password did not match" 184 | msgstr "Le deux mot de passe ne sont pas identiques" 185 | 186 | #: flask_user/forms.py:268 187 | msgid "Token" 188 | msgstr "" 189 | 190 | #: flask_user/forms.py:270 191 | #: flask_user/templates/flask_user/login_or_register.html:41 192 | #: flask_user/templates/flask_user/register.html:5 193 | msgid "Register" 194 | msgstr "Créer un compte" 195 | 196 | #: flask_user/forms.py:307 197 | msgid "Resend email confirmation email" 198 | msgstr "Renvoyer le mail de confirmation" 199 | 200 | #: flask_user/forms.py:340 201 | msgid "Invite!" 202 | msgstr "" 203 | 204 | #: flask_user/translations.py:74 205 | msgid "Home Page" 206 | msgstr "Page d'accueil" 207 | 208 | #: flask_user/translations.py:75 209 | msgid "Profile Page" 210 | msgstr "Profil" 211 | 212 | #: flask_user/translations.py:76 213 | msgid "Special Page" 214 | msgstr "Page spéciale" 215 | 216 | #: flask_user/views.py:46 217 | msgid "Your confirmation token has expired." 218 | msgstr "Votre token de confirmation a expiré" 219 | 220 | #: flask_user/views.py:50 flask_user/views.py:70 221 | msgid "Invalid confirmation token." 222 | msgstr "Token de confirmation invalide" 223 | 224 | #: flask_user/views.py:77 225 | msgid "Your email has been confirmed." 226 | msgstr "Votre email a été confirmé" 227 | 228 | #: flask_user/views.py:115 229 | msgid "Your password has been changed successfully." 230 | msgstr "Votre mot de passe a été changé" 231 | 232 | #: flask_user/views.py:153 233 | #, python-format 234 | msgid "Your username has been changed to '%(username)s'." 235 | msgstr "Votre pseudo est maintement '%(username)s'." 236 | 237 | #: flask_user/views.py:221 238 | #, python-format 239 | msgid "" 240 | "A reset password email has been sent to '%(email)s'. Open that email and " 241 | "follow the instructions to reset your password." 242 | msgstr "" 243 | "Un mail de changement de mot de passe a été envoyé à '%(email)s'. Ouvrez " 244 | "le mail et suivez les instructions pour mettre à jour votre mot de passe." 245 | 246 | #: flask_user/views.py:293 247 | msgid "You have signed out successfully." 248 | msgstr "Vous êtes bien déconnecté." 249 | 250 | #: flask_user/views.py:534 251 | msgid "Invitation has been sent." 252 | msgstr "" 253 | 254 | #: flask_user/views.py:578 255 | msgid "Your reset password token has expired." 256 | msgstr "Votre code de changement de mot de passe a expiré." 257 | 258 | #: flask_user/views.py:582 259 | msgid "Your reset password token is invalid." 260 | msgstr "Votre code de changement de mot de passe n'est pas valide." 261 | 262 | #: flask_user/views.py:609 263 | #, fuzzy 264 | msgid "Your password has been reset successfully." 265 | msgstr "Votre mot de passe a été changé" 266 | 267 | #: flask_user/views.py:626 268 | #, python-format 269 | msgid "You must confirm your email to access '%(url)s'." 270 | msgstr "Vous devez confirmer votre mail pour accéder à '%(url)s'." 271 | 272 | #: flask_user/views.py:638 273 | #, python-format 274 | msgid "You must be signed in to access '%(url)s'." 275 | msgstr "Vous devez être connecté pour accéder à %(url)s'." 276 | 277 | #: flask_user/views.py:649 278 | #, python-format 279 | msgid "You do not have permission to access '%(url)s'." 280 | msgstr "Vous n'avez pas les droits pour accéder à '%(url)s'." 281 | 282 | #: flask_user/views.py:680 flask_user/views.py:701 283 | #, python-format 284 | msgid "" 285 | "A confirmation email has been sent to %(email)s with instructions to " 286 | "complete your registration." 287 | msgstr "" 288 | "Un email de confirmation a été envoyé à %(email)s avec les instructions " 289 | "pour terminer votre enregistrement." 290 | 291 | #: flask_user/views.py:682 292 | msgid "You have registered successfully." 293 | msgstr "Votre compte a été créé avec succès." 294 | 295 | #: flask_user/views.py:710 296 | msgid "Your account has not been enabled." 297 | msgstr "Votre compte n'a pas été activé." 298 | 299 | #: flask_user/views.py:719 300 | #, python-format 301 | msgid "" 302 | "Your email address has not yet been confirmed. Check your email Inbox and" 303 | " Spam folders for the confirmation email or Re-send " 304 | "confirmation email." 305 | msgstr "" 306 | "Votre adresse email n'a pas encore été confirmée. Vérifiez votre boite de" 307 | " réception ainsi que le dossier spam pour l'email de confirmation ou Renvoyer l'email de confirmation." 309 | 310 | #: flask_user/views.py:730 311 | msgid "You have signed in successfully." 312 | msgstr "Vous êtes bien connecté." 313 | 314 | #: flask_user/templates/flask_user/forgot_password.html:5 315 | msgid "Forgot Password" 316 | msgstr "Mot de passe oublié" 317 | 318 | #: flask_user/templates/flask_user/invite.html:5 319 | msgid "Invite User" 320 | msgstr "" 321 | 322 | #: flask_user/templates/flask_user/login.html:21 323 | msgid "New here? Register." 324 | msgstr "Nouveau? Créez un compte" 325 | 326 | #: flask_user/templates/flask_user/login.html:44 327 | #: flask_user/templates/flask_user/login_or_register.html:34 328 | msgid "Forgot your Password?" 329 | msgstr "Mot de passe oublié?" 330 | 331 | #: flask_user/templates/flask_user/manage_emails.html:5 332 | msgid "Manage Emails" 333 | msgstr "Gérer les email." 334 | 335 | #: flask_user/templates/flask_user/register.html:21 336 | msgid "Already registered? Sign in." 337 | msgstr "Déjà un compte? Connectez vous." 338 | 339 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 340 | msgid "Resend Confirmation Email" 341 | msgstr "Renvoyer le mail de confirmation" 342 | 343 | #: flask_user/templates/flask_user/reset_password.html:5 344 | msgid "Reset Password" 345 | msgstr "Changer de mot de passe" 346 | 347 | #: flask_user/templates/flask_user/user_profile.html:5 348 | msgid "User profile" 349 | msgstr "Profil" 350 | 351 | #~ msgid "Incorrect Username and Password" 352 | #~ msgstr "Pseudo ou mot de passe incorrect " 353 | 354 | #~ msgid "Incorrect Email and Password" 355 | #~ msgstr "Email ou mot de passe incorrect " 356 | 357 | #~ msgid "" 358 | #~ msgstr "" 359 | 360 | #~ msgid "Change Password" 361 | #~ msgstr "Modifier le mot de passe" 362 | 363 | #~ msgid "Change Username" 364 | #~ msgstr "Changer de pseudo" 365 | 366 | #~ msgid "Email does not exist" 367 | #~ msgstr "" 368 | 369 | -------------------------------------------------------------------------------- /app/translations/it/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/it/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/it/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Italian translations for Flask-Users. 2 | # Copyright (C) 2016 Lele Gaifax 3 | # This file is distributed under the same license as the Flask-Users 4 | # project. 5 | # Lele Gaifax , 2016. 6 | # 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: Flask-Users 0.6.8\n" 10 | "Report-Msgid-Bugs-To: lele@metapensiero.it\n" 11 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 12 | "PO-Revision-Date: 2016-08-14 18:32+0200\n" 13 | "Last-Translator: Lele Gaifax \n" 14 | "Language: it\n" 15 | "Language-Team: it \n" 16 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=utf-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Generated-By: Babel 2.3.4\n" 21 | 22 | #: flask_user/forms.py:41 23 | msgid "" 24 | "Password must have at least 6 characters with one lowercase letter, one " 25 | "uppercase letter and one number" 26 | msgstr "" 27 | "La password deve contenere almeno 6 caratteri, tra cui almeno una lettera" 28 | " minuscola, una maiuscola e una cifra." 29 | 30 | #: flask_user/forms.py:47 31 | msgid "Username must be at least 3 characters long" 32 | msgstr "Il nome utente deve essere composto di almeno tre lettere." 33 | 34 | #: flask_user/forms.py:52 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "Il nome utente può contenere solo lettere, cifre, '-', '.' e '_'" 37 | 38 | #: flask_user/forms.py:58 39 | msgid "This Username is already in use. Please try another one." 40 | msgstr "Questo nome utente è già stato usato. Scegli un nome diverso." 41 | 42 | #: flask_user/forms.py:65 43 | msgid "This Email is already in use. Please try another one." 44 | msgstr "Questa email è già stata usata. Scegli un indirizzo diverso." 45 | 46 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 47 | #: flask_user/forms.py:260 flask_user/forms.py:336 48 | msgid "Email" 49 | msgstr "Email" 50 | 51 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 52 | #: flask_user/forms.py:337 53 | msgid "Email is required" 54 | msgstr "L'indirizzo email è obbligatorio" 55 | 56 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 57 | #: flask_user/forms.py:338 58 | msgid "Invalid Email" 59 | msgstr "Email non valida" 60 | 61 | #: flask_user/forms.py:76 62 | msgid "Add Email" 63 | msgstr "Aggiungi email" 64 | 65 | #: flask_user/forms.py:79 flask_user/forms.py:122 66 | msgid "Old Password" 67 | msgstr "Password precedente" 68 | 69 | #: flask_user/forms.py:80 flask_user/forms.py:123 70 | msgid "Old Password is required" 71 | msgstr "La password precedente è obbligatoria." 72 | 73 | #: flask_user/forms.py:82 flask_user/forms.py:310 74 | msgid "New Password" 75 | msgstr "Nuova password" 76 | 77 | #: flask_user/forms.py:83 flask_user/forms.py:311 78 | msgid "New Password is required" 79 | msgstr "La nuova password è obbligatoria." 80 | 81 | #: flask_user/forms.py:85 flask_user/forms.py:312 82 | msgid "Retype New Password" 83 | msgstr "Ripeti la nuova password" 84 | 85 | #: flask_user/forms.py:86 flask_user/forms.py:313 86 | msgid "New Password and Retype Password did not match" 87 | msgstr "La nuova password e la sua ripetizione non combaciano." 88 | 89 | #: flask_user/forms.py:89 flask_user/forms.py:315 90 | #: flask_user/templates/flask_user/change_password.html:5 91 | #: flask_user/templates/flask_user/user_profile.html:11 92 | msgid "Change password" 93 | msgstr "Cambia password" 94 | 95 | #: flask_user/forms.py:111 flask_user/forms.py:145 96 | msgid "Old Password is incorrect" 97 | msgstr "La password precedente non è corretta." 98 | 99 | #: flask_user/forms.py:118 100 | msgid "New Username" 101 | msgstr "Nuovo nome utente" 102 | 103 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 104 | msgid "Username is required" 105 | msgstr "Il nome utente è obbligatorio." 106 | 107 | #: flask_user/forms.py:126 108 | #: flask_user/templates/flask_user/change_username.html:5 109 | #: flask_user/templates/flask_user/user_profile.html:8 110 | msgid "Change username" 111 | msgstr "Cambia nome utente" 112 | 113 | #: flask_user/forms.py:152 flask_user/forms.py:303 114 | msgid "Your email address" 115 | msgstr "Indirizzo email" 116 | 117 | #: flask_user/forms.py:153 flask_user/forms.py:304 118 | msgid "Email address is required" 119 | msgstr "L'indirizzo email è obbligatorio" 120 | 121 | #: flask_user/forms.py:154 flask_user/forms.py:305 122 | msgid "Invalid Email address" 123 | msgstr "Indirizzo email non valido" 124 | 125 | #: flask_user/forms.py:156 126 | msgid "Send reset password email" 127 | msgstr "Invia email di reset della password" 128 | 129 | #: flask_user/forms.py:163 flask_user/forms.py:237 130 | #, python-format 131 | msgid "%(username_or_email)s does not exist" 132 | msgstr "%(username_or_email)s non esistente" 133 | 134 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 135 | msgid "Username" 136 | msgstr "Nome utente" 137 | 138 | #: flask_user/forms.py:177 flask_user/forms.py:264 139 | msgid "Password" 140 | msgstr "Password" 141 | 142 | #: flask_user/forms.py:178 flask_user/forms.py:265 143 | msgid "Password is required" 144 | msgstr "La password è obbligatoria" 145 | 146 | #: flask_user/forms.py:180 147 | msgid "Remember me" 148 | msgstr "Ricorda la mia identità" 149 | 150 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 151 | #: flask_user/templates/flask_user/login_or_register.html:9 152 | msgid "Sign in" 153 | msgstr "Accedi" 154 | 155 | #: flask_user/forms.py:189 156 | msgid "Username or Email" 157 | msgstr "Nome utente o email" 158 | 159 | #: flask_user/forms.py:226 160 | msgid "Username/Email" 161 | msgstr "Nome utente/email" 162 | 163 | #: flask_user/forms.py:240 164 | #, fuzzy 165 | msgid "Incorrect Password" 166 | msgstr "Ho dimenticato la password" 167 | 168 | #: flask_user/forms.py:244 169 | #, python-format 170 | msgid "Incorrect %(username_or_email)s and/or Password" 171 | msgstr "%(username_or_email)s e/o password non corretti" 172 | 173 | #: flask_user/forms.py:266 174 | msgid "Retype Password" 175 | msgstr "Ripeti la password" 176 | 177 | #: flask_user/forms.py:267 178 | msgid "Password and Retype Password did not match" 179 | msgstr "La password e la sua ripetizione non combaciano." 180 | 181 | #: flask_user/forms.py:268 182 | msgid "Token" 183 | msgstr "Token" 184 | 185 | #: flask_user/forms.py:270 186 | #: flask_user/templates/flask_user/login_or_register.html:41 187 | #: flask_user/templates/flask_user/register.html:5 188 | msgid "Register" 189 | msgstr "Registrati" 190 | 191 | #: flask_user/forms.py:307 192 | msgid "Resend email confirmation email" 193 | msgstr "Rispedisci l'email di conferma" 194 | 195 | #: flask_user/forms.py:340 196 | msgid "Invite!" 197 | msgstr "Invita!" 198 | 199 | #: flask_user/translations.py:74 200 | msgid "Home Page" 201 | msgstr "" 202 | 203 | #: flask_user/translations.py:75 204 | msgid "Profile Page" 205 | msgstr "" 206 | 207 | #: flask_user/translations.py:76 208 | msgid "Special Page" 209 | msgstr "" 210 | 211 | #: flask_user/views.py:46 212 | msgid "Your confirmation token has expired." 213 | msgstr "Il token di conferma è scaduto." 214 | 215 | #: flask_user/views.py:50 flask_user/views.py:70 216 | msgid "Invalid confirmation token." 217 | msgstr "Il token di conferma non è valido." 218 | 219 | #: flask_user/views.py:77 220 | msgid "Your email has been confirmed." 221 | msgstr "Il tuo indirizzo email è stato confermato." 222 | 223 | #: flask_user/views.py:115 224 | msgid "Your password has been changed successfully." 225 | msgstr "La tua password è stata modificata con successo." 226 | 227 | #: flask_user/views.py:153 228 | #, python-format 229 | msgid "Your username has been changed to '%(username)s'." 230 | msgstr "Il tuo nome utente è stato cambiato a “%(username)s”." 231 | 232 | #: flask_user/views.py:221 233 | #, python-format 234 | msgid "" 235 | "A reset password email has been sent to '%(email)s'. Open that email and " 236 | "follow the instructions to reset your password." 237 | msgstr "" 238 | "Una email di reset della password è stata inviata a “%(email)s”. Apri " 239 | "quel messaggio e segui le istruzioni per resettare la password." 240 | 241 | #: flask_user/views.py:293 242 | msgid "You have signed out successfully." 243 | msgstr "Ti sei disconnesso con successo." 244 | 245 | #: flask_user/views.py:534 246 | msgid "Invitation has been sent." 247 | msgstr "L'invito è stato spedito." 248 | 249 | #: flask_user/views.py:578 250 | msgid "Your reset password token has expired." 251 | msgstr "Il token di reset della password è scaduto." 252 | 253 | #: flask_user/views.py:582 254 | msgid "Your reset password token is invalid." 255 | msgstr "Il token di reset della password non è valido." 256 | 257 | #: flask_user/views.py:609 258 | msgid "Your password has been reset successfully." 259 | msgstr "La tua password è stata resettata correttamente." 260 | 261 | #: flask_user/views.py:626 262 | #, python-format 263 | msgid "You must confirm your email to access '%(url)s'." 264 | msgstr "Devi confermare l'indirizzo email per accedere a '%(url)s'." 265 | 266 | #: flask_user/views.py:638 267 | #, python-format 268 | msgid "You must be signed in to access '%(url)s'." 269 | msgstr "Per accedere a “%(url)s” devi farti riconoscere." 270 | 271 | #: flask_user/views.py:649 272 | #, python-format 273 | msgid "You do not have permission to access '%(url)s'." 274 | msgstr "Non hai i permessi per accedere a “%(url)s”." 275 | 276 | #: flask_user/views.py:680 flask_user/views.py:701 277 | #, python-format 278 | msgid "" 279 | "A confirmation email has been sent to %(email)s with instructions to " 280 | "complete your registration." 281 | msgstr "" 282 | "Una email di conferma è stata inviata a %(email)s con le istruzioni per " 283 | "completare la registrazione." 284 | 285 | #: flask_user/views.py:682 286 | msgid "You have registered successfully." 287 | msgstr "Sei stato registrato con successo." 288 | 289 | #: flask_user/views.py:710 290 | msgid "Your account has not been enabled." 291 | msgstr "Il tuo account non è stato abilitato." 292 | 293 | #: flask_user/views.py:719 294 | #, python-format 295 | msgid "" 296 | "Your email address has not yet been confirmed. Check your email Inbox and" 297 | " Spam folders for the confirmation email or Re-send " 298 | "confirmation email." 299 | msgstr "" 300 | "Il tuo indirizzo email non è ancora stato confermato. Controlla se il " 301 | "messaggio di conferma è presente nella cartella \"Posta in arrivo\" o " 302 | "nella \"Spam\", oppure richiedine l'invio." 303 | 304 | #: flask_user/views.py:730 305 | msgid "You have signed in successfully." 306 | msgstr "Sei stato riconosciuto con successo." 307 | 308 | #: flask_user/templates/flask_user/forgot_password.html:5 309 | msgid "Forgot Password" 310 | msgstr "Ho dimenticato la password" 311 | 312 | #: flask_user/templates/flask_user/invite.html:5 313 | msgid "Invite User" 314 | msgstr "Invita utente" 315 | 316 | #: flask_user/templates/flask_user/login.html:21 317 | msgid "New here? Register." 318 | msgstr "Nuovo utente? Registrati!" 319 | 320 | #: flask_user/templates/flask_user/login.html:44 321 | #: flask_user/templates/flask_user/login_or_register.html:34 322 | msgid "Forgot your Password?" 323 | msgstr "Hai dimenticato la password?" 324 | 325 | #: flask_user/templates/flask_user/manage_emails.html:5 326 | msgid "Manage Emails" 327 | msgstr "Gestione indirizzi email" 328 | 329 | #: flask_user/templates/flask_user/register.html:21 330 | msgid "Already registered? Sign in." 331 | msgstr "Sei già registrato? Fatti riconoscere." 332 | 333 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 334 | msgid "Resend Confirmation Email" 335 | msgstr "Reinvio email di conferma" 336 | 337 | #: flask_user/templates/flask_user/reset_password.html:5 338 | msgid "Reset Password" 339 | msgstr "Resetta la password" 340 | 341 | #: flask_user/templates/flask_user/user_profile.html:5 342 | msgid "User profile" 343 | msgstr "Profilo utente" 344 | 345 | -------------------------------------------------------------------------------- /app/translations/messages.pot: -------------------------------------------------------------------------------- 1 | # Translations template for PROJECT. 2 | # Copyright (C) 2018 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2018. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PROJECT VERSION\n" 10 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 | "POT-Creation-Date: 2018-02-14 13:39+0300\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Generated-By: Babel 2.5.3\n" 19 | 20 | -------------------------------------------------------------------------------- /app/translations/nl/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/nl/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/nl/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Dutch translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2017-09-05 17:02-0700\n" 12 | "Last-Translator: \n" 13 | "Language: nl\n" 14 | "Language-Team: nl \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | "X-Generator: Poedit 2.0.3\n" 21 | 22 | #: flask_user/forms.py:41 23 | msgid "" 24 | "Password must have at least 6 characters with one lowercase letter, one " 25 | "uppercase letter and one number" 26 | msgstr "" 27 | "Wachtwoorden moeten tenminste 6 tekens bevatten met 1 hoofdletter, 1 kleine " 28 | "letter en 1 nummer" 29 | 30 | #: flask_user/forms.py:47 31 | msgid "Username must be at least 3 characters long" 32 | msgstr "Gebruikersnaam moet ten minste 3 tekens bevatten" 33 | 34 | #: flask_user/forms.py:52 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "Gebruikersnamen mogen alleen letters, nummers, '-', '.' en '_' bevatten" 37 | 38 | #: flask_user/forms.py:58 39 | msgid "This Username is already in use. Please try another one." 40 | msgstr "Deze gebruikersnaam is in gebruik. Gaarne een andere naam proberen." 41 | 42 | #: flask_user/forms.py:65 43 | msgid "This Email is already in use. Please try another one." 44 | msgstr "Deze E-mail is al in gebruik. Gaarne een andere E-mail proberen." 45 | 46 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 47 | #: flask_user/forms.py:260 flask_user/forms.py:336 48 | msgid "Email" 49 | msgstr "E-mail" 50 | 51 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 52 | #: flask_user/forms.py:337 53 | msgid "Email is required" 54 | msgstr "E-mail is verplicht" 55 | 56 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 57 | #: flask_user/forms.py:338 58 | msgid "Invalid Email" 59 | msgstr "Onjuist E-mail" 60 | 61 | #: flask_user/forms.py:76 62 | msgid "Add Email" 63 | msgstr "E-mail toevoegen" 64 | 65 | #: flask_user/forms.py:79 flask_user/forms.py:122 66 | msgid "Old Password" 67 | msgstr "Oud Wachtwoord" 68 | 69 | #: flask_user/forms.py:80 flask_user/forms.py:123 70 | msgid "Old Password is required" 71 | msgstr "Oud Wachtwoord is verplicht" 72 | 73 | #: flask_user/forms.py:82 flask_user/forms.py:310 74 | msgid "New Password" 75 | msgstr "Nieuw Wachtwoord" 76 | 77 | #: flask_user/forms.py:83 flask_user/forms.py:311 78 | msgid "New Password is required" 79 | msgstr "Nieuw Wachtwoord is verplicth" 80 | 81 | #: flask_user/forms.py:85 flask_user/forms.py:312 82 | msgid "Retype New Password" 83 | msgstr "Herhaal Nieuw Wachtwoord" 84 | 85 | #: flask_user/forms.py:86 flask_user/forms.py:313 86 | msgid "New Password and Retype Password did not match" 87 | msgstr "Nieuw Wachtwoord en Herhaal Wachtwoord komen niet overeen" 88 | 89 | #: flask_user/forms.py:89 flask_user/forms.py:315 90 | #: flask_user/templates/flask_user/change_password.html:5 91 | #: flask_user/templates/flask_user/user_profile.html:11 92 | msgid "Change password" 93 | msgstr "Wijzig wachtwoord" 94 | 95 | #: flask_user/forms.py:111 flask_user/forms.py:145 96 | msgid "Old Password is incorrect" 97 | msgstr "Oud Wachtwoord is onjuist" 98 | 99 | #: flask_user/forms.py:118 100 | msgid "New Username" 101 | msgstr "Niuew Gebruikersnaam" 102 | 103 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 104 | msgid "Username is required" 105 | msgstr "Gebruikersnaam is verplicht" 106 | 107 | #: flask_user/forms.py:126 108 | #: flask_user/templates/flask_user/change_username.html:5 109 | #: flask_user/templates/flask_user/user_profile.html:8 110 | msgid "Change username" 111 | msgstr "Wijzig mijn gebruikersnaam" 112 | 113 | #: flask_user/forms.py:152 flask_user/forms.py:303 114 | msgid "Your email address" 115 | msgstr "Uw E-mail" 116 | 117 | #: flask_user/forms.py:153 flask_user/forms.py:304 118 | msgid "Email address is required" 119 | msgstr "E-mail is verplicht" 120 | 121 | #: flask_user/forms.py:154 flask_user/forms.py:305 122 | msgid "Invalid Email address" 123 | msgstr "Ongeldig E-mail" 124 | 125 | #: flask_user/forms.py:156 126 | msgid "Send reset password email" 127 | msgstr "Verstuur Reset Wachtwoord E-mail" 128 | 129 | #: flask_user/forms.py:163 flask_user/forms.py:237 130 | #, python-format 131 | msgid "%(username_or_email)s does not exist" 132 | msgstr "%(username_or_email)s bestaat niet" 133 | 134 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 135 | msgid "Username" 136 | msgstr "Gebruikersnaam" 137 | 138 | #: flask_user/forms.py:177 flask_user/forms.py:264 139 | msgid "Password" 140 | msgstr "Wachtwoord" 141 | 142 | #: flask_user/forms.py:178 flask_user/forms.py:265 143 | msgid "Password is required" 144 | msgstr "Wachtwoord is verplicht" 145 | 146 | #: flask_user/forms.py:180 147 | msgid "Remember me" 148 | msgstr "Herinner mij" 149 | 150 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 151 | #: flask_user/templates/flask_user/login_or_register.html:9 152 | msgid "Sign in" 153 | msgstr "Aanmelden" 154 | 155 | #: flask_user/forms.py:189 156 | msgid "Username or Email" 157 | msgstr "Gebruikersnaam of E-mail" 158 | 159 | #: flask_user/forms.py:226 160 | msgid "Username/Email" 161 | msgstr "Gebruikersnaam/E-mail" 162 | 163 | #: flask_user/forms.py:240 164 | msgid "Incorrect Password" 165 | msgstr "Verkeerd wachtwoord" 166 | 167 | #: flask_user/forms.py:244 168 | #, python-format 169 | msgid "Incorrect %(username_or_email)s and/or Password" 170 | msgstr "Onjuist %(username_or_email)s en/of Wachtwoord" 171 | 172 | #: flask_user/forms.py:266 173 | msgid "Retype Password" 174 | msgstr "Herhaal Wachtwoord" 175 | 176 | #: flask_user/forms.py:267 177 | msgid "Password and Retype Password did not match" 178 | msgstr "Wachtwoord en Herhaal Wachtwoord komen niet overeen" 179 | 180 | #: flask_user/forms.py:268 181 | msgid "Token" 182 | msgstr "Merkteken" 183 | 184 | #: flask_user/forms.py:270 185 | #: flask_user/templates/flask_user/login_or_register.html:41 186 | #: flask_user/templates/flask_user/register.html:5 187 | msgid "Register" 188 | msgstr "Registreren" 189 | 190 | #: flask_user/forms.py:307 191 | msgid "Resend email confirmation email" 192 | msgstr "Bevestigings e-mail nogmaals versturen" 193 | 194 | #: flask_user/forms.py:340 195 | msgid "Invite!" 196 | msgstr "Nodig uit" 197 | 198 | #: flask_user/translations.py:74 199 | msgid "Home Page" 200 | msgstr "Startpagina" 201 | 202 | #: flask_user/translations.py:75 203 | msgid "Profile Page" 204 | msgstr "Profielpagina" 205 | 206 | #: flask_user/translations.py:76 207 | msgid "Special Page" 208 | msgstr "Speciale Pagina" 209 | 210 | #: flask_user/views.py:46 211 | msgid "Your confirmation token has expired." 212 | msgstr "Uw bevestigingstoken is verlopen." 213 | 214 | #: flask_user/views.py:50 flask_user/views.py:70 215 | msgid "Invalid confirmation token." 216 | msgstr "Onjust bevestigingstoken." 217 | 218 | #: flask_user/views.py:77 219 | msgid "Your email has been confirmed." 220 | msgstr "Uw E-mail is bevestigd." 221 | 222 | #: flask_user/views.py:115 223 | msgid "Your password has been changed successfully." 224 | msgstr "Uw Wachtwoord is gewijzigd." 225 | 226 | #: flask_user/views.py:153 227 | #, python-format 228 | msgid "Your username has been changed to '%(username)s'." 229 | msgstr "Uw gebruikersnaam is gewijzigd tot '%(username)s'." 230 | 231 | #: flask_user/views.py:221 232 | #, python-format 233 | msgid "" 234 | "A reset password email has been sent to '%(email)s'. Open that email and " 235 | "follow the instructions to reset your password." 236 | msgstr "" 237 | "Een reset wachtwoord E-mail is verstuurd naar '%(email)s'. Open deze E-mail " 238 | "en volg de instructies om uw wachtwoord opnieuw in the stellen." 239 | 240 | #: flask_user/views.py:293 241 | msgid "You have signed out successfully." 242 | msgstr "U ben met success afgemeld." 243 | 244 | #: flask_user/views.py:534 245 | msgid "Invitation has been sent." 246 | msgstr "Uitnodiging is verstuurd." 247 | 248 | #: flask_user/views.py:578 249 | msgid "Your reset password token has expired." 250 | msgstr "Your reset wachtwoord token is verlopern." 251 | 252 | #: flask_user/views.py:582 253 | msgid "Your reset password token is invalid." 254 | msgstr "Uw reset wachtwoord token is ongeldig." 255 | 256 | #: flask_user/views.py:609 257 | msgid "Your password has been reset successfully." 258 | msgstr "Uw Wachtwoord is met succes gewijzigd." 259 | 260 | #: flask_user/views.py:626 261 | #, python-format 262 | msgid "You must confirm your email to access '%(url)s'." 263 | msgstr "Je moet zijn ingelogd om toegang te krijgen tot %(url)s." 264 | 265 | #: flask_user/views.py:638 266 | #, python-format 267 | msgid "You must be signed in to access '%(url)s'." 268 | msgstr "Je moet zijn ingelogd om toegang te krijgen to %(url)s." 269 | 270 | #: flask_user/views.py:649 271 | #, python-format 272 | msgid "You do not have permission to access '%(url)s'." 273 | msgstr "U hebt geen toestemming tot %(url)s." 274 | 275 | #: flask_user/views.py:680 flask_user/views.py:701 276 | #, python-format 277 | msgid "" 278 | "A confirmation email has been sent to %(email)s with instructions to complete " 279 | "your registration." 280 | msgstr "" 281 | "Een bevestigings E-mail is verstuurd naar %(email)s met instructies om uw " 282 | "registratie te voltooien." 283 | 284 | #: flask_user/views.py:682 285 | msgid "You have registered successfully." 286 | msgstr "U heeft zich met succes aangemeld." 287 | 288 | #: flask_user/views.py:710 289 | msgid "Your account has not been enabled." 290 | msgstr "Uw account is niet actief." 291 | 292 | #: flask_user/views.py:719 293 | #, python-format 294 | msgid "" 295 | "Your email address has not yet been confirmed. Check your email Inbox and " 296 | "Spam folders for the confirmation email or Re-send " 297 | "confirmation email." 298 | msgstr "" 299 | "Uw E-mail is nog niet bevestigd. Controleer uw Inbox end Spam mappen voor de " 300 | "bevestiging E-mail en volg de instructies im je account te activeren. Confirmatie E-mail herzenden." 302 | 303 | #: flask_user/views.py:730 304 | msgid "You have signed in successfully." 305 | msgstr "U heeft zich met success aangemeld." 306 | 307 | #: flask_user/templates/flask_user/forgot_password.html:5 308 | msgid "Forgot Password" 309 | msgstr "Wachtwoord vergeten" 310 | 311 | #: flask_user/templates/flask_user/invite.html:5 312 | msgid "Invite User" 313 | msgstr "Nodig gebruiker uit" 314 | 315 | #: flask_user/templates/flask_user/login.html:21 316 | msgid "New here? Register." 317 | msgstr "Nieuw hier? Inschrijven." 318 | 319 | #: flask_user/templates/flask_user/login.html:44 320 | #: flask_user/templates/flask_user/login_or_register.html:34 321 | msgid "Forgot your Password?" 322 | msgstr "Wachtwoord vergeten?" 323 | 324 | #: flask_user/templates/flask_user/manage_emails.html:5 325 | msgid "Manage Emails" 326 | msgstr "E-mail beheer" 327 | 328 | #: flask_user/templates/flask_user/register.html:21 329 | msgid "Already registered? Sign in." 330 | msgstr "Al ingeschreven? Aanmelden." 331 | 332 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 333 | msgid "Resend Confirmation Email" 334 | msgstr "Bevestigings e-mail nogmaals versturen" 335 | 336 | #: flask_user/templates/flask_user/reset_password.html:5 337 | msgid "Reset Password" 338 | msgstr "Reset Wachtwoord" 339 | 340 | #: flask_user/templates/flask_user/user_profile.html:5 341 | msgid "User profile" 342 | msgstr "Gebruikersprofiel" 343 | -------------------------------------------------------------------------------- /app/translations/ru/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/ru/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/ru/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Russian translations for PROJECT. 2 | # Copyright (C) 2016 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2016. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2016-11-10 09:51-0800\n" 11 | "PO-Revision-Date: 2017-08-08 16:40+0300\n" 12 | "Last-Translator: \n" 13 | "Language: ru\n" 14 | "Language-Team: ru \n" 15 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " 16 | "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=utf-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Generated-By: Babel 2.4.0\n" 21 | 22 | #: flask_user/forms.py:35 23 | msgid "" 24 | "Password must have at least 6 characters with one lowercase letter, one " 25 | "uppercase letter and one number" 26 | msgstr "" 27 | "Пароль должен иметь не менее 6 символов, одну строчную букву, одну " 28 | "заглавную букву и одну цифру" 29 | 30 | #: flask_user/forms.py:41 31 | msgid "Username must be at least 3 characters long" 32 | msgstr "Имя пользователя должно быть не менее 3 символов" 33 | 34 | #: flask_user/forms.py:46 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "" 37 | "Имя пользователя может содержать только буквы, цифры или символы '-', '.'" 38 | " , '_'" 39 | 40 | #: flask_user/forms.py:52 41 | msgid "This Username is already in use. Please try another one." 42 | msgstr "Это имя пользователя уже используется. Пожалуйста, попробуйте другое имя." 43 | 44 | #: flask_user/forms.py:59 45 | msgid "This Email is already in use. Please try another one." 46 | msgstr "" 47 | "Этот адрес электронной почты уже используется. Пожалуйста, попробуйте " 48 | "другой." 49 | 50 | #: flask_user/forms.py:66 flask_user/forms.py:167 flask_user/forms.py:226 51 | #: flask_user/forms.py:254 flask_user/forms.py:330 52 | msgid "Email" 53 | msgstr "Эл. почта" 54 | 55 | #: flask_user/forms.py:67 flask_user/forms.py:168 flask_user/forms.py:255 56 | #: flask_user/forms.py:331 57 | msgid "Email is required" 58 | msgstr "Поле электронной почты обязательно для заполнения" 59 | 60 | #: flask_user/forms.py:68 flask_user/forms.py:169 flask_user/forms.py:256 61 | #: flask_user/forms.py:332 62 | msgid "Invalid Email" 63 | msgstr "Неверный адрес электронной почты" 64 | 65 | #: flask_user/forms.py:70 66 | msgid "Add Email" 67 | msgstr "Добавить адрес электронной почты" 68 | 69 | #: flask_user/forms.py:73 flask_user/forms.py:116 70 | msgid "Old Password" 71 | msgstr "Старый пароль" 72 | 73 | #: flask_user/forms.py:74 flask_user/forms.py:117 74 | msgid "Old Password is required" 75 | msgstr "Поля со старым паролем обязательно для заполнения" 76 | 77 | #: flask_user/forms.py:76 flask_user/forms.py:304 78 | msgid "New Password" 79 | msgstr "Новый пароль" 80 | 81 | #: flask_user/forms.py:77 flask_user/forms.py:305 82 | msgid "New Password is required" 83 | msgstr "Поле с новым паролем обязательно для заполнения" 84 | 85 | #: flask_user/forms.py:79 flask_user/forms.py:306 86 | msgid "Retype New Password" 87 | msgstr "Повтор нового пароля" 88 | 89 | #: flask_user/forms.py:80 flask_user/forms.py:307 90 | msgid "New Password and Retype Password did not match" 91 | msgstr "Новый пароль и подтверждение пароля не совпадают" 92 | 93 | #: flask_user/forms.py:83 flask_user/forms.py:309 94 | #: flask_user/templates/flask_user/change_password.html:5 95 | #: flask_user/templates/flask_user/user_profile.html:11 96 | msgid "Change password" 97 | msgstr "Изменить пароль" 98 | 99 | #: flask_user/forms.py:105 flask_user/forms.py:139 100 | msgid "Old Password is incorrect" 101 | msgstr "Старый пароль неверный" 102 | 103 | #: flask_user/forms.py:112 104 | msgid "New Username" 105 | msgstr "Новое имя пользователя" 106 | 107 | #: flask_user/forms.py:113 flask_user/forms.py:165 flask_user/forms.py:252 108 | msgid "Username is required" 109 | msgstr "Поле с имененм пользователя обязательно для заполнения" 110 | 111 | #: flask_user/forms.py:120 112 | #: flask_user/templates/flask_user/change_username.html:5 113 | #: flask_user/templates/flask_user/user_profile.html:8 114 | msgid "Change username" 115 | msgstr "Сменить имя пользователя" 116 | 117 | #: flask_user/forms.py:146 flask_user/forms.py:297 118 | msgid "Your email address" 119 | msgstr "Ваш адрес эл. почты" 120 | 121 | #: flask_user/forms.py:147 flask_user/forms.py:298 122 | msgid "Email address is required" 123 | msgstr "Адрес электронной почты обязателен для заполнения" 124 | 125 | #: flask_user/forms.py:148 flask_user/forms.py:299 126 | msgid "Invalid Email address" 127 | msgstr "Неверный адрес эл. почты" 128 | 129 | #: flask_user/forms.py:150 130 | msgid "Send reset password email" 131 | msgstr "Восстановить пароль с помощью эл. почты" 132 | 133 | #: flask_user/forms.py:157 flask_user/forms.py:231 134 | #, python-format 135 | msgid "%(username_or_email)s does not exist" 136 | msgstr "%(username_or_email)s не существует" 137 | 138 | #: flask_user/forms.py:164 flask_user/forms.py:223 flask_user/forms.py:251 139 | msgid "Username" 140 | msgstr "Имя пользователя" 141 | 142 | #: flask_user/forms.py:171 flask_user/forms.py:258 143 | msgid "Password" 144 | msgstr "Пароль" 145 | 146 | #: flask_user/forms.py:172 flask_user/forms.py:259 147 | msgid "Password is required" 148 | msgstr "Пароль обязателен для заполнения" 149 | 150 | #: flask_user/forms.py:174 151 | msgid "Remember me" 152 | msgstr "Запомнить меня" 153 | 154 | #: flask_user/forms.py:176 flask_user/templates/flask_user/login.html:5 155 | #: flask_user/templates/flask_user/login_or_register.html:9 156 | msgid "Sign in" 157 | msgstr "Вход" 158 | 159 | #: flask_user/forms.py:183 160 | msgid "Username or Email" 161 | msgstr "Имя пользователя или адрес эл. почты" 162 | 163 | #: flask_user/forms.py:220 164 | msgid "Username/Email" 165 | msgstr "Имя пользователя/Эл. почта" 166 | 167 | #: flask_user/forms.py:234 168 | msgid "Incorrect Password" 169 | msgstr "Неверный пароль" 170 | 171 | #: flask_user/forms.py:238 172 | #, python-format 173 | msgid "Incorrect %(username_or_email)s and/or Password" 174 | msgstr "Неверный %(username_or_email)s и/или пароль" 175 | 176 | #: flask_user/forms.py:260 177 | msgid "Retype Password" 178 | msgstr "Повтор пароля" 179 | 180 | #: flask_user/forms.py:261 181 | msgid "Password and Retype Password did not match" 182 | msgstr "Пароль и подтверждение пароля не совпадают" 183 | 184 | #: flask_user/forms.py:262 185 | msgid "Token" 186 | msgstr "Токен" 187 | 188 | #: flask_user/forms.py:264 189 | #: flask_user/templates/flask_user/login_or_register.html:41 190 | #: flask_user/templates/flask_user/register.html:5 191 | msgid "Register" 192 | msgstr "Регистрация" 193 | 194 | #: flask_user/forms.py:301 195 | msgid "Resend email confirmation email" 196 | msgstr "Отправить повторное подтверждение электронной почты" 197 | 198 | #: flask_user/forms.py:334 199 | msgid "Invite!" 200 | msgstr "Приглашение!" 201 | 202 | #: flask_user/translations.py:74 203 | msgid "Home Page" 204 | msgstr "Главная страница" 205 | 206 | #: flask_user/translations.py:75 207 | msgid "Profile Page" 208 | msgstr "Профиль" 209 | 210 | #: flask_user/translations.py:76 211 | msgid "Special Page" 212 | msgstr "Специальная страница" 213 | 214 | #: flask_user/views.py:39 215 | msgid "Your confirmation token has expired." 216 | msgstr "Ваш токен подтверждения истек." 217 | 218 | #: flask_user/views.py:43 flask_user/views.py:63 219 | msgid "Invalid confirmation token." 220 | msgstr "Неверный токен подтверджения." 221 | 222 | #: flask_user/views.py:70 223 | msgid "Your email has been confirmed." 224 | msgstr "Ваш адрес электронной почты был подтвержден." 225 | 226 | #: flask_user/views.py:107 227 | msgid "Your password has been changed successfully." 228 | msgstr "Ваш пароль был успешно изменен." 229 | 230 | #: flask_user/views.py:143 231 | #, python-format 232 | msgid "Your username has been changed to '%(username)s'." 233 | msgstr "Имя пользователя было изменено на '%(username)s'." 234 | 235 | #: flask_user/views.py:210 236 | #, python-format 237 | msgid "" 238 | "A reset password email has been sent to '%(email)s'. Open that email and " 239 | "follow the instructions to reset your password." 240 | msgstr "" 241 | "Письмо для восстановления пароля было отправлено на '%(email)s'. " 242 | "Откройте электронную почту и следуйте инструкциям, чтобы сбросить пароль." 243 | 244 | #: flask_user/views.py:281 245 | msgid "You have signed out successfully." 246 | msgstr "Вы успешно вышли." 247 | 248 | #: flask_user/views.py:522 249 | msgid "Invitation has been sent." 250 | msgstr "Приглашение было отправлено." 251 | 252 | #: flask_user/views.py:565 253 | msgid "Your reset password token has expired." 254 | msgstr "Токен для сброса пароля истек." 255 | 256 | #: flask_user/views.py:569 flask_user/views.py:580 257 | msgid "Your reset password token is invalid." 258 | msgstr "Ваш токен сброса пароля является недействительным." 259 | 260 | #: flask_user/views.py:607 261 | msgid "Your password has been reset successfully." 262 | msgstr "Ваш пароль был успешно сброшен." 263 | 264 | #: flask_user/views.py:624 265 | #, python-format 266 | msgid "You must confirm your email to access '%(url)s'." 267 | msgstr "" 268 | "Вам необходимо подтвердить свой адрес электронной почты кликнув на " 269 | "ссылку: '%(url)s'." 270 | 271 | #: flask_user/views.py:635 272 | #, python-format 273 | msgid "You must be signed in to access '%(url)s'." 274 | msgstr "Для доступа к адресу '%(url)s' вам необходимо авторизоваться." 275 | 276 | #: flask_user/views.py:649 277 | #, python-format 278 | msgid "You do not have permission to access '%(url)s'." 279 | msgstr "Недостаточно прав для доступа к '%(url)s'." 280 | 281 | #: flask_user/views.py:680 flask_user/views.py:701 282 | #, python-format 283 | msgid "" 284 | "A confirmation email has been sent to %(email)s with instructions to " 285 | "complete your registration." 286 | msgstr "" 287 | "Письмо с подтверждением было отправлено на адрес %(email)s с " 288 | "инструкциями для завершения регистрации." 289 | 290 | #: flask_user/views.py:682 291 | msgid "You have registered successfully." 292 | msgstr "Вы успешно зарегистрировались." 293 | 294 | #: flask_user/views.py:710 295 | msgid "Your account has not been enabled." 296 | msgstr "Ваша учетная запись не была включена." 297 | 298 | #: flask_user/views.py:719 299 | #, python-format 300 | msgid "" 301 | "Your email address has not yet been confirmed. Check your email Inbox and" 302 | " Spam folders for the confirmation email or Re-send " 303 | "confirmation email." 304 | msgstr "" 305 | "Ваш адрес электронной почты еще не был подтвержден. Пожалуйста, проверьте" 306 | " свой почтовый ящик на него должно придти письмо от нас для " 307 | "подтверждения. Если письма нет то проверьте папки со спамом, так же вы " 308 | "можете повторно отправить подтверждение по " 309 | "электронной почте." 310 | 311 | #: flask_user/views.py:730 312 | msgid "You have signed in successfully." 313 | msgstr "Вы успешно авторизовались." 314 | 315 | #: flask_user/templates/flask_user/forgot_password.html:5 316 | msgid "Forgot Password" 317 | msgstr "Забыли пароль" 318 | 319 | #: flask_user/templates/flask_user/invite.html:5 320 | msgid "Invite User" 321 | msgstr "Приглашение пользователя" 322 | 323 | #: flask_user/templates/flask_user/login.html:21 324 | msgid "New here? Register." 325 | msgstr "Впервые здесь? Регистрация." 326 | 327 | #: flask_user/templates/flask_user/login.html:44 328 | #: flask_user/templates/flask_user/login_or_register.html:34 329 | msgid "Forgot your Password?" 330 | msgstr "Забыли ваш пароль?" 331 | 332 | #: flask_user/templates/flask_user/manage_emails.html:5 333 | msgid "Manage Emails" 334 | msgstr "Управление адресами эл. почты" 335 | 336 | #: flask_user/templates/flask_user/register.html:21 337 | msgid "Already registered? Sign in." 338 | msgstr "Уже зарегистрированы? Вход." 339 | 340 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 341 | msgid "Resend Confirmation Email" 342 | msgstr "Повторно отправить письмо для подтверждения" 343 | 344 | #: flask_user/templates/flask_user/reset_password.html:5 345 | msgid "Reset Password" 346 | msgstr "Сброс пароля" 347 | 348 | #: flask_user/templates/flask_user/user_profile.html:5 349 | msgid "User profile" 350 | msgstr "Профиль" 351 | 352 | #: /templates/layout.html 353 | msgid "Sign out" 354 | msgstr "Выход" 355 | -------------------------------------------------------------------------------- /app/translations/sv/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/sv/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/sv/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Swedish translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2015-08-03 13:27-0800\n" 12 | "Last-Translator: Andriy Tymchenko \n" 13 | "Language: sv\n" 14 | "Language-Team: sv \n" 15 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | "Lösenordet måste vara minst 6 tecken långt och bör innehålla en liten " 27 | "bokstav, en stor bokstav och en siffra" 28 | 29 | #: flask_user/forms.py:47 30 | msgid "Username must be at least 3 characters long" 31 | msgstr "Användarnamnet måste vara minst 3 tecken långt" 32 | 33 | #: flask_user/forms.py:52 34 | #, fuzzy 35 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 36 | msgstr "Användarnamnet får endast innehålla bokstäver, siffror, '-', '.' och '_'." 37 | 38 | #: flask_user/forms.py:58 39 | msgid "This Username is already in use. Please try another one." 40 | msgstr "Detta användarnamnet är redan i användning. Vänligen prova ett annat." 41 | 42 | #: flask_user/forms.py:65 43 | msgid "This Email is already in use. Please try another one." 44 | msgstr "Denna e-postadress är redan registrerad. Vänligen prova en annan." 45 | 46 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 47 | #: flask_user/forms.py:260 flask_user/forms.py:336 48 | msgid "Email" 49 | msgstr "E-postadress" 50 | 51 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 52 | #: flask_user/forms.py:337 53 | msgid "Email is required" 54 | msgstr "E-postadress obligatorisk" 55 | 56 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 57 | #: flask_user/forms.py:338 58 | msgid "Invalid Email" 59 | msgstr "Ogiltig e-postadress" 60 | 61 | #: flask_user/forms.py:76 62 | msgid "Add Email" 63 | msgstr "Lägg till en e-postadress" 64 | 65 | #: flask_user/forms.py:79 flask_user/forms.py:122 66 | msgid "Old Password" 67 | msgstr "Det gamla lösenordet" 68 | 69 | #: flask_user/forms.py:80 flask_user/forms.py:123 70 | msgid "Old Password is required" 71 | msgstr "Det gamla lösenord är obligatoriskt" 72 | 73 | #: flask_user/forms.py:82 flask_user/forms.py:310 74 | msgid "New Password" 75 | msgstr "Nya lösenordet" 76 | 77 | #: flask_user/forms.py:83 flask_user/forms.py:311 78 | msgid "New Password is required" 79 | msgstr "Det nya lösenordet är obligatoriskt" 80 | 81 | #: flask_user/forms.py:85 flask_user/forms.py:312 82 | msgid "Retype New Password" 83 | msgstr "Upprepa det nya lösenordet" 84 | 85 | #: flask_user/forms.py:86 flask_user/forms.py:313 86 | msgid "New Password and Retype Password did not match" 87 | msgstr "Det nya lösenordet och det upprepade lösenordet överensstämmer inte" 88 | 89 | #: flask_user/forms.py:89 flask_user/forms.py:315 90 | #: flask_user/templates/flask_user/change_password.html:5 91 | #: flask_user/templates/flask_user/user_profile.html:11 92 | msgid "Change password" 93 | msgstr "Ändra lösenord" 94 | 95 | #: flask_user/forms.py:111 flask_user/forms.py:145 96 | msgid "Old Password is incorrect" 97 | msgstr "Det gamla lösenordet är felaktigt" 98 | 99 | #: flask_user/forms.py:118 100 | msgid "New Username" 101 | msgstr "Nytt användarnamn" 102 | 103 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 104 | msgid "Username is required" 105 | msgstr "Användarnamn är obligatoriskt" 106 | 107 | #: flask_user/forms.py:126 108 | #: flask_user/templates/flask_user/change_username.html:5 109 | #: flask_user/templates/flask_user/user_profile.html:8 110 | msgid "Change username" 111 | msgstr "Ändra användarnamn" 112 | 113 | #: flask_user/forms.py:152 flask_user/forms.py:303 114 | msgid "Your email address" 115 | msgstr "" 116 | 117 | #: flask_user/forms.py:153 flask_user/forms.py:304 118 | #, fuzzy 119 | msgid "Email address is required" 120 | msgstr "E-postadress obligatorisk" 121 | 122 | #: flask_user/forms.py:154 flask_user/forms.py:305 123 | #, fuzzy 124 | msgid "Invalid Email address" 125 | msgstr "Ogiltig e-postadress" 126 | 127 | #: flask_user/forms.py:156 128 | msgid "Send reset password email" 129 | msgstr "Skicka återställning av lösenord e-postmeddelande" 130 | 131 | #: flask_user/forms.py:163 flask_user/forms.py:237 132 | #, python-format 133 | msgid "%(username_or_email)s does not exist" 134 | msgstr "" 135 | 136 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 137 | msgid "Username" 138 | msgstr "Användarnamn" 139 | 140 | #: flask_user/forms.py:177 flask_user/forms.py:264 141 | msgid "Password" 142 | msgstr "Lösenord" 143 | 144 | #: flask_user/forms.py:178 flask_user/forms.py:265 145 | msgid "Password is required" 146 | msgstr "Lösenordet är obligatoriskt" 147 | 148 | #: flask_user/forms.py:180 149 | msgid "Remember me" 150 | msgstr "Kom ihåg mig" 151 | 152 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 153 | #: flask_user/templates/flask_user/login_or_register.html:9 154 | msgid "Sign in" 155 | msgstr "Logga in" 156 | 157 | #: flask_user/forms.py:189 158 | msgid "Username or Email" 159 | msgstr "Användarnamn eller e-post" 160 | 161 | #: flask_user/forms.py:226 162 | #, fuzzy 163 | msgid "Username/Email" 164 | msgstr "Användarnamn eller e-post" 165 | 166 | #: flask_user/forms.py:240 167 | #, fuzzy 168 | msgid "Incorrect Password" 169 | msgstr "Glömt lösenordet" 170 | 171 | #: flask_user/forms.py:244 172 | #, python-format 173 | msgid "Incorrect %(username_or_email)s and/or Password" 174 | msgstr "Felaktigt %(username_or_email)s och/eller lösenord" 175 | 176 | #: flask_user/forms.py:266 177 | msgid "Retype Password" 178 | msgstr "Upprepa lösenordet" 179 | 180 | #: flask_user/forms.py:267 181 | msgid "Password and Retype Password did not match" 182 | msgstr "Lösenordet och det upprepade lösenordet överensstämmer inte" 183 | 184 | #: flask_user/forms.py:268 185 | msgid "Token" 186 | msgstr "" 187 | 188 | #: flask_user/forms.py:270 189 | #: flask_user/templates/flask_user/login_or_register.html:41 190 | #: flask_user/templates/flask_user/register.html:5 191 | msgid "Register" 192 | msgstr "Registrera dig" 193 | 194 | #: flask_user/forms.py:307 195 | msgid "Resend email confirmation email" 196 | msgstr "Återsänd e-postmeddelandet \"bekräftelse av e-postadress\"" 197 | 198 | #: flask_user/forms.py:340 199 | msgid "Invite!" 200 | msgstr "" 201 | 202 | #: flask_user/translations.py:74 203 | msgid "Home Page" 204 | msgstr "Hemsida" 205 | 206 | #: flask_user/translations.py:75 207 | msgid "Profile Page" 208 | msgstr "Profilsida" 209 | 210 | #: flask_user/translations.py:76 211 | msgid "Special Page" 212 | msgstr "Speciell sida" 213 | 214 | #: flask_user/views.py:46 215 | msgid "Your confirmation token has expired." 216 | msgstr "Ditt igenkänningstecken har upphört att gälla." 217 | 218 | #: flask_user/views.py:50 flask_user/views.py:70 219 | msgid "Invalid confirmation token." 220 | msgstr "Ogiltigt igenkänningstecken." 221 | 222 | #: flask_user/views.py:77 223 | msgid "Your email has been confirmed." 224 | msgstr "Din e-postadress har bekräftats." 225 | 226 | #: flask_user/views.py:115 227 | msgid "Your password has been changed successfully." 228 | msgstr "Ditt lösenord har ändrats." 229 | 230 | #: flask_user/views.py:153 231 | #, python-format 232 | msgid "Your username has been changed to '%(username)s'." 233 | msgstr "Ditt användarnamn har ändrats till '%(username)s'." 234 | 235 | #: flask_user/views.py:221 236 | #, python-format 237 | msgid "" 238 | "A reset password email has been sent to '%(email)s'. Open that email and " 239 | "follow the instructions to reset your password." 240 | msgstr "" 241 | "Ett \"återställning av lösenord\" e-postmeddelande har skickats till " 242 | "'%(email)s'. Öppna e-postmeddelandet och följ instruktionerna för att " 243 | "återställa ditt lösenord." 244 | 245 | #: flask_user/views.py:293 246 | msgid "You have signed out successfully." 247 | msgstr "Din utloggning lyckades. " 248 | 249 | #: flask_user/views.py:534 250 | msgid "Invitation has been sent." 251 | msgstr "" 252 | 253 | #: flask_user/views.py:578 254 | msgid "Your reset password token has expired." 255 | msgstr "Ditt igenkänningstecken för återställning lösenordet har blivit gammalt." 256 | 257 | #: flask_user/views.py:582 258 | msgid "Your reset password token is invalid." 259 | msgstr "Ditt igenkänningstecken för återställning av lösenordet är ogiltigt." 260 | 261 | #: flask_user/views.py:609 262 | #, fuzzy 263 | msgid "Your password has been reset successfully." 264 | msgstr "Ditt lösenord har ändrats." 265 | 266 | #: flask_user/views.py:626 267 | #, python-format 268 | msgid "You must confirm your email to access '%(url)s'." 269 | msgstr "Du måste bekräfta din e-postadress för att få tillträde till '%(url)s'." 270 | 271 | #: flask_user/views.py:638 272 | #, python-format 273 | msgid "You must be signed in to access '%(url)s'." 274 | msgstr "Du måste vara inloggad för att få tillträde '%(url)s'." 275 | 276 | #: flask_user/views.py:649 277 | #, python-format 278 | msgid "You do not have permission to access '%(url)s'." 279 | msgstr "Du har inte tillgång till '%(url)s'." 280 | 281 | #: flask_user/views.py:680 flask_user/views.py:701 282 | #, python-format 283 | msgid "" 284 | "A confirmation email has been sent to %(email)s with instructions to " 285 | "complete your registration." 286 | msgstr "" 287 | "En bekräftelse-e-post har skickats till %(email)s med instruktioner för " 288 | "hur du slutför din registrering." 289 | 290 | #: flask_user/views.py:682 291 | msgid "You have registered successfully." 292 | msgstr "Din registrering har lyckats." 293 | 294 | #: flask_user/views.py:710 295 | msgid "Your account has not been enabled." 296 | msgstr "Ditt användarkonto har inte aktiverats." 297 | 298 | #: flask_user/views.py:719 299 | #, python-format 300 | msgid "" 301 | "Your email address has not yet been confirmed. Check your email Inbox and" 302 | " Spam folders for the confirmation email or Re-send " 303 | "confirmation email." 304 | msgstr "" 305 | "Din e-postadress har ännu inte bekräftats. Kontrollera inkorgen och " 306 | "skräpposten i din e-post för e-postmeddelandet \"bekräftelse av e-post\" " 307 | "eller återsänd e-postmeddelandet \"bekräftelse av " 308 | "e-post\"." 309 | 310 | #: flask_user/views.py:730 311 | msgid "You have signed in successfully." 312 | msgstr "Din inloggning har lyckats." 313 | 314 | #: flask_user/templates/flask_user/forgot_password.html:5 315 | msgid "Forgot Password" 316 | msgstr "Glömt lösenordet" 317 | 318 | #: flask_user/templates/flask_user/invite.html:5 319 | msgid "Invite User" 320 | msgstr "" 321 | 322 | #: flask_user/templates/flask_user/login.html:21 323 | msgid "New here? Register." 324 | msgstr "Ny här? Registrera dig." 325 | 326 | #: flask_user/templates/flask_user/login.html:44 327 | #: flask_user/templates/flask_user/login_or_register.html:34 328 | msgid "Forgot your Password?" 329 | msgstr "Glömt ditt lösenord?" 330 | 331 | #: flask_user/templates/flask_user/manage_emails.html:5 332 | msgid "Manage Emails" 333 | msgstr "Hantera e-postadresser" 334 | 335 | #: flask_user/templates/flask_user/register.html:21 336 | msgid "Already registered? Sign in." 337 | msgstr "Redan registrerad? Logga in." 338 | 339 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 340 | msgid "Resend Confirmation Email" 341 | msgstr "Återsänd bekräftelse-e-postmeddelandet" 342 | 343 | #: flask_user/templates/flask_user/reset_password.html:5 344 | msgid "Reset Password" 345 | msgstr "Återställ lösenord" 346 | 347 | #: flask_user/templates/flask_user/user_profile.html:5 348 | msgid "User profile" 349 | msgstr "Användarprofil" 350 | 351 | #~ msgid "Incorrect Username and Password" 352 | #~ msgstr "Felaktigt användarnamn och lösenord" 353 | 354 | #~ msgid "Incorrect Email and Password" 355 | #~ msgstr "Felaktig e-postadress och lösenord" 356 | 357 | #~ msgid "" 358 | #~ msgstr "Ditt lösenord har återställts. Logga nu in med ditt nya lösenord" 359 | 360 | #~ msgid "Change Password" 361 | #~ msgstr "Ändra lösenord" 362 | 363 | #~ msgid "Change Username" 364 | #~ msgstr "Ändra användarnamnet" 365 | 366 | #~ msgid "Email does not exist" 367 | #~ msgstr "" 368 | 369 | -------------------------------------------------------------------------------- /app/translations/tr/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/tr/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/tr/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Turkish translations for PROJECT. 2 | # Copyright (C) 2015 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2015. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2016-08-15 09:56+0300\n" 12 | "Last-Translator: aripddev \n" 13 | "Language: tr\n" 14 | "Language-Team: tr \n" 15 | "Plural-Forms: nplurals=2; plural=(n > 1)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "" 26 | "Parola en az 6 karakter uzunluğunda olmalı, en az bir küçük harf, bir " 27 | "büyük harf ve bir rakam içermeli" 28 | 29 | #: flask_user/forms.py:47 30 | msgid "Username must be at least 3 characters long" 31 | msgstr "Kullanıcı adı en az 3 karakter uzunluğunda olmalı" 32 | 33 | #: flask_user/forms.py:52 34 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 35 | msgstr "Kullanıcı adı sadece harf, rakam, '-', '.' ve '_' içerebilir" 36 | 37 | #: flask_user/forms.py:58 38 | msgid "This Username is already in use. Please try another one." 39 | msgstr "" 40 | "Kullanımda olan bir kullanıcı adı girdiniz. Lütfen başka bir tane " 41 | "deneyiniz." 42 | 43 | #: flask_user/forms.py:65 44 | msgid "This Email is already in use. Please try another one." 45 | msgstr "Kullanımda olan bir eposta girdiniz. Lütfen başka bir tane deneyiniz." 46 | 47 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 48 | #: flask_user/forms.py:260 flask_user/forms.py:336 49 | msgid "Email" 50 | msgstr "Eposta" 51 | 52 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 53 | #: flask_user/forms.py:337 54 | msgid "Email is required" 55 | msgstr "Eposta zorunlu" 56 | 57 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 58 | #: flask_user/forms.py:338 59 | msgid "Invalid Email" 60 | msgstr "Geçersiz eposta" 61 | 62 | #: flask_user/forms.py:76 63 | msgid "Add Email" 64 | msgstr "Eposta Ekle" 65 | 66 | #: flask_user/forms.py:79 flask_user/forms.py:122 67 | msgid "Old Password" 68 | msgstr "Eski parola" 69 | 70 | #: flask_user/forms.py:80 flask_user/forms.py:123 71 | msgid "Old Password is required" 72 | msgstr "Eski parola zorunlu" 73 | 74 | #: flask_user/forms.py:82 flask_user/forms.py:310 75 | msgid "New Password" 76 | msgstr "Yeni parola" 77 | 78 | #: flask_user/forms.py:83 flask_user/forms.py:311 79 | msgid "New Password is required" 80 | msgstr "Yeni parola zorunlu" 81 | 82 | #: flask_user/forms.py:85 flask_user/forms.py:312 83 | msgid "Retype New Password" 84 | msgstr "Yeni parolayı tekrarlayın" 85 | 86 | #: flask_user/forms.py:86 flask_user/forms.py:313 87 | msgid "New Password and Retype Password did not match" 88 | msgstr "Yeni parolalar uyuşmuyor" 89 | 90 | #: flask_user/forms.py:89 flask_user/forms.py:315 91 | #: flask_user/templates/flask_user/change_password.html:5 92 | #: flask_user/templates/flask_user/user_profile.html:11 93 | msgid "Change password" 94 | msgstr "Parolayı değiştir" 95 | 96 | #: flask_user/forms.py:111 flask_user/forms.py:145 97 | msgid "Old Password is incorrect" 98 | msgstr "Eski parola yanlış" 99 | 100 | #: flask_user/forms.py:118 101 | msgid "New Username" 102 | msgstr "Yeni kullanıcı adı" 103 | 104 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 105 | msgid "Username is required" 106 | msgstr "Kullanıcı adı zorunlu" 107 | 108 | #: flask_user/forms.py:126 109 | #: flask_user/templates/flask_user/change_username.html:5 110 | #: flask_user/templates/flask_user/user_profile.html:8 111 | msgid "Change username" 112 | msgstr "Kullanıcı adını değiştir" 113 | 114 | #: flask_user/forms.py:152 flask_user/forms.py:303 115 | msgid "Your email address" 116 | msgstr "Eposta adresiniz" 117 | 118 | #: flask_user/forms.py:153 flask_user/forms.py:304 119 | msgid "Email address is required" 120 | msgstr "Eposta adresi zorunlu" 121 | 122 | #: flask_user/forms.py:154 flask_user/forms.py:305 123 | msgid "Invalid Email address" 124 | msgstr "Eposta adresi geçersiz" 125 | 126 | #: flask_user/forms.py:156 127 | msgid "Send reset password email" 128 | msgstr "Parola sıfırlama epostasını gönder" 129 | 130 | #: flask_user/forms.py:163 flask_user/forms.py:237 131 | #, python-format 132 | msgid "%(username_or_email)s does not exist" 133 | msgstr "%(username_or_email) bulunamadı" 134 | 135 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 136 | msgid "Username" 137 | msgstr "Kullanıcı adı" 138 | 139 | #: flask_user/forms.py:177 flask_user/forms.py:264 140 | msgid "Password" 141 | msgstr "Parola" 142 | 143 | #: flask_user/forms.py:178 flask_user/forms.py:265 144 | msgid "Password is required" 145 | msgstr "Parola zorunlu" 146 | 147 | #: flask_user/forms.py:180 148 | msgid "Remember me" 149 | msgstr "Beni hatırla" 150 | 151 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 152 | #: flask_user/templates/flask_user/login_or_register.html:9 153 | msgid "Sign in" 154 | msgstr "Giriş yap" 155 | 156 | #: flask_user/forms.py:189 157 | msgid "Username or Email" 158 | msgstr "Kullanıcı adı veya Eposta" 159 | 160 | #: flask_user/forms.py:226 161 | msgid "Username/Email" 162 | msgstr "Kullanıcı adı/Eposta" 163 | 164 | #: flask_user/forms.py:240 165 | #, fuzzy 166 | msgid "Incorrect Password" 167 | msgstr "Parolanızı mı unuttunuz?" 168 | 169 | #: flask_user/forms.py:244 170 | #, python-format 171 | msgid "Incorrect %(username_or_email)s and/or Password" 172 | msgstr "Geçersiz %(username_or_email)s ve/veya parola" 173 | 174 | #: flask_user/forms.py:266 175 | msgid "Retype Password" 176 | msgstr "Parolayı yeniden girin" 177 | 178 | #: flask_user/forms.py:267 179 | msgid "Password and Retype Password did not match" 180 | msgstr "Parolalar uyuşmuyor" 181 | 182 | #: flask_user/forms.py:268 183 | msgid "Token" 184 | msgstr "Anahtar" 185 | 186 | #: flask_user/forms.py:270 187 | #: flask_user/templates/flask_user/login_or_register.html:41 188 | #: flask_user/templates/flask_user/register.html:5 189 | msgid "Register" 190 | msgstr "Kayıt ol" 191 | 192 | #: flask_user/forms.py:307 193 | msgid "Resend email confirmation email" 194 | msgstr "Eposta doğrulamayı yeniden gönder" 195 | 196 | #: flask_user/forms.py:340 197 | msgid "Invite!" 198 | msgstr "Davet et!" 199 | 200 | #: flask_user/translations.py:74 201 | msgid "Home Page" 202 | msgstr "Ana sayfa" 203 | 204 | #: flask_user/translations.py:75 205 | msgid "Profile Page" 206 | msgstr "Profil sayfası" 207 | 208 | #: flask_user/translations.py:76 209 | msgid "Special Page" 210 | msgstr "Özel sayfa" 211 | 212 | #: flask_user/views.py:46 213 | msgid "Your confirmation token has expired." 214 | msgstr "Doğrulama anahtarınızın süresi dolmuş." 215 | 216 | #: flask_user/views.py:50 flask_user/views.py:70 217 | msgid "Invalid confirmation token." 218 | msgstr "Doğrulama anahtarınız geçersiz." 219 | 220 | #: flask_user/views.py:77 221 | msgid "Your email has been confirmed." 222 | msgstr "Epostanız doğrulandı." 223 | 224 | #: flask_user/views.py:115 225 | msgid "Your password has been changed successfully." 226 | msgstr "Parolanız başarı ile değiştirildi." 227 | 228 | #: flask_user/views.py:153 229 | #, python-format 230 | msgid "Your username has been changed to '%(username)s'." 231 | msgstr "Kullanıcı adınız '%(username)s' olarak değiştirildi." 232 | 233 | #: flask_user/views.py:221 234 | #, python-format 235 | msgid "" 236 | "A reset password email has been sent to '%(email)s'. Open that email and " 237 | "follow the instructions to reset your password." 238 | msgstr "" 239 | "Parolanızın sıfırlanması için %(email)s adresine talimatları içeren bir " 240 | "eposta gönderildi " 241 | 242 | #: flask_user/views.py:293 243 | msgid "You have signed out successfully." 244 | msgstr "Başarı ile çıkış yaptınız." 245 | 246 | #: flask_user/views.py:534 247 | msgid "Invitation has been sent." 248 | msgstr "Davetiniz gönderildi." 249 | 250 | #: flask_user/views.py:578 251 | msgid "Your reset password token has expired." 252 | msgstr "Parola sıfırlama anahtarınızın süresi geçmiş." 253 | 254 | #: flask_user/views.py:582 255 | msgid "Your reset password token is invalid." 256 | msgstr "Parola sıfırlama anahtarınız geçersiz." 257 | 258 | #: flask_user/views.py:609 259 | msgid "Your password has been reset successfully." 260 | msgstr "Parolanız başarı ile sıfırlandı." 261 | 262 | #: flask_user/views.py:626 263 | #, python-format 264 | msgid "You must confirm your email to access '%(url)s'." 265 | msgstr "'%(url)s' adresine erişmek için epostanızı doğrulamalısınız." 266 | 267 | #: flask_user/views.py:638 268 | #, python-format 269 | msgid "You must be signed in to access '%(url)s'." 270 | msgstr "'%(url)s' adresine erişmek için giriş yapmalısınız." 271 | 272 | #: flask_user/views.py:649 273 | #, python-format 274 | msgid "You do not have permission to access '%(url)s'." 275 | msgstr "'%(url)s' adresine erişim izniniz yok." 276 | 277 | #: flask_user/views.py:680 flask_user/views.py:701 278 | #, python-format 279 | msgid "" 280 | "A confirmation email has been sent to %(email)s with instructions to " 281 | "complete your registration." 282 | msgstr "" 283 | "Kaydınızın tamamlanması için %(email)s adresine talimatları içeren bir " 284 | "eposta gönderildi " 285 | 286 | #: flask_user/views.py:682 287 | msgid "You have registered successfully." 288 | msgstr "Kaydınız başarı ile gerçekleştirildi." 289 | 290 | #: flask_user/views.py:710 291 | msgid "Your account has not been enabled." 292 | msgstr "Hesabınız etkinleştirilmedi" 293 | 294 | #: flask_user/views.py:719 295 | #, python-format 296 | msgid "" 297 | "Your email address has not yet been confirmed. Check your email Inbox and" 298 | " Spam folders for the confirmation email or Re-send " 299 | "confirmation email." 300 | msgstr "" 301 | "Eposta adresiniz henüz doğrulanmadı. Gelen ve İstenmeyen kutunuza bakın " 302 | "veya Doğrulama epostasını tekrar gönderin." 303 | 304 | #: flask_user/views.py:730 305 | msgid "You have signed in successfully." 306 | msgstr "Başarı ile giriş yaptınız." 307 | 308 | #: flask_user/templates/flask_user/forgot_password.html:5 309 | msgid "Forgot Password" 310 | msgstr "Parolanızı mı unuttunuz?" 311 | 312 | #: flask_user/templates/flask_user/invite.html:5 313 | msgid "Invite User" 314 | msgstr "Kullanıcı davet et" 315 | 316 | #: flask_user/templates/flask_user/login.html:21 317 | msgid "New here? Register." 318 | msgstr "Yeni misiniz? Kayıt olun." 319 | 320 | #: flask_user/templates/flask_user/login.html:44 321 | #: flask_user/templates/flask_user/login_or_register.html:34 322 | msgid "Forgot your Password?" 323 | msgstr "Parolanızı mı unuttunuz?" 324 | 325 | #: flask_user/templates/flask_user/manage_emails.html:5 326 | msgid "Manage Emails" 327 | msgstr "Epostaları yönet" 328 | 329 | #: flask_user/templates/flask_user/register.html:21 330 | msgid "Already registered? Sign in." 331 | msgstr "Zaten kayıtlı mısınız? Giriş yapın." 332 | 333 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 334 | msgid "Resend Confirmation Email" 335 | msgstr "Doğrulama epostasını yeniden gönder" 336 | 337 | #: flask_user/templates/flask_user/reset_password.html:5 338 | msgid "Reset Password" 339 | msgstr "Parolayı sıfırla" 340 | 341 | #: flask_user/templates/flask_user/user_profile.html:5 342 | msgid "User profile" 343 | msgstr "Kullanıcı profili" 344 | 345 | -------------------------------------------------------------------------------- /app/translations/zh/LC_MESSAGES/flask_user.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/translations/zh/LC_MESSAGES/flask_user.mo -------------------------------------------------------------------------------- /app/translations/zh/LC_MESSAGES/flask_user.po: -------------------------------------------------------------------------------- 1 | # Chinese translations for . 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: Flask-User\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2017-08-29 20:44-0700\n" 11 | "PO-Revision-Date: 2014-11-02 22:26+1000\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language: zh\n" 14 | "Language-Team: \n" 15 | "Plural-Forms: nplurals=1; plural=0\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=utf-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Generated-By: Babel 2.3.4\n" 20 | 21 | #: flask_user/forms.py:41 22 | msgid "" 23 | "Password must have at least 6 characters with one lowercase letter, one " 24 | "uppercase letter and one number" 25 | msgstr "密码须包含至少6个字符,其中至少1个小写字母,1个大写字母和1个数字" 26 | 27 | #: flask_user/forms.py:47 28 | msgid "Username must be at least 3 characters long" 29 | msgstr "用户名须多于3个字符" 30 | 31 | #: flask_user/forms.py:52 32 | #, fuzzy 33 | msgid "Username may only contain letters, numbers, '-', '.' and '_'" 34 | msgstr "用户名只能包含字母,数字,或‘-’,‘.’,‘_’字符。" 35 | 36 | #: flask_user/forms.py:58 37 | msgid "This Username is already in use. Please try another one." 38 | msgstr "此用户名已被使用,请尝试其它。" 39 | 40 | #: flask_user/forms.py:65 41 | msgid "This Email is already in use. Please try another one." 42 | msgstr "此邮箱已被使用,请尝试其它。" 43 | 44 | #: flask_user/forms.py:72 flask_user/forms.py:173 flask_user/forms.py:232 45 | #: flask_user/forms.py:260 flask_user/forms.py:336 46 | msgid "Email" 47 | msgstr "邮箱" 48 | 49 | #: flask_user/forms.py:73 flask_user/forms.py:174 flask_user/forms.py:261 50 | #: flask_user/forms.py:337 51 | msgid "Email is required" 52 | msgstr "邮箱是必需项" 53 | 54 | #: flask_user/forms.py:74 flask_user/forms.py:175 flask_user/forms.py:262 55 | #: flask_user/forms.py:338 56 | msgid "Invalid Email" 57 | msgstr "无效邮箱" 58 | 59 | #: flask_user/forms.py:76 60 | msgid "Add Email" 61 | msgstr "添加邮箱" 62 | 63 | #: flask_user/forms.py:79 flask_user/forms.py:122 64 | msgid "Old Password" 65 | msgstr "当前密码" 66 | 67 | #: flask_user/forms.py:80 flask_user/forms.py:123 68 | msgid "Old Password is required" 69 | msgstr "当前密码是必需项" 70 | 71 | #: flask_user/forms.py:82 flask_user/forms.py:310 72 | msgid "New Password" 73 | msgstr "新密码" 74 | 75 | #: flask_user/forms.py:83 flask_user/forms.py:311 76 | msgid "New Password is required" 77 | msgstr "新密码是必需项" 78 | 79 | #: flask_user/forms.py:85 flask_user/forms.py:312 80 | msgid "Retype New Password" 81 | msgstr "确认新密码" 82 | 83 | #: flask_user/forms.py:86 flask_user/forms.py:313 84 | msgid "New Password and Retype Password did not match" 85 | msgstr "两次输入的新密码不一致" 86 | 87 | #: flask_user/forms.py:89 flask_user/forms.py:315 88 | #: flask_user/templates/flask_user/change_password.html:5 89 | #: flask_user/templates/flask_user/user_profile.html:11 90 | msgid "Change password" 91 | msgstr "更改密码" 92 | 93 | #: flask_user/forms.py:111 flask_user/forms.py:145 94 | msgid "Old Password is incorrect" 95 | msgstr "当前密码不正确" 96 | 97 | #: flask_user/forms.py:118 98 | msgid "New Username" 99 | msgstr "新用户名" 100 | 101 | #: flask_user/forms.py:119 flask_user/forms.py:171 flask_user/forms.py:258 102 | msgid "Username is required" 103 | msgstr "用户名是必需项" 104 | 105 | #: flask_user/forms.py:126 106 | #: flask_user/templates/flask_user/change_username.html:5 107 | #: flask_user/templates/flask_user/user_profile.html:8 108 | msgid "Change username" 109 | msgstr "更改用户名" 110 | 111 | #: flask_user/forms.py:152 flask_user/forms.py:303 112 | msgid "Your email address" 113 | msgstr "您的邮箱地址" 114 | 115 | #: flask_user/forms.py:153 flask_user/forms.py:304 116 | #, fuzzy 117 | msgid "Email address is required" 118 | msgstr "邮箱是必需项" 119 | 120 | #: flask_user/forms.py:154 flask_user/forms.py:305 121 | #, fuzzy 122 | msgid "Invalid Email address" 123 | msgstr "无效邮箱" 124 | 125 | #: flask_user/forms.py:156 126 | msgid "Send reset password email" 127 | msgstr "发送重置密码邮件" 128 | 129 | #: flask_user/forms.py:163 flask_user/forms.py:237 130 | #, python-format 131 | msgid "%(username_or_email)s does not exist" 132 | msgstr "用户名或邮箱不存在" 133 | 134 | #: flask_user/forms.py:170 flask_user/forms.py:229 flask_user/forms.py:257 135 | msgid "Username" 136 | msgstr "用户名" 137 | 138 | #: flask_user/forms.py:177 flask_user/forms.py:264 139 | msgid "Password" 140 | msgstr "密码" 141 | 142 | #: flask_user/forms.py:178 flask_user/forms.py:265 143 | msgid "Password is required" 144 | msgstr "密码是必需项" 145 | 146 | #: flask_user/forms.py:180 147 | msgid "Remember me" 148 | msgstr "记住我" 149 | 150 | #: flask_user/forms.py:182 flask_user/templates/flask_user/login.html:5 151 | #: flask_user/templates/flask_user/login_or_register.html:9 152 | msgid "Sign in" 153 | msgstr "登入" 154 | 155 | #: flask_user/forms.py:189 156 | msgid "Username or Email" 157 | msgstr "用户名或邮箱" 158 | 159 | #: flask_user/forms.py:226 160 | #, fuzzy 161 | msgid "Username/Email" 162 | msgstr "用户名或邮箱" 163 | 164 | #: flask_user/forms.py:240 165 | #, fuzzy 166 | msgid "Incorrect Password" 167 | msgstr "忘记密码" 168 | 169 | #: flask_user/forms.py:244 170 | #, fuzzy, python-format 171 | msgid "Incorrect %(username_or_email)s and/or Password" 172 | msgstr "用户名、邮箱或密码不正确" 173 | 174 | #: flask_user/forms.py:266 175 | msgid "Retype Password" 176 | msgstr "再次输入密码" 177 | 178 | #: flask_user/forms.py:267 179 | msgid "Password and Retype Password did not match" 180 | msgstr "两次输入的密码不一致" 181 | 182 | #: flask_user/forms.py:268 183 | msgid "Token" 184 | msgstr "" 185 | 186 | #: flask_user/forms.py:270 187 | #: flask_user/templates/flask_user/login_or_register.html:41 188 | #: flask_user/templates/flask_user/register.html:5 189 | msgid "Register" 190 | msgstr "注册" 191 | 192 | #: flask_user/forms.py:307 193 | msgid "Resend email confirmation email" 194 | msgstr "再次发送确认邮件" 195 | 196 | #: flask_user/forms.py:340 197 | msgid "Invite!" 198 | msgstr "邀请" 199 | 200 | #: flask_user/translations.py:74 201 | msgid "Home Page" 202 | msgstr "主页" 203 | 204 | #: flask_user/translations.py:75 205 | msgid "Profile Page" 206 | msgstr "信息页" 207 | 208 | #: flask_user/translations.py:76 209 | msgid "Special Page" 210 | msgstr "特别页" 211 | 212 | #: flask_user/views.py:46 213 | msgid "Your confirmation token has expired." 214 | msgstr "您的确认码已经过期。" 215 | 216 | #: flask_user/views.py:50 flask_user/views.py:70 217 | msgid "Invalid confirmation token." 218 | msgstr "无效的确认码。" 219 | 220 | #: flask_user/views.py:77 221 | msgid "Your email has been confirmed." 222 | msgstr "邮箱已被确认。" 223 | 224 | #: flask_user/views.py:115 225 | msgid "Your password has been changed successfully." 226 | msgstr "密码更改成功。" 227 | 228 | #: flask_user/views.py:153 229 | #, python-format 230 | msgid "Your username has been changed to '%(username)s'." 231 | msgstr "您的用户名已更改为“%(username)s”。" 232 | 233 | #: flask_user/views.py:221 234 | #, python-format 235 | msgid "" 236 | "A reset password email has been sent to '%(email)s'. Open that email and " 237 | "follow the instructions to reset your password." 238 | msgstr "一封重置密码邮件已经发送至“%(email)s”。打开那封邮件,按照其指引重置您的密码。" 239 | 240 | #: flask_user/views.py:293 241 | msgid "You have signed out successfully." 242 | msgstr "登出成功。" 243 | 244 | #: flask_user/views.py:534 245 | msgid "Invitation has been sent." 246 | msgstr "邀请邮件已发送。" 247 | 248 | #: flask_user/views.py:578 249 | msgid "Your reset password token has expired." 250 | msgstr "您的重置密码请求码已过期。" 251 | 252 | #: flask_user/views.py:582 253 | msgid "Your reset password token is invalid." 254 | msgstr "您的重置密码请求码无效。" 255 | 256 | #: flask_user/views.py:609 257 | #, fuzzy 258 | msgid "Your password has been reset successfully." 259 | msgstr "密码更改成功。" 260 | 261 | #: flask_user/views.py:626 262 | #, python-format 263 | msgid "You must confirm your email to access '%(url)s'." 264 | msgstr "您须确认您的邮箱才能访问“%(url)s”。" 265 | 266 | #: flask_user/views.py:638 267 | #, python-format 268 | msgid "You must be signed in to access '%(url)s'." 269 | msgstr "您须登录才能访问“%(url)s”。" 270 | 271 | #: flask_user/views.py:649 272 | #, python-format 273 | msgid "You do not have permission to access '%(url)s'." 274 | msgstr "您无权限访问“%(url)s”。" 275 | 276 | #: flask_user/views.py:680 flask_user/views.py:701 277 | #, python-format 278 | msgid "" 279 | "A confirmation email has been sent to %(email)s with instructions to " 280 | "complete your registration." 281 | msgstr "一封确认邮件已发送到%(email)s,请阅读内含信息以完成注册。" 282 | 283 | #: flask_user/views.py:682 284 | msgid "You have registered successfully." 285 | msgstr "注册成功。" 286 | 287 | #: flask_user/views.py:710 288 | msgid "Your account has not been enabled." 289 | msgstr "您的帐户已被禁用。" 290 | 291 | #: flask_user/views.py:719 292 | #, python-format 293 | msgid "" 294 | "Your email address has not yet been confirmed. Check your email Inbox and" 295 | " Spam folders for the confirmation email or Re-send " 296 | "confirmation email." 297 | msgstr "您的邮箱地址尚未确认。查看您的邮箱收件箱或垃圾箱以找到确认邮件,或者再次发送确认邮件。" 298 | 299 | #: flask_user/views.py:730 300 | msgid "You have signed in successfully." 301 | msgstr "登录成功。" 302 | 303 | #: flask_user/templates/flask_user/forgot_password.html:5 304 | msgid "Forgot Password" 305 | msgstr "忘记密码" 306 | 307 | #: flask_user/templates/flask_user/invite.html:5 308 | msgid "Invite User" 309 | msgstr "邀请用户" 310 | 311 | #: flask_user/templates/flask_user/login.html:21 312 | msgid "New here? Register." 313 | msgstr "新用户吗?请注册。" 314 | 315 | #: flask_user/templates/flask_user/login.html:44 316 | #: flask_user/templates/flask_user/login_or_register.html:34 317 | msgid "Forgot your Password?" 318 | msgstr "忘记密码吗?" 319 | 320 | #: flask_user/templates/flask_user/manage_emails.html:5 321 | msgid "Manage Emails" 322 | msgstr "管理邮箱" 323 | 324 | #: flask_user/templates/flask_user/register.html:21 325 | msgid "Already registered? Sign in." 326 | msgstr "已注册吗?登录。" 327 | 328 | #: flask_user/templates/flask_user/resend_confirm_email.html:5 329 | msgid "Resend Confirmation Email" 330 | msgstr "重发确认邮件" 331 | 332 | #: flask_user/templates/flask_user/reset_password.html:5 333 | msgid "Reset Password" 334 | msgstr "重置密码" 335 | 336 | #: flask_user/templates/flask_user/user_profile.html:5 337 | msgid "User profile" 338 | msgstr "账号" 339 | 340 | #~ msgid "Incorrect Username and Password" 341 | #~ msgstr "用户名或密码不正确" 342 | 343 | #~ msgid "Incorrect Email and Password" 344 | #~ msgstr "邮箱或密码不正确" 345 | 346 | #~ msgid "" 347 | #~ msgstr "您的密码已成功重置。请使用新密码登录。" 348 | 349 | #~ msgid "Change Password" 350 | #~ msgstr "更改密码" 351 | 352 | #~ msgid "Change Username" 353 | #~ msgstr "更改用户名" 354 | 355 | #~ msgid "Email does not exist" 356 | #~ msgstr "邮箱不存在" 357 | 358 | -------------------------------------------------------------------------------- /app/views/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Alexmod/Flask-User-and-Flask-admin/8f6de416d01367d6af9c6846a0a63474212a516b/app/views/__init__.py -------------------------------------------------------------------------------- /app/views/members_views.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, redirect, render_template, request, url_for 2 | from flask_user import current_user, login_required 3 | from app import db, babel 4 | from app.models.user_models import UserProfileForm 5 | from flask import current_app as app 6 | import gettext 7 | 8 | members_blueprint = Blueprint('members', __name__, template_folder='templates') 9 | 10 | 11 | @babel.localeselector 12 | def get_locale(): 13 | translations = [str(translation) for translation in 14 | babel.list_translations()] 15 | return request.accept_languages.best_match(translations) 16 | 17 | 18 | def set_lang(lang): 19 | i18n_dir = app.config['BABEL_TRANSLATION_DIRECTORIES'] 20 | gettext.install('lang', i18n_dir) 21 | trans_file = i18n_dir + lang + '/LC_MESSAGES/flask_user' 22 | tr = gettext.translation(trans_file, 'locale', languages=[lang]) 23 | _ = tr.gettext 24 | app.jinja_env.install_gettext_translations(tr) 25 | 26 | 27 | @members_blueprint.before_app_request 28 | def before_request(): 29 | lang = get_locale() 30 | lang = lang if lang else app.config['BABEL_DEFAULT_LOCALE'] 31 | set_lang(lang) 32 | 33 | if request.path.startswith('/admin'): 34 | if current_user.is_authenticated: 35 | if not current_user.has_role("admin"): 36 | return redirect(url_for('user.logout')) 37 | else: 38 | return redirect(url_for('user.login')) 39 | 40 | 41 | @members_blueprint.route('/members/') 42 | @login_required 43 | def member_page(): 44 | return render_template('pages/user_page.html') 45 | 46 | 47 | @members_blueprint.route('/members/profile/', methods=['GET', 'POST']) 48 | @login_required 49 | def user_profile_page(): 50 | # Initialize form 51 | # form = UserProfileForm(request.form, current_user) 52 | form = UserProfileForm() 53 | 54 | # Process valid POST 55 | if request.method == 'POST' and form.validate(): 56 | # Copy form fields to user_profile fields 57 | form.populate_obj(current_user) 58 | 59 | # Save user_profile 60 | db.session.commit() 61 | 62 | # Redirect to home page 63 | return redirect(url_for('public.home_page')) 64 | 65 | # Process GET or invalid POST 66 | return render_template('pages/user_profile_page.html', 67 | form=form) 68 | -------------------------------------------------------------------------------- /app/views/public_views.py: -------------------------------------------------------------------------------- 1 | from flask import Blueprint, render_template 2 | 3 | public_blueprint = Blueprint('public', __name__, template_folder='templates') 4 | 5 | 6 | @public_blueprint.route('/') 7 | def home_page(): 8 | return render_template('pages/home_page.html') 9 | -------------------------------------------------------------------------------- /fabfile.py: -------------------------------------------------------------------------------- 1 | # Definition file for Fabric -- an SSH command-line tool 2 | 3 | from fabric.operations import local 4 | from fabric.api import task 5 | 6 | @task 7 | def runserver(): 8 | local('python manage.py runserver') 9 | 10 | @task 11 | def test(): 12 | local('py.test tests/') 13 | 14 | @task 15 | def test_cov(): 16 | local('py.test -s --cov-report term-missing --cov-config tests/.coveragerc --cov app tests/') 17 | 18 | @task 19 | def tox(): 20 | local('tox') -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | """This file sets up a command line manager. 2 | 3 | Use "python manage.py" for a list of available commands. 4 | Use "python manage.py runserver" to start the develop web on localhost:5000. 5 | Use "python manage.py runserver --help" for additional runserver options. 6 | """ 7 | 8 | from flask_migrate import MigrateCommand 9 | from flask_script import Manager 10 | 11 | from app import create_app 12 | from app.commands import InitDbCommand 13 | 14 | # Setup Flask-Script with command line commands 15 | manager = Manager(create_app) 16 | manager.add_command('db', MigrateCommand) 17 | manager.add_command('init_db', InitDbCommand) 18 | 19 | if __name__ == "__main__": 20 | # python manage.py # shows available commands 21 | # python manage.py runserver --help # shows available runserver options 22 | manager.run() 23 | -------------------------------------------------------------------------------- /migrations/README.md: -------------------------------------------------------------------------------- 1 | # migrations directory 2 | 3 | This directory has been generated by Flask-Migrate and contains Alembic configuration files. 4 | Alembic is a Database Schema Migration tool. 5 | 6 | The 'versions' subdirectory contains the Database Schema Migration files. 7 | 8 | Use `python manage.py db` to see a list of Flask-Migrate commands. 9 | 10 | See also [Flask-Migrate](flask-migrate.readthedocs.org) and [Alembic](alembic.readthedocs.org). -------------------------------------------------------------------------------- /migrations/alembic.ini: -------------------------------------------------------------------------------- 1 | # A generic, single database configuration. 2 | 3 | [alembic] 4 | # template used to generate migration files 5 | # file_template = %%(rev)s_%%(slug)s 6 | 7 | # set to 'true' to run the environment during 8 | # the 'revision' command, regardless of autogenerate 9 | # revision_environment = false 10 | 11 | 12 | # Logging configuration 13 | [loggers] 14 | keys = root,sqlalchemy,alembic 15 | 16 | [handlers] 17 | keys = console 18 | 19 | [formatters] 20 | keys = generic 21 | 22 | [logger_root] 23 | level = WARN 24 | handlers = console 25 | qualname = 26 | 27 | [logger_sqlalchemy] 28 | level = WARN 29 | handlers = 30 | qualname = sqlalchemy.engine 31 | 32 | [logger_alembic] 33 | level = INFO 34 | handlers = 35 | qualname = alembic 36 | 37 | [handler_console] 38 | class = StreamHandler 39 | args = (sys.stderr,) 40 | level = NOTSET 41 | formatter = generic 42 | 43 | [formatter_generic] 44 | format = %(levelname)-5.5s [%(name)s] %(message)s 45 | datefmt = %H:%M:%S 46 | -------------------------------------------------------------------------------- /migrations/env.py: -------------------------------------------------------------------------------- 1 | from __future__ import with_statement 2 | from alembic import context 3 | from sqlalchemy import engine_from_config, pool 4 | from logging.config import fileConfig 5 | 6 | # this is the Alembic Config object, which provides 7 | # access to the values within the .ini file in use. 8 | config = context.config 9 | 10 | # Interpret the config file for Python logging. 11 | # This line sets up loggers basically. 12 | fileConfig(config.config_file_name) 13 | 14 | # add your model's MetaData object here 15 | # for 'autogenerate' support 16 | # from myapp import mymodel 17 | # target_metadata = mymodel.Base.metadata 18 | from flask import current_app 19 | config.set_main_option('sqlalchemy.url', current_app.config.get('SQLALCHEMY_DATABASE_URI')) 20 | target_metadata = current_app.extensions['migrate'].db.metadata 21 | 22 | # other values from the config, defined by the needs of env.py, 23 | # can be acquired: 24 | # my_important_option = config.get_main_option("my_important_option") 25 | # ... etc. 26 | 27 | 28 | def run_migrations_offline(): 29 | """Run migrations in 'offline' mode. 30 | 31 | This configures the context with just a URL 32 | and not an Engine, though an Engine is acceptable 33 | here as well. By skipping the Engine creation 34 | we don't even need a DBAPI to be available. 35 | 36 | Calls to context.execute() here emit the given string to the 37 | script output. 38 | 39 | """ 40 | url = config.get_main_option("sqlalchemy.url") 41 | context.configure(url=url) 42 | 43 | with context.begin_transaction(): 44 | context.run_migrations() 45 | 46 | 47 | def run_migrations_online(): 48 | """Run migrations in 'online' mode. 49 | 50 | In this scenario we need to create an Engine 51 | and associate a connection with the context. 52 | 53 | """ 54 | engine = engine_from_config(config.get_section(config.config_ini_section), 55 | prefix='sqlalchemy.', 56 | poolclass=pool.NullPool) 57 | 58 | connection = engine.connect() 59 | context.configure(connection=connection, 60 | target_metadata=target_metadata, 61 | **current_app.extensions['migrate'].configure_args) 62 | 63 | try: 64 | with context.begin_transaction(): 65 | context.run_migrations() 66 | finally: 67 | connection.close() 68 | 69 | if context.is_offline_mode(): 70 | run_migrations_offline() 71 | else: 72 | run_migrations_online() 73 | 74 | -------------------------------------------------------------------------------- /migrations/script.py.mako: -------------------------------------------------------------------------------- 1 | """${message} 2 | 3 | Revision ID: ${up_revision} 4 | Revises: ${down_revision} 5 | Create Date: ${create_date} 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = ${repr(up_revision)} 11 | down_revision = ${repr(down_revision)} 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | ${imports if imports else ""} 16 | 17 | def upgrade(): 18 | ${upgrades if upgrades else "pass"} 19 | 20 | 21 | def downgrade(): 22 | ${downgrades if downgrades else "pass"} 23 | -------------------------------------------------------------------------------- /migrations/versions/0001c8ac1a69_initial_version.py: -------------------------------------------------------------------------------- 1 | """Initial version 2 | 3 | Revision ID: 0001c8ac1a69 4 | Revises: None 5 | Create Date: 2015-07-14 17:46:32.620018 6 | 7 | """ 8 | 9 | # revision identifiers, used by Alembic. 10 | revision = '0001c8ac1a69' 11 | down_revision = None 12 | 13 | from alembic import op 14 | import sqlalchemy as sa 15 | 16 | 17 | def upgrade(): 18 | ### commands auto generated by Alembic - please adjust! ### 19 | op.create_table('role', 20 | sa.Column('id', sa.Integer(), nullable=False), 21 | sa.Column('name', sa.String(length=50), nullable=True), 22 | sa.Column('description', sa.String(length=255), server_default='', nullable=True), 23 | sa.PrimaryKeyConstraint('id'), 24 | sa.UniqueConstraint('name') 25 | ) 26 | op.create_table('user', 27 | sa.Column('id', sa.Integer(), nullable=False), 28 | sa.Column('username', sa.String(length=50), nullable=False), 29 | sa.Column('password', sa.String(length=255), server_default='', nullable=False), 30 | sa.Column('reset_password_token', sa.String(length=100), server_default='', nullable=False), 31 | sa.Column('email', sa.String(length=255), nullable=False), 32 | sa.Column('confirmed_at', sa.DateTime(), nullable=True), 33 | sa.Column('is_active', sa.Boolean(), server_default='0', nullable=False), 34 | sa.Column('first_name', sa.String(length=50), server_default='', nullable=False), 35 | sa.Column('last_name', sa.String(length=50), server_default='', nullable=False), 36 | sa.PrimaryKeyConstraint('id'), 37 | sa.UniqueConstraint('email'), 38 | sa.UniqueConstraint('username') 39 | ) 40 | op.create_table('user_roles', 41 | sa.Column('id', sa.Integer(), nullable=False), 42 | sa.Column('user_id', sa.Integer(), nullable=True), 43 | sa.Column('role_id', sa.Integer(), nullable=True), 44 | sa.ForeignKeyConstraint(['role_id'], ['role.id'], ondelete='CASCADE'), 45 | sa.ForeignKeyConstraint(['user_id'], ['user.id'], ondelete='CASCADE'), 46 | sa.PrimaryKeyConstraint('id') 47 | ) 48 | ### end Alembic commands ### 49 | 50 | 51 | def downgrade(): 52 | ### commands auto generated by Alembic - please adjust! ### 53 | op.drop_table('user_roles') 54 | op.drop_table('user') 55 | op.drop_table('role') 56 | ### end Alembic commands ### 57 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==2.3.2 2 | Flask_Script==2.0.5 3 | SQLAlchemy==1.3.0 4 | Flask_Admin==1.5.8 5 | alembic==0.9.7 6 | Flask_SQLAlchemy==2.1 7 | Fabric3==1.14.post1 8 | Flask_Mail==0.9.1 9 | Flask_WTF==0.14.3 10 | Flask_Babel==2.0.0 11 | Flask_Bootstrap==3.3.7.1 12 | Flask-User==0.6.19 13 | pytest==3.0.5 14 | Flask_Migrate==2.0.2 15 | WTForms==2.1 16 | Fabric==1.14.0 17 | -------------------------------------------------------------------------------- /tests/.coveragerc: -------------------------------------------------------------------------------- 1 | # Configuration for the test coverage tool (py.test --cov) 2 | # 3 | # Copyright 2014 SolidBuilds.com. All rights reserved 4 | # 5 | # Authors: Ling Thio 6 | 7 | [run] 8 | omit = app/startup/reset_db.py 9 | 10 | [report] 11 | show_missing = True 12 | -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # tests directory 2 | 3 | This directory contains all the automated tests for the test tool `py.test`. 4 | 5 | **`.coverage`**: Configuration file for the Python coverage tool `coverage`. 6 | 7 | **`conftest.py`**: Defines fixtures for py.test. 8 | 9 | **`test_*`**: py.test will load any file that starts with the name `test_` 10 | and run any function that starts with the name `test_`. 11 | 12 | 13 | ## Testing the app 14 | 15 | # Run all the automated tests in the tests/ directory 16 | ./runtests.sh # will run "py.test -s tests/" 17 | 18 | 19 | ## Generating a test coverage report 20 | 21 | # Run tests and show a test coverage report 22 | ./runcoverage.sh # will run py.test with coverage options 23 | 24 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | # __init__.py is a special Python file that allows a directory to become 2 | # a Python package so it can be accessed using the 'import' statement. 3 | 4 | # Intentionally left empty -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from app import create_app, db as the_db 3 | 4 | # Initialize the Flask-App with test-specific settings 5 | the_app = create_app(dict( 6 | TESTING=True, # Propagate exceptions 7 | LOGIN_DISABLED=False, # Enable @register_required 8 | MAIL_SUPPRESS_SEND=True, # Disable Flask-Mail send 9 | SERVER_NAME='localhost', # Enable url_for() without request context 10 | SQLALCHEMY_DATABASE_URI='sqlite:///:memory:', # In-memory SQLite DB 11 | WTF_CSRF_ENABLED=False, # Disable CSRF form validation 12 | )) 13 | 14 | # Setup an application context (since the tests run of the webserver context) 15 | the_app.app_context().push() 16 | 17 | # Create and populate roles and users tables 18 | from app.commands.init_db import init_db 19 | init_db() 20 | 21 | 22 | @pytest.fixture(scope='session') 23 | def app(): 24 | """ Makes the 'app' parameter available to test functions. """ 25 | return the_app 26 | 27 | 28 | @pytest.fixture(scope='session') 29 | def db(): 30 | """ Makes the 'db' parameter available to test functions. """ 31 | return the_db 32 | 33 | 34 | @pytest.fixture(scope='function') 35 | def session(db, request): 36 | """Creates a new database session for a test.""" 37 | connection = db.engine.connect() 38 | transaction = connection.begin() 39 | 40 | options = dict(bind=connection, binds={}) 41 | session = db.create_scoped_session(options=options) 42 | 43 | db.session = session 44 | 45 | def teardown(): 46 | transaction.rollback() 47 | connection.close() 48 | session.remove() 49 | 50 | request.addfinalizer(teardown) 51 | return session 52 | 53 | 54 | @pytest.fixture(scope='session') 55 | def client(app): 56 | return app.test_client() 57 | -------------------------------------------------------------------------------- /tests/test_page_urls.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function # Use print() instead of print 2 | from flask import url_for 3 | 4 | 5 | def test_page_urls(client): 6 | # Visit home page 7 | response = client.get(url_for('public.home_page'), follow_redirects=True) 8 | assert response.status_code == 200 9 | 10 | # Login as user and visit User page 11 | response = client.post(url_for('user.login'), follow_redirects=True, 12 | data=dict(email='user@example.com', 13 | password='Password1')) 14 | assert response.status_code == 200 15 | response = client.get(url_for('members.member_page'), follow_redirects=True) 16 | assert response.status_code == 200 17 | 18 | # Logout 19 | response = client.get(url_for('user.logout'), follow_redirects=True) 20 | assert response.status_code == 200 21 | 22 | # Login as admin and visit Admin page 23 | response = client.post(url_for('user.login'), follow_redirects=True, 24 | data=dict(email='admin@example.com', 25 | password='Password1')) 26 | assert response.status_code == 200 27 | response = client.get(url_for('admin.index'), follow_redirects=True) 28 | assert response.status_code == 200 29 | 30 | # Logout 31 | response = client.get(url_for('user.logout'), follow_redirects=True) 32 | assert response.status_code == 200 33 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | # Test on the following Python versions 3 | envlist = py26, py27, py33, py34, py35, py36 4 | 5 | toxworkdir=../builds/flask_user_starter_app/tox 6 | skipsdist=True 7 | 8 | [testenv] 9 | deps = -r{toxinidir}/requirements.txt 10 | 11 | # Run automated test suite 12 | commands= 13 | pytest tests/ --------------------------------------------------------------------------------