mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-05-06 11:35:31 +02:00
make more string translate
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
transConfig.$inject = ['$translateProvider'];
|
||||
function transConfig($translateProvider) {
|
||||
$translateProvider.useSanitizeValueStrategy(null);
|
||||
$translateProvider.preferredLanguage('en');
|
||||
$translateProvider.preferredLanguage('cn');
|
||||
//$translateProvider.fallbackLanguage('cn');
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
MENU_CHAT: '聊天室',
|
||||
MENU_TORRENTS: '种子',
|
||||
MENU_TORRENTS_ADMIN: '种子管理',
|
||||
MENU_USERS_ADMIN: '用户管理',
|
||||
MENU_UPLOAD: '发布',
|
||||
MENU_FORUMS: '论坛',
|
||||
MENU_RANKING: '排行榜',
|
||||
@@ -233,6 +234,26 @@
|
||||
PAGE_HEADER_RANKING_RATIO: '分享率排行榜',
|
||||
PAGE_HEADER_RANKING_SCORE: '积分排行榜',
|
||||
|
||||
//admin views
|
||||
USERS_LIST: '用户列表',
|
||||
USERS_UPDATE: '修改',
|
||||
|
||||
//user settings
|
||||
SETTINGS: '控制面版',
|
||||
BUTTON_SAVE_PROFILE: '保存',
|
||||
BUTTON_SELECT_PICTURE: '选择图片',
|
||||
BUTTON_USE_THIS_PICTURE: '应用图片',
|
||||
BUTTON_CANCEL: '取消',
|
||||
BUTTON_COMPLETE: '完成',
|
||||
BUTTON_SAVE_PASSWORD: '保存密码',
|
||||
CAPTION_CURRENT_PASSWORD: '当前密码',
|
||||
CAPTION_NEW_PASSWORD: '新密码',
|
||||
CAPTION_VERIFY_PASSWORD: '验证密码',
|
||||
CAPTION_REQUIRED_CURRENT_PASSWORD: '请输入当前密码.',
|
||||
CAPTION_REQUIRED_NEW_PASSWORD: '请输入新密码.',
|
||||
CAPTION_REQUIRED_VERIFY_PASSWORD: '请再输入一次新密码.',
|
||||
CAPTION_PASSWORD_NOT_MATCH: '两次输入的新密码不一致.',
|
||||
|
||||
//footer view
|
||||
MIT_PROTOCOL: '本项目源码受 <a href="https://github.com/twbs/bootstrap/blob/master/LICENSE" target="_blank">MIT</a> 开源协议保护',
|
||||
GIT_REPO: 'Power by ©meanTottent,<a href="https://github.com/taobataoma/meanTorrent" target="_blank">GitHub 源码仓库</a>',
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
MENU_CHAT: 'Chat',
|
||||
MENU_TORRENTS: 'Torrents',
|
||||
MENU_TORRENTS_ADMIN: 'Manage Torrents',
|
||||
MENU_USERS_ADMIN: 'Manage Torrents',
|
||||
MENU_UPLOAD: 'Upload',
|
||||
MENU_FORUMS: 'Forums',
|
||||
MENU_RANKING: 'Ranking',
|
||||
@@ -233,6 +234,26 @@
|
||||
PAGE_HEADER_RANKING_RATIO: 'Ratio Ranking',
|
||||
PAGE_HEADER_RANKING_SCORE: 'Score Ranking',
|
||||
|
||||
//admin views
|
||||
USERS_LIST: 'Users',
|
||||
USERS_UPDATE: 'Update',
|
||||
|
||||
//user settings
|
||||
SETTINGS: 'Settings',
|
||||
BUTTON_SAVE_PROFILE: 'Save Profile',
|
||||
BUTTON_SELECT_PICTURE: 'Select Picture',
|
||||
BUTTON_USE_THIS_PICTURE: 'Use This Picture',
|
||||
BUTTON_CANCEL: 'Cancel',
|
||||
BUTTON_COMPLETE: 'Complete',
|
||||
BUTTON_SAVE_PASSWORD: 'Save Password',
|
||||
CAPTION_CURRENT_PASSWORD: 'Current Password',
|
||||
CAPTION_NEW_PASSWORD: 'New Password',
|
||||
CAPTION_VERIFY_PASSWORD: 'Verify Password',
|
||||
CAPTION_REQUIRED_CURRENT_PASSWORD: 'Your current password is required.',
|
||||
CAPTION_REQUIRED_NEW_PASSWORD: 'Enter a new password.',
|
||||
CAPTION_REQUIRED_VERIFY_PASSWORD: 'Verify your new password.',
|
||||
CAPTION_PASSWORD_NOT_MATCH: 'Passwords do not match.',
|
||||
|
||||
//footer view
|
||||
MIT_PROTOCOL: 'The source of this project is protected by <a href="https://github.com/twbs/bootstrap/blob/master/LICENSE" target="_blank">MIT</a> open source protocol',
|
||||
GIT_REPO: 'Power by ©meanTottent,<a href="https://github.com/taobataoma/meanTorrent" target="_blank">view on GitHub</a>',
|
||||
|
||||
@@ -80,4 +80,8 @@
|
||||
|
||||
.margin-left-m-20 {
|
||||
margin-left: -20px;
|
||||
}
|
||||
}
|
||||
|
||||
.margin-left-10 {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
@@ -492,4 +492,11 @@
|
||||
|
||||
.ranking-active-col {
|
||||
color: @mt-base-color;
|
||||
}
|
||||
|
||||
.admin-user-info {
|
||||
hr {
|
||||
margin-bottom: 15px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
@@ -5,12 +5,12 @@
|
||||
.module('users.admin')
|
||||
.run(menuConfig);
|
||||
|
||||
menuConfig.$inject = ['menuService'];
|
||||
menuConfig.$inject = ['menuService', '$translate'];
|
||||
|
||||
// Configuring the Users module
|
||||
function menuConfig(menuService) {
|
||||
function menuConfig(menuService, $translate) {
|
||||
menuService.addSubMenuItem('topbar', 'admin', {
|
||||
title: 'Manage Users',
|
||||
title: $translate.instant('MENU_USERS_ADMIN'),
|
||||
state: 'admin.users'
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<section class="container">
|
||||
<div class="page-header">
|
||||
<h1>User <span ng-bind="vm.user.username"></span></h1>
|
||||
<h1><span ng-bind="vm.user.username"></span></h1>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<form name="vm.userForm" ng-submit="vm.update(vm.userForm.$valid)" novalidate>
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="submit" value="Update" class="btn btn-default">
|
||||
<input type="submit" value="{{'USERS_UPDATE' | translate}}" class="btn btn-default">
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
@@ -1,21 +1,27 @@
|
||||
<section class="container">
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h1>Users</h1>
|
||||
</div>
|
||||
<div class="col-md-4" style="margin-top: 2em">
|
||||
<input class="form-control col-md-4" type="text" ng-model="vm.search" placeholder="Search" ng-change="vm.figureOutItemsToDisplay()" />
|
||||
</div>
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h1>{{ 'USERS_LIST' | translate}}</h1>
|
||||
</div>
|
||||
<div class="col-md-4" style="margin-top: 2em">
|
||||
<input class="form-control col-md-4" type="text" ng-model="vm.search" placeholder="Search" ng-change="vm.figureOutItemsToDisplay()"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group">
|
||||
<a ng-repeat="user in vm.pagedItems" ui-sref="admin.user({userId: user._id})" class="list-group-item">
|
||||
<h4 class="list-group-item-heading" ng-bind="user.username"></h4>
|
||||
<p class="list-group-item-text pull-right small" ng-bind="user.roles"></p>
|
||||
<p class="list-group-item-text" ng-bind="user.email"></p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="list-group">
|
||||
<a ng-repeat="user in vm.pagedItems" ui-sref="admin.user({userId: user._id})" class="list-group-item">
|
||||
<h4 class="list-group-item-heading" ng-bind="user.username"></h4>
|
||||
|
||||
<uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength" ng-model="vm.currentPage" ng-change="vm.pageChanged()"></uib-pagination>
|
||||
<p class="list-group-item-text pull-right small" ng-bind="user.roles"></p>
|
||||
|
||||
<p class="list-group-item-text" ng-bind="user.email"></p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength" ng-model="vm.currentPage"
|
||||
ng-change="vm.pageChanged()"
|
||||
first-text="{{ 'PAGE_TEXT_FIRST' | translate}}" previous-text="{{ 'PAGE_TEXT_PREVIOUS' | translate}}"
|
||||
next-text="{{ 'PAGE_TEXT_NEXT' | translate}}" last-text="{{ 'PAGE_TEXT_LAST' | translate}}">
|
||||
</uib-pagination>
|
||||
</section>
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
<section class="container">
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1 ng-bind="vm.user.username"></h1>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<a class="btn btn-primary" ui-sref="admin.user-edit({userId: vm.user._id})">
|
||||
<i class="glyphicon glyphicon-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-primary" ng-click="vm.remove()" ng-if="!vm.isContextUserSelf()">
|
||||
<i class="glyphicon glyphicon-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h1 ng-bind="vm.user.username"></h1>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a class="btn btn-primary pull-right margin-left-10" ui-sref="admin.user-edit({userId: vm.user._id})">
|
||||
<i class="glyphicon glyphicon-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-primary pull-right" ng-click="vm.remove()" ng-if="!vm.isContextUserSelf()">
|
||||
<i class="glyphicon glyphicon-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>First Name</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.firstName"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Last Name</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.lastName"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Email</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.email"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Provider</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.provider"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Created</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.created"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Roles</strong></div>
|
||||
<div class="col-md-6" ng-bind="vm.user.roles"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 admin-user-info">
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>First Name</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.firstName"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Last Name</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.lastName"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Email</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.email"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Provider</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.provider"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Created</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.created"></div>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col-md-3"><strong>Roles</strong></div>
|
||||
<div class="col-md-9" ng-bind="vm.user.roles"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -3,28 +3,28 @@
|
||||
<form name="vm.passwordForm" ng-submit="vm.changeUserPassword(vm.passwordForm.$valid)" class="signin" novalidate autocomplete="off">
|
||||
<fieldset>
|
||||
<div class="form-group" show-errors>
|
||||
<label for="currentPassword">Current Password</label>
|
||||
<label for="currentPassword">{{'CAPTION_CURRENT_PASSWORD' | translate}}</label>
|
||||
<input type="password" id="currentPassword" name="currentPassword" class="form-control" ng-model="vm.passwordDetails.currentPassword" placeholder="Current Password" required autofocus>
|
||||
<div ng-messages="vm.passwordForm.currentPassword.$error" role="alert">
|
||||
<p class="help-block error-text" ng-message="required">Your current password is required.</p>
|
||||
<p class="help-block error-text" ng-message="required">{{'CAPTION_REQUIRED_CURRENT_PASSWORD' | translate}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" show-errors>
|
||||
<label for="newPassword">New Password</label>
|
||||
<label for="newPassword">{{'CAPTION_NEW_PASSWORD' | translate}}</label>
|
||||
<input type="password" id="newPassword" name="newPassword" class="form-control" ng-model="vm.passwordDetails.newPassword" placeholder="New Password" uib-popover="{{vm.getPopoverMsg()}}" uib-popover-trigger="focus" password-validator required>
|
||||
<div ng-messages="vm.passwordForm.newPassword.$error" role="alert">
|
||||
<p class="help-block error-text" ng-message="required">Enter a new password.</p>
|
||||
<p class="help-block error-text" ng-message="required">{{'CAPTION_REQUIRED_NEW_PASSWORD' | translate}}</p>
|
||||
<div ng-repeat="passwordError in passwordErrors">
|
||||
<p class="help-block error-text" ng-show="vm.passwordForm.newPassword.$error.requirements">{{passwordError}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" show-errors>
|
||||
<label for="verifyPassword">Verify Password</label>
|
||||
<label for="verifyPassword">{{'CAPTION_VERIFY_PASSWORD' | translate}}</label>
|
||||
<input type="password" id="verifyPassword" name="verifyPassword" class="form-control" ng-model="vm.passwordDetails.verifyPassword" placeholder="Verify Password" password-verify="vm.passwordDetails.newPassword" required>
|
||||
<div ng-messages="vm.passwordForm.verifyPassword.$error" role="alert">
|
||||
<p class="help-block error-text" ng-message="required">Verify your new password.</p>
|
||||
<p class="help-block error-text" ng-show="vm.passwordForm.verifyPassword.$error.passwordVerify">Passwords do not match.</p>
|
||||
<p class="help-block error-text" ng-message="required">{{'CAPTION_REQUIRED_VERIFY_PASSWORD' | translate}}</p>
|
||||
<p class="help-block error-text" ng-show="vm.passwordForm.verifyPassword.$error.passwordVerify">{{'CAPTION_PASSWORD_NOT_MATCH' | translate}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-show="!vm.passwordForm.newPassword.$error.required">
|
||||
@@ -32,7 +32,7 @@
|
||||
<uib-progressbar value="requirementsProgress" type="{{requirementsColor}}"><span style="color:white; white-space:nowrap;">{{requirementsProgress}}%</span></uib-progressbar>
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-primary">Save Password</button>
|
||||
<button type="submit" class="btn btn-primary">{{'BUTTON_SAVE_PASSWORD' | translate}}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
@@ -18,17 +18,17 @@
|
||||
<div ng-show="!vm.fileSelected" class="form-group">
|
||||
<button class="btn btn-default btn-file" ngf-select="vm.handleFileSelect($event)" ng-model="vm.picFile" accept="image/*"
|
||||
ngf-before-model-change="vm.loading = true" ngf-resize="{width: 400}"
|
||||
ngf-resize-if="$width > 400 || $height > 400">Select Picture
|
||||
ngf-resize-if="$width > 400 || $height > 400">{{'BUTTON_SELECT_PICTURE' | translate}}
|
||||
</button>
|
||||
</div>
|
||||
<div ng-show="vm.fileSelected" class="form-group">
|
||||
<button class="btn btn-primary" ng-click="vm.upload()">Use This Picture</button>
|
||||
<button class="btn btn-default" ng-click="vm.cancel()">Cancel</button>
|
||||
<button class="btn btn-primary" ng-click="vm.upload()">{{'BUTTON_USE_THIS_PICTURE' | translate}}</button>
|
||||
<button class="btn btn-default" ng-click="vm.cancel()">{{'BUTTON_CANCEL' | translate}}</button>
|
||||
</div>
|
||||
<div ng-show="vm.fileSelected" class="form-group progress">
|
||||
<div class="progress-bar" role="progressbar" aria-valuenow="{{vm.progress}}" aria-valuemin="0" aria-valuemax="100"
|
||||
style="width:{{vm.progress}}%" ng-bind="vm.progress + '%'">
|
||||
<span class="sr-only">{{vm.progress}}% Complete</span>
|
||||
<span class="sr-only">{{vm.progress}}% {{'BUTTON_COMPLETE' | translate}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-primary">Save Profile</button>
|
||||
<button type="submit" class="btn btn-primary">{{'BUTTON_SAVE_PROFILE' | translate}}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<section class="container">
|
||||
<div class="page-header">
|
||||
<h1>Settings</h1>
|
||||
<h1>{{'SETTINGS' | translate}}</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<nav class="col-sm-3 col-md-3">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="settings.profile">Edit Profile</a>
|
||||
<a ui-sref="settings.profile">{{'EDIT_PROFILE' | translate}}</a>
|
||||
</li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="settings.picture">Change Profile Picture</a>
|
||||
<a ui-sref="settings.picture">{{'EDIT_PROFILE_PIC' | translate}}</a>
|
||||
</li>
|
||||
<li ui-sref-active="active" ng-show="vm.user.provider === 'local'">
|
||||
<a ui-sref="settings.password">Change Password</a>
|
||||
<a ui-sref="settings.password">{{'CHANGE_PASSWORD' | translate}}</a>
|
||||
</li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="settings.accounts">Manage Social Accounts</a>
|
||||
<a ui-sref="settings.accounts">{{'MANAGE_SOCIAL_ACCOUNTS' | translate}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
Reference in New Issue
Block a user