Merge pull request #2762 from Imperadeiro98/master

Updated i18n for clans
This commit is contained in:
Imperadeiro98 2015-05-16 19:36:56 +01:00
commit 461a7c9c49
7 changed files with 169 additions and 89 deletions

View file

@ -158,6 +158,7 @@
unwatch: "Unwatch"
submit_patch: "Submit Patch"
submit_changes: "Submit Changes"
save_changes: "Save Changes"
general:
and: "and"
@ -609,6 +610,15 @@
sub_includes_5: "7 new heroes with unique skills to master"
sub_includes_6: "3500 bonus gems every month"
sub_includes_7: "Private Clans"
monitor_progress_title: "How do I monitor student progress?"
monitor_progress_1: "Student progress can be monitored by creating a"
monitor_progress_2: "for your class."
monitor_progress_3: "To add a student, send them the invite link for your Clan, which is on the"
monitor_progress_4: "page."
monitor_progress_5: "After they join, you will see a summary of the student's progress on your Clan's page."
private_clans_1: "Private Clans provide increased privacy and detailed progress information for each student."
private_clans_2: "To create a private Clan, check the 'Make clan private' checkbox when creating a"
private_clans_3: "."
who_for_title: "Who is CodeCombat for?"
who_for_1: "We recommend CodeCombat for students aged 9 and up. No prior programming experience is needed."
who_for_2: "We've designed CodeCombat to appeal to both boys and girls."
@ -621,6 +631,12 @@
how_much_2: "monthly subscription"
how_much_3: "costs $9.99, and can be cancelled anytime."
how_much_4: "Additionally, we provide discounts for larger groups:"
how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact"
how_much_6: "for more details."
more_info_title: "Where can I find more information?"
more_info_1: "Our"
more_info_2: "teachers forum"
more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
sys_requirements_title: "System Requirements"
sys_requirements_1: "A modern web browser. Newer versions of Chrome, Firefox, or Safari. Internet Explorer 9 or later."
sys_requirements_2: "CodeCombat is not supported on iPad yet."
@ -733,6 +749,49 @@
social_hipchat: "Chat with us in the public CodeCombat HipChat room"
contribute_to_the_project: "Contribute to the project"
clans:
clan: "Clan"
clans: "Clans"
new_name: "New clan name"
new_description: "New clan description"
make_private: "Make clan private"
subs_only: "subscribers only"
create_clan: "Create New Clan"
public_clans: "Public Clans"
my_clans: "My Clans"
clan_name: "Clan Name"
name: "Name"
chieftain: "Chieftain"
type: "Type"
edit_clan_name: "Edit Clan Name"
edit_clan_description: "Edit Clan Description"
edit_name: "edit name"
edit_description: "edit description"
private: "(private)"
summary: "Summary"
average_level: "Average Level"
average_achievements: "Average Achievements"
delete_clan: "Delete Clan"
leave_clan: "Leave Clan"
join_clan: "Join Clan"
invite_1: "Invite:"
invite_2: "*Invite players to this Clan by sending them this link."
members: "Members"
progress: "Progress"
not_started_1: "not started"
started_1: "started"
complete_1: "complete"
exp_levels: "Expand levels"
rem_hero: "Remove Hero"
status: "Status"
complete_2: "Complete"
started_2: "Started"
not_started_2: "Not Started"
view_solution: "Click to view solution."
latest_achievement: "Latest Achievement"
playtime: "Playtime"
last_played: "Last played"
classes:
archmage_title: "Archmage"
archmage_title_description: "(Coder)"
@ -981,6 +1040,7 @@
no_achievements: "No Achievements earned yet."
favorite_prefix: "Favorite language is "
favorite_postfix: "."
not_member_of_clans: "Not a member of any clans yet."
achievements:
last_earned: "Last Earned"
@ -1086,6 +1146,7 @@
user_remarks: "User Remarks"
versions: "Versions"
items: "Items"
hero: "Hero"
heroes: "Heroes"
achievement: "Achievement"
clas: "CLAs"

View file

@ -9,7 +9,7 @@ block header
span.glyphicon.glyphicon-home
a(href="/about", data-i18n="nav.about")
a(href='/teachers', data-i18n="nav.teachers") Teachers
a(href='/clans') Clans
a(href='/clans', data-i18n="clans.clans") Clans
a(href='http://discourse.codecombat.com/', data-i18n="nav.forum")
a(href='/community', data-i18n="nav.community")
//a(href='/play/ladder', data-i18n="home.multiplayer").multiplayer-nav-link

View file

@ -7,88 +7,90 @@ block content
.modal-header
button.close(data-dismiss='modal')
span ×
h3.modal-title Edit Clan Name
h3.modal-title(data-i18n="clans.edit_clan_name") Edit Clan Name
.modal-body
input.edit-name-input(type='text' value="#{clan.get('name')}")
input.edit-name-input(type='text', value="#{clan.get('name')}")
.modal-footer
button.btn(data-dismiss='modal') Close
button.btn.edit-name-save-btn Save changes
button.btn(data-dismiss='modal', data-i18n="modal.close") Close
button.btn.edit-name-save-btn(data-i18n="common.save_changes") Save changes
.modal#editDescriptionModal
.modal-dialog
.modal-header
button.close(data-dismiss='modal')
span ×
h3.modal-title Edit Clan Description
h3.modal-title(data-i18n="clans.edit_clan_description") Edit Clan Description
.modal-body
textarea.edit-description-input(rows=2)= clan.get('description')
.modal-footer
button.btn(data-dismiss='modal') Close
button.btn.edit-description-save-btn Save changes
button.btn(data-dismiss='modal', data-i18n="modal.close") Close
button.btn.edit-description-save-btn(data-i18n="common.save_changes") Save changes
if clan
h1 #{clan.get('name')}
if clan.get('type') === 'private'
small (private)
small(data-i18n="clans.private") (private)
if clan.get('ownerID') === me.id
span.spl
button.btn.btn-xs.edit-name-btn(data-toggle='modal', data-target='#editNameModal') edit name
button.btn.btn-xs.edit-name-btn(data-toggle='modal', data-target='#editNameModal', data-i18n="clans.edit_name") edit name
if clan.get('description')
.clan-description
each line in clan.get('description').split('\n')
p= line
if clan.get('ownerID') === me.id
button.btn.btn-xs.edit-description-btn(data-toggle='modal', data-target='#editDescriptionModal') edit description
button.btn.btn-xs.edit-description-btn(data-toggle='modal', data-target='#editDescriptionModal', data-i18n="clans.edit_description") edit description
h5 Summary
h5(data-i18n="clans.summary") Summary
table.table.table-condensed.stats-table
if owner
tr
td
span.spr Chieftain
span.spr(data-i18n="clans.chieftain") Chieftain
td
span.spr.player-hero-icon(data-memberid="#{clan.get('ownerID')}")
a(href="/user/#{clan.get('ownerID')}")= owner.get('name')
if stats.averageLevel
tr
td Average Level
td(data-i18n="clans.average_level") Average Level
td= stats.averageLevel
if stats.averageAchievements && clan.get('type') === 'public'
tr
td Average Achievements
td(data-i18n="clans.average_achievements") Average Achievements
td= stats.averageAchievements
p
if isOwner
button.btn.btn-xs.btn-warning.delete-clan-btn Delete Clan
button.btn.btn-xs.btn-warning.delete-clan-btn(data-i18n="clans.delete_clan") Delete Clan
else if isMember
button.btn.btn-xs.btn-warning.leave-clan-btn Leave Clan
button.btn.btn-xs.btn-warning.leave-clan-btn(data-i18n="clans.leave_clan") Leave Clan
else
button.btn.btn-lg.btn-success.join-clan-btn Join Clan
button.btn.btn-lg.btn-success.join-clan-btn(data-i18n="clans.join_clan") Join Clan
if clan.get('ownerID') === me.id || clan.get('type') === 'public'
div
span.spl.spr.join-link-prompt Invite:
span.spl.spr.join-link-prompt(data-i18n="clans.invite_1") Invite:
input.join-clan-link(type="text", readonly, value="#{joinClanLink}")
.small *Invite players to this Clan by sending them this link.
.small(data-i18n="clans.invite_2") *Invite players to this Clan by sending them this link.
if members
h3 Members (#{members.length})
h3
span.spr(data-i18n="clans.members") Members
span (#{members.length})
//- Premium dashboard
if clan.get('dashboardType') === 'premium'
table.table.table-condensed
thead
tr
th Hero
th
span.progress-header Progress
span.progress-key not started
span.progress-key.progress-key-started started
span.progress-key.progress-key-complete complete
th(data-i18n="resources.hero") Hero
th
span.progress-header(data-i18n="clans.progress") Progress
span.progress-key(data-i18n="clans.not_started_1") not started
span.progress-key.progress-key-started(data-i18n="clans.started_1") started
span.progress-key.progress-key-complete(data-i18n="clans.complete_1") complete
input.expand-progress-checkbox(type='checkbox')
span.spl.expand-progress-label Expand levels
span.spl.expand-progress-label(data-i18n="clans.exp_levels") Expand levels
tbody
each member in members
tr
@ -103,7 +105,7 @@ block content
a(href="/user/#{member.id}")= member.get('name') || 'Anoner'
div Level #{member.level()}
if isOwner && member.id !== clan.get('ownerID')
button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}") Remove Hero
button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero
td.progress-cell
each campaign in campaignLevelProgressions
@ -124,11 +126,18 @@ block content
.level-popup-container
h3 #{i}. #{levelInfo.level}
p
div Status: Complete
div Playtime: #{levelInfo.playtime}s
div Last played: #{levelInfo.changed}
div
span(data-i18n="choose_hero.status") Status
span.spr :
span(data-i18n="clans.complete_2") Complete
div
span(data-i18n="clans.playtime") Playtime
span : #{levelInfo.playtime}s
div
span(data-i18n="clans.last_played") Last played
span : #{levelInfo.changed}
if isOwner || me.isAdmin()
strong Click to view solution.
strong(data-i18n="clans.view_solution") Click to view solution.
else if state === 'started'
span.progress-level-cell.progress-level-cell-started(data-level-info=levelInfo) #{i}
if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1
@ -136,18 +145,28 @@ block content
.level-popup-container
h3 #{i}. #{level.name}
p
div Status: Started
div Playtime: #{levelInfo.playtime}s
div Last played: #{levelInfo.changed}
div
span(data-i18n="choose_hero.status") Status
span.spr :
span(data-i18n="clans.started_2") Started
div
span(data-i18n="clans.playtime") Playtime
span : #{levelInfo.playtime}s
div
span(data-i18n="clans.last_played") Last played
span : #{levelInfo.changed}
if isOwner || me.isAdmin()
strong Click to view solution.
strong(data-i18n="clans.view_solution") Click to view solution.
else
span.progress-level-cell.level-progression-level-not-started #{i}
if showExpandedProgress || i === 1 || i === lastUserCampaignLevelMap[member.id][campaign.ID].index + 1
span.spl #{level.name}
.level-popup-container
h3 #{i}. #{level.name}
div Status: Not Started
div
span(data-i18n="choose_hero.status") Status
span.spr :
span(data-i18n="clans.not_started_2") Not Started
if lastUserCampaignLevelMap[member.id][campaign.ID].levelSlug === level.slug
- break
@ -158,10 +177,10 @@ block content
tr
th
th
td.name-cell Name
th.level-cell Level
th.achievements-cell Achievements
th.latest-achievement-cell Latest Achievement
td.name-cell(data-i18n="clans.name") Name
th.level-cell(data-i18n="resources.level") Level
th.achievements-cell(data-i18n="play.achievements") Achievements
th.latest-achievement-cell(data-i18n="clans.latest_achievement") Latest Achievement
th
tbody
each member in members
@ -182,4 +201,4 @@ block content
span= memberAchievementsMap[member.id][0].get('achievementName')
td
if isOwner && member.id !== clan.get('ownerID')
button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}") Remove Hero
button.btn.btn-xs.btn-warning.remove-member-btn(data-id="#{member.id}", data-i18n="clans.rem_hero") Remove Hero

View file

@ -3,33 +3,33 @@ extends /templates/base
block content
p
input.create-clan-name(type='text' placeholder='New clan name')
input.create-clan-name(type='text', data-i18n="[placeholder]clans.new_name", placeholder='New clan name')
p
textarea.create-clan-description(rows=2, placeholder='New clan description')
textarea.create-clan-description(rows=2, data-i18n="[placeholder]clans.new_description", placeholder='New clan description')
p
input(type='checkbox').private-clan-checkbox
span.spl Make clan private
span.spl(data-i18n="clans.make_private") Make clan private
span.spl (
a.private-more-info subscribers only
a.private-more-info(data-i18n="clans.subs_only") subscribers only
span )
p
button.btn.btn-success.create-clan-btn Create New Clan
button.btn.btn-success.create-clan-btn(data-i18n="clans.create_clan") Create New Clan
div(role='tabpanel')
ul.nav.nav-tabs(role='tablist')
li.active(role='presentation')
a(href='#public-clans' aria-controls='public-clans', role='tab', data-toggle='tab') Public Clans
a(href='#public-clans', aria-controls='public-clans', role='tab', data-toggle='tab', data-i18n="clans.public_clans") Public Clans
li(role='presentation')
a(href='#my-clans' aria-controls='my-clans', role='tab', data-toggle='tab') My Clans
a(href='#my-clans', aria-controls='my-clans', role='tab', data-toggle='tab', data-i18n="clans.my_clans") My Clans
.tab-content
.tab-pane.active#public-clans(role='tabpanel')
table.table.table-striped.table-condensed
thead
tr
th Clan Name
th Heroes
th Chieftain
th(data-i18n="clans.clan_name") Clan Name
th(data-i18n="play.heroes") Heroes
th(data-i18n="clans.chieftain") Chieftain
th
tbody
if publicClans.length
@ -48,18 +48,18 @@ block content
a(href="/user/#{clan.get('ownerID')}") Anoner
td
if myClanIDs.indexOf(clan.id) < 0
button.btn.btn-success.join-clan-btn(data-id="#{clan.id}") Join Clan
button.btn.btn-success.join-clan-btn(data-id="#{clan.id}", data-i18n="clans.join_clan") Join Clan
else if clan.get('ownerID') !== me.id
button.btn.btn-xs.btn-warning.leave-clan-btn(data-id="#{clan.id}") Leave Clan
button.btn.btn-xs.btn-warning.leave-clan-btn(data-id="#{clan.id}", data-i18n="clans.leave_clan") Leave Clan
.tab-pane#my-clans(role='tabpanel')
table.table.table-striped.table-condensed
thead
tr
th Clan Name
th Heroes
th Chieftain
th Type
th(data-i18n="clans.clan_name") Clan Name
th(data-i18n="play.heroes") Heroes
th(data-i18n="clans.chieftain") Chieftain
th(data-i18n="clans.type") Type
th
tbody
if myClans.length
@ -79,4 +79,4 @@ block content
td= clan.get('type')
td
if clan.get('ownerID') !== me.id
button.btn.btn-xs.btn-warning.leave-clan-btn(data-id="#{clan.id}") Leave Clan
button.btn.btn-xs.btn-warning.leave-clan-btn(data-id="#{clan.id}", data-i18n="clans.leave_clan") Leave Clan

View file

@ -115,7 +115,7 @@ else
if me.isPremium()
button.btn.btn-illustrated.btn-primary(data-i18n="nav.contact", data-toggle="coco-modal", data-target="core/ContactModal") Contact
span.spl
a.btn.btn-illustrated(href='/clans') Clans
a.btn.btn-illustrated(href='/clans', data-i18n="clans.clans") Clans
button.btn.btn-lg.btn-inverse.campaign-control-button#volume-button(data-i18n="[title]play.adjust_volume", title="Adjust volume")

View file

@ -18,7 +18,7 @@ block content
p(data-i18n="teachers.free_2")
h3.teachers-title(data-i18n="teachers.teacher_subs_title")
p
p
span(data-i18n="teachers.teacher_subs_1")
span.spr.spl
a(href='mailto:team@codecombat.com?subject=Free%20Teacher%20Subscription') team@codecombat.com
@ -29,31 +29,31 @@ block content
ul
li(data-i18n="teachers.sub_includes_2")
li(data-i18n="teachers.sub_includes_3")
li(data-i18n="teachers.sub_includes_7")
li(data-i18n="teachers.sub_includes_4")
li(data-i18n="teachers.sub_includes_5")
li(data-i18n="teachers.sub_includes_6")
li(data-i18n="teachers.sub_includes_7")
h3(data-i18n="teachers.who_for_title")
p(data-i18n="teachers.who_for_1")
p(data-i18n="teachers.who_for_2")
h3 How do I monitor student progress?
p
span.spr Student progress can be monitored by creating a
a(href='/clans') Clan
span.spl for your class.
p
span.spr To add a student, send them the invite link for your Clan, which is on the
a(href='/clans') Clans
span.spl page.
p After they join, you will see a summary of the student's progress on your Clan's page.
h4 Private Clans
p Private Clans provide increased privacy and detailed progress information for each student.
h3(data-i18n="teachers.monitor_progress_title")
p
span.spr To create a private Clan, check the 'Make clan private' checkbox when creating a
a(href='/clans') Clan
span= "."
span.spr(data-i18n="teachers.monitor_progress_1")
a(href='/clans', data-i18n="clans.clan")
span.spl(data-i18n="teachers.monitor_progress_2")
p
span.spr(data-i18n="teachers.monitor_progress_3")
a(href='/clans', data-i18n="clans.clans")
span.spl(data-i18n="teachers.monitor_progress_4")
p(data-i18n="teachers.monitor_progress_5")
h4(data-i18n="teachers.sub_includes_7") Private Clans
p(data-i18n="teachers.private_clans_1")
p
span.spr(data-i18n="teachers.private_clans_2")
a(href='/clans', data-i18n="clans.clan") Clan
span(data-i18n="teachers.private_clans_3")
h3(data-i18n="teachers.material_title")
if me.get('chinaVersion')
@ -115,9 +115,9 @@ block content
a(href='/account/subscription', data-i18n="teachers.how_much_2")
span.spr.spl(data-i18n="teachers.how_much_3")
p
span.spr We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact
span.spr(data-i18n="teachers.how_much_5")
a(href='mailto:team@codecombat.com') team@codecombat.com
span.spl for more details.
span.spl(data-i18n="teachers.how_much_6")
p(data-i18n="teachers.how_much_4")
h4
a(href='/account/subscription', data-i18n="subscribe.group_discounts")
@ -133,12 +133,12 @@ block content
td(data-i18n="subscribe.group_discounts_12th")
td(data-i18n="subscribe.group_discounts_40")
h3 Where can I find more information?
h3(data-i18n="teachers.more_info_title")
p
span Our
span(data-i18n="teachers.more_info_1")
span.spr.spl
a(href='http://discourse.codecombat.com/c/teachers') teachers forum
span.spr.spl is a good place to connect with fellow educators who are using CodeCombat.
a(href='http://discourse.codecombat.com/c/teachers', data-i18n="teachers.more_info_2")
span.spr.spl(data-i18n="teachers.more_info_3")
h3(data-i18n="teachers.sys_requirements_title")
p(data-i18n="teachers.sys_requirements_1")

View file

@ -59,16 +59,16 @@ block append content
.panel.panel-default
.panel-heading
h3.panel-title Clans
h3.panel-title(data-i18n="clans.clans") Clans
if (!clans)
.panel-body
p(data-i18n="common.loading")
else if (clans.length)
table.table
tr
th.col-xs-4 Name
th.col-xs-4 Chieftain
th.col-xs-4 Heroes
th.col-xs-4(data-i18n="clans.name") Name
th.col-xs-4(data-i18n="clans.chieftain") Chieftain
th.col-xs-4(data-i18n="play.heroes") Heroes
each clan in clans
tr
td
@ -81,7 +81,7 @@ block append content
td= clan.get('members').length
else
.panel-body
p Not a member of any clans yet.
p(data-i18n="user.not_member_of_clans") Not a member of any clans yet.
.panel.panel-default
.panel-heading