# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  The ASF licenses this file to You
# under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.  For additional information regarding
# copyright in this work, please see the NOTICE file in the top level
# directory of this distribution.
#
# To find unused strings, see <roller-trunk>/docs/examples/i18n/check-default-resource-file.py
# (Usage instructions given at the top of that script)
#
# When to use double-apostrophe for an apostrophe in resource strings?  If they're being rendered
# via Struts s:text or JSTL fmt:message *with* parameters -- see http://tinyurl.com/m5bqn2h


# -- Common terms used to reduce the number of strings that need translation.
generic.all=All
generic.none=None
generic.cancel=Cancel
generic.done=Done
generic.yes=Yes
generic.yesRemove=Yes Remove
generic.no=No
generic.name=Name
generic.description=Description
generic.action=Action
generic.save=Save
generic.rename=Rename
generic.edit=Edit
generic.delete=Delete
generic.tagline=Tagline
generic.error.check.logs=System error - check logs for more information.
generic.changes.saved=Changes saved
generic.toggle=Toggle
generic.success=Success
generic.looksGood=Looks good!
generic.poweredBy=Powered by Apache Roller

# ------------------------------------------------------------- BookmarkForm.jsp

bookmarkForm.add.title=Add New Bookmark
bookmarkForm.add.subtitle=Adding new bookmark in folder:
bookmarkForm.edit.title=Edit Bookmark
bookmarkForm.edit.subtitle=Editing bookmark in folder:
bookmarkForm.image=Image URL
bookmarkForm.rssUrl=Newsfeed URL
bookmarkForm.url=Bookmark URL
bookmarkForm.created=Bookmark "{0}" created
bookmarkForm.updated=Bookmark "{0}" updated
bookmarkForm.required=Name and Bookmark URL are required.
bookmarkForm.badUrls=These URLs are invalid:

bookmarkForm.requiredFields=Name and Bookmark URL are required.

# errors from validation
Bookmark.error.nameNull=Name is a required field
Bookmark.error.nameSize=Name cannot be more than 255 characters
Bookmark.error.descriptionSize=Description cannot be more than 255 characters
Bookmark.error.urlNull=Bookmark URL is a required field
Bookmark.error.urlBad=The URL you entered is not valid
Bookmark.error.imageBad=The image URL you entered is not valid
Bookmark.error.feedUrlBad=The feed URL you entered is not valid
bookmarkForm.error.duplicateName=Bookmark with that name already exists in folder


# ----------------------------------------------------------- BookmarksForm.jsp

bookmarksForm.root=root
bookmarksForm.rootTitle=Blogroll

bookmarksForm.subtitle=Manage blogrolls in weblog <span>{0}</span>

bookmarksForm.rootPrompt=This is your blog''s default blogroll. Most blog themes display these links (previously known as bookmarks) in the sidebar of the blog. You can also define new blogroll, but you will have to edit your theme templates if you wish to display them.
bookmarksForm.otherPrompt=This is a custom blogroll. If you wish to display these links on your blog you will have to edit your blog theme templates.

bookmarksForm.path=Blogroll
bookmarksForm.blogrollName=Blogroll name
bookmarksForm.switchTo=Switch to blogroll
bookmarksForm.deleteFolder=Delete current blogroll
bookmarksForm.newBlogroll=New blogroll...

bookmarksForm.addBookmark=Add blogroll link
bookmarksForm.addFolder=New blogroll
bookmarksForm.delete=Delete selected
bookmarksForm.delete.confirm=Confirm Selected Link Delete
bookmarksForm.delete.areYouSure=Are you sure you want to delete the selected blogroll links?
bookmarksForm.url=URL
bookmarksForm.feedurl=Newsfeed URL
bookmarksForm.folder=Blogroll
bookmarksForm.edit.tip=Click to modify this link
bookmarksForm.folder.edit.tip=Click to edit blogroll
bookmarksForm.move=Move selected to
bookmarksForm.move.confirm=Move selected link?
bookmarksForm.selectAllLabel=Select all links
bookmarksForm.selectOneLabel=Select blogroll named {0}
bookmarksForm.visitLink=Visit
bookmarksForm.visitLink.tip=Click to visit this site

bookmarksForm.error.move=Error performing move, parent to child moves not allowed
bookmarksForm.importBookmarks=Import Blogroll via OPML
bookmarksForm.noresults=There are currently no Blogroll links

bookmarksForm.addBlogroll.title=Add New Blogroll
bookmarksForm.editBlogroll.title=Edit Blogroll
bookmarksForm.blogroll.requiredFields=You must specify a blogroll name

blogrollDeleteOK.removeBlogroll=Confirm Blogroll Delete
blogrollDeleteOK.areYouSure=Are you sure you want to delete blogroll and all of its links?

# --------------------------------------------------------- Bookmarks import.jsp

bookmarksImport.title=Import OPML Bookmarks
bookmarksImport.subtitle=Import bookmarks in to weblog <span>{0}</span> via OPML
bookmarksImport.prompt=Upload a standard OPML file to your bookmark collection. \
The bookmarks will be imported into a new bookmark folder with the name \
imported-[timestamp]. You will then be able to edit them and move them to \
other bookmark folders if you wish.
bookmarksImport.imported=Imported OPML bookmarks into folder [{0}]
bookmarksImport.error=Error importing bookmarks: {0}
bookmarksImport.import=Import

# ----------------------------------------------------------------- cacheInfo.jsp

cacheInfo.title=Cache Information
cacheInfo.subtitle=Monitor cache statistics
cacheInfo.prompt=This page offers instrumentation data about what is happening \
in the system caches.
cacheInfo.clear=Clear

# -------------------------------------------------------------------- Calendars

calendar.summary=Blog Archive Calendar
calendar.prev=Prev
calendar.today=Today
calendar.next=Next
calendar.dateFormat=MMMM yyyy

# ------------------------------------------------------------- CategoryForm.jsp

categoryForm.edit.title=Edit Category
categoryForm.edit.subtitle=Editing category
categoryForm.add.title=Add Category
categoryForm.add.subtitle=Adding category
categoryForm.image=Image URL
categoryForm.created=Category  created
categoryForm.changesSaved=Category "{0}" updated
categoryForm.error.duplicateName=Category name already in use
categoryForm.removed=Category "{0}" deleted
categoryForm.requiredFields=Name is required.

# errors from validation
Category.error.nameNull=Name is a required field
Category.error.nameSize=Name cannot be more than 255 characters
Category.error.descriptionSize=Description cannot be more than 255 characters
Category.error.imageBad=The image URL you entered is not valid
categoriesForm.noresults=There are currently no categories


# ----------------------------------------------------------- CategoriesForm.jsp

categoriesForm.subtitle=Manage categories in weblog <span>{0}</span>
categoriesForm.root=root
categoriesForm.rootTitle=Categories
categoriesForm.rootPrompt=\
These are your top-level weblog categories. Roller requires at least one \
category to be defined. \
Categories are used to organize your weblog entries and your readers can \
choose to subscribe to separate feeds for each of your categories.
categoriesForm.addCategory=Add Category
categoriesForm.move=Move
categoriesForm.move.confirm=Move selected categories?
categoriesForm.remove=Remove
categoriesForm.imageUrl=Image URL
categoryForm.badURL=Image URL is invalid

# --------------------------------------------------------- CategoryDeleteOK.jsp

categoryDeleteOK.title=Delete Category
categoryDeleteOK.removeCategory=Delete Weblog Category
categoryDeleteOK.warningCatInUse=WARNING: This category is in use!
categoryDeleteOK.youMustMoveEntries=You must move the weblog entries in the \
category to another category, use the combo-box to select which category \
should receive the entries.</p>
categoryDeleteOK.moveToWhere=Move the contents to another category:
categoryDeleteOK.noEntriesInCat=There are no weblog entries in this category, \
OK to delete.
categoryDeleteOK.areYouSure=Are you sure you want to delete this weblog category?

# ----------------------------------------------------------------- comments.jsp

comments.title=Comment
comments.email=Email:
comments.header2=Comments:
comments.htmlenabled=Allowed
comments.disabled=Comments are closed for this entry.
comments.at=at

comments.mathAuthenticatorQuestion=Please answer this simple math question
# not translated
comments.ldapAuthenticatorUserName=Please provide your Active Directory Username.
comments.ldapAuthenticatorPassword=Please provide your Active Directory Password.
# end not translated!

error.commentAuthFailed=The response {0} is not correct.  Please try again.
error.commentPostFailedEmailAddress=The e-mail address is invalid.
error.commentPostFailedURL=The URL is invalid.

# -------------------------------------------------------- comment validators

comment.validator.excessLinksName=Excess Links Comment Validator
comment.validator.excessLinksMessage=Comment has more than {0} links

comment.validator.excessSizeName=Excess Size Comment Validator
comment.validator.excessSizeMessage=Comment has more than {0} characters

comment.validator.blacklistName=Blacklist Comment Validator
comment.validator.blacklistMessage=Comment contains blacklisted/ignored words

comment.validator.trackbackLinkbackName=Trackback Linkback Comment Validator
comment.validator.trackbackLinkbackMessage=Trackback from site/page that does not link to your weblog entry

comment.validator.akismetName=Akismet Comment Validator
comment.validator.akismetMessage=Akismet service (akismet.com) says comment is spam

# ---------------------------------------------------------- Comment management

commentManagement.title=Comment Management
commentManagement.subtitle=Manage comments across all weblogs in system
commentManagement.entry.subtitle=Manage comments for entry titled <span>{0}</span>
commentManagement.website.subtitle=Manage comments in weblog <span>{0}</span>

commentManagement.tip=You have comments. \
You can change approval, spam status and delete comments via the checkboxes below. \
If you make any changes, be sure to save them by clicking the \
<em>Save changes</em> at the bottom of the page.

commentManagement.globalTip=As a global administrator \
you can change spam status and delete comments via the checkboxes below. \
You cannot change pending and approved status here, so you won''t interfere \
with anybody''s comment approval workflow. If you make any changes, be sure to \
save them by clicking the <em>Save changes</em> at the bottom of the page.

commentManagement.nowShowing=Displaying <b>{0}</b> comments
commentManagement.noCommentsFound=No comments found

commentManagement.pending=Pending
commentManagement.spam=Spam

commentManagement.next=Next page
commentManagement.prev=Previous page
commentManagement.query=Filter
commentManagement.endDate=End date
commentManagement.startDate=Start date

commentManagement.bulkDeletePrompt1=Your query matched {0} comments, 
commentManagement.bulkDeletePrompt2=delete them all?
commentManagement.confirmBulkDelete=Are you sure you want to delete all {0} selected by your query?
commentManagement.lookupError=Error looking up comments
commentManagement.deleteSuccess=Successfully deleted {0} comments
commentManagement.deleteError=Bulk delete failed due to unexpected error

commentManagement.pendingStatus=Pending status
commentManagement.onlyPending=Pending only
commentManagement.onlyApproved=Approved only
commentManagement.onlyDisapproved=Disapproved only
commentManagement.onlySpam=Spam only

commentManagement.columnApproved=Approved
commentManagement.columnSpam=Spam
commentManagement.columnComment=Comment
commentManagement.update=Save changes
commentManagement.updateSuccess=Successfully updated comments
commentManagement.updateError=Error updating comments
commentManagement.searchString=Search string
commentManagement.sidebarTitle=Filter comments
commentManagement.sidebarDescription=Filter comments by search string, status, and/or date

commentManagement.commentBy=Posted by
commentManagement.commentByURL=Posted url
commentManagement.commentByBoth={0} (<a href="mailto:{1}">{2}</a>) from IP address {3}
commentManagement.commentByName={0} from IP address {1}
commentManagement.commentByIP=User from IP address {0}
commentManagement.postTime=Posted at
commentManagement.entryTitled=Regarding

commentManagement.select=Select
commentManagement.readmore=View Entire Comment

commentManagement.saveError=Error saving comment

commentManagement.date.toStringFormat={0,date,MM/dd/yy hh:mm a}

# -------------------------------------------------------------- CommentServlet

commentServlet.commentAccepted=Your comment has been accepted.
commentServlet.commentMarkedAsSpam=Your comment was marked as spam and will not be displayed.
commentServlet.submittedToModerator=Your comment has been submitted to the moderator for approval.
commentServlet.previewCommentOnly=This is a comment preview only

commentServlet.email.thereAreSystemMessages=Messages from the Roller system:
commentServlet.email.thereAreErrorMessages=This comment failed validation for these reasons:

# --------------------------------------------------------------- Configuration

configForm.title=Roller Configuration
configForm.subtitle=Change site-wide configuration settings.
configForm.prompt=<p>Make the changes you wish and then use the <b>Save</b> button below. \
Changes you make here apply to the entire site.<p> \
<p>Note that there is also a Roller configuration file that contains additional settings. \
Talk to your systems administrator or refer to the Roller documentation for more information.</p>

configForm.siteSettings=Site Settings
configForm.siteName=Site Name (for main page and RSS feed)
configForm.shortName=Short name (shown in site banner)
configForm.siteDescription=Site Description (for main page and RSS feed)
configForm.frontpageWeblogHandle=Weblog to serve as frontpage blog
configForm.frontpageWeblogAggregated=Enable aggregated site-wide frontpage
configForm.siteAdminEmail=Site Administrator''s email address
configForm.absoluteUrl=Absolute URL to site (if required)
configForm.suspendPingProcessing=Suspend all ping processing?
configForm.allowUserWeblogCreation=Allow users to create new weblogs?
configForm.none=None specified

configForm.userSettings=User Settings
configForm.requireEmailActivation=Require new users to activate accounts via email
configForm.allowNewUsers=Allow New Users?
configForm.registrationUrl=Registration URL override (optional)
configForm.editorPages=Editor Pages

configForm.webServicesSettings=Web Services Settings
configForm.enableAtomPub=Enable Atom Publishing Protocol
configForm.AtomPubAuth=AtomPub authentication (basic, oauth, or wsse)
configForm.enableXmlRpc=Enable Blogger / MetaWeblog API

configForm.weblogSettings=Weblog Rendering Settings
configForm.pageMaxEntries=Max number of entries to allow per page
configForm.newsfeedMaxEntries=Number of entries to provide in feeds
configForm.styledFeeds=Display styled feeds for browsers

configForm.commentSettings=Comment and Trackback Settings
configForm.enableComments=Allow weblog comments?
configForm.ignoreSpamComments=Don''t save comments thought to be spam
configForm.enableTrackbacks=Allow weblog trackbacks?
configForm.ignoreSpamTrackbacks=Don''t save trackbacks thought to be spam
configForm.commentHtmlAllowed=Allow html in comments?
configForm.commentPlugins=Enabled comment formatting plugins
configForm.emailComments=Allow email notification of comments?
configForm.moderationRequired=Require comment moderation for all weblogs
configForm.enableTrackbackValidation=Enable verification of trackback links?

configForm.fileUploadSettings=File Upload Settings
configForm.enableFileUploads=Enable File Uploads?
configForm.allowedExtensions=Allowed Extensions
configForm.forbiddenExtensions=Forbidden Extensions
configForm.maxFileSize=Max File Size (MB)
configForm.maxDirSize=Max Directory Size (MB)

configForm.themeSettings=Theme Settings
configForm.newUserThemes=Themes Directory
configForm.allowCustomTheme=Allow Custom Themes?

configForm.webAnalytics=Web Analytics
configForm.defaultAnalyticsTrackingCode=Default tracking code
configForm.allowAnalyticsCodeOverride=Allow individual blogs to override?

# ---------------------------------------------------------------- Create weblog

createWebsite.title=Create Weblog

createWebsite.prompt=Use this form to create a new weblog for you or for \
you and a group of your friends.

createWebsite.tip.name=The name is the title of your weblog, it will be \
displayed at the top of your weblog page, and in the title field of your \
weblog''s feed. This field should not include HTML.
createWebsite.tip.description=The description of your weblog may be displayed \
at the top of your weblog (depending on the theme you choose), and it will be \
used in description or subtitle field of your feed. This field should not \
include HTML.
createWebsite.tip.handle=The handle is a short one-word name for your \
weblog. It will be used in your URL, so please limit it to simple ASCII \
alphanumeric characters (a-z, A-Z and 0-9), and do not use HTML.
createWebsite.tip.email=Your email address or the email address of the person \
responsible for the weblog that you are creating. 
createWebsite.tip.timezone=The timezone to be used for entry and display \
of this weblog.
createWebsite.tip.locale=The default locale to be used for the display of this \
weblog when the browser does not specify a locale.
createWebsite.tip.theme=The theme to be used to display this weblog. Later, \
you can easily switch to another theme or edit the themes templates to \
customize it to your liking.

createWebsite.handle=Handle
createWebsite.emailAddress=Email Address
createWebsite.locale=Locale
createWebsite.timezone=Timezone
createWebsite.theme=Theme
createWebsite.weblogUrl=URL
createWebsite.button.save=Create Weblog
createWebsite.created=New weblog [{0}] has been successfully created.
createWebsite.oneBlogLimit=Sorry, only one weblog per user is allowed.
createWebsite.disabled=Sorry, the blog administrator has disabled creation of new blogs.

# errors from validation
CreateWeblog.error.handleNull=Handle is a required field
CreateWeblog.error.handleSize=Handle cannot be more than 255 characters
CreateWeblog.error.nameNull=Name is a required field
CreateWeblog.error.nameSize=Name cannot be more than 255 characters
CreateWeblog.error.descriptionSize=Description cannot be more than 255 characters
CreateWeblog.error.emailAddressNull=Email address is a required field
CreateWeblog.error.emailAddressSize=Email address cannot be more than 255 characters
CreateWeblog.error.emailAddressBad=The email address you entered is not properly formatted
CreateWeblog.error.localeNull=Locale is a required field
CreateWeblog.error.localeSize=Locale cannot be more than 8 characters
CreateWeblog.error.timeZoneNull=Time Zone is a required field
CreateWeblog.error.timeZoneSize=Time Zone cannot be more than 64 characters

createWeblog.error.invalidHandle=The handle you specified is not valid
createWeblog.error.handleExists=A weblog with that handle already exists

# --------------------------------------------------------------- Entry editors

editor.text.name=Plain HTML
editor.summernote.name=Rich Text Editor (Summernote)

# --------------------------------------------------------------- Comment emails

email.comment.wrote=wrote
email.comment.anonymous=An anonymous user wrote
email.comment.respond=Respond to this comment at
email.comment.management.link=Link to comment management page
email.comment.commenter.email=Commenter's email address
email.comment.title=Comment
email.comment.moderate.title=Pending Blog Comment
email.comment.commentApproved=Comment Approved

#---------------------------------------------------------------- Error messages 

error.untranslated={0}

error.add.user.userNameInUse=Username already in use.
error.add.user.openIdInUse=Open ID already in use with another account.
error.add.user.missingUserName=You must specify a username.
error.add.user.badUserName=Invalid user name (must be alpha-numerics only).
error.add.user.missingPassword=You must specify a password.
error.upload.dirmax=You cannot exceed the maximum directory size of {0} MB.
error.upload.disabled=File Upload has been turned off
error.upload.file=No file selected
error.upload.filemax=File <b>{0}</b> larger than maximum <b>{1}</b> MB allowed
error.upload.forbiddenFile=File <b>{0}</b> content-type <b>{1}</b> not allowed
error.general=ERROR: Unexpected Exception [{0}] has been logged.
error.password.mismatch=Wrong username and password combination
error.unmatched.openid=Unknown or invalid OpenID URL

error.trackback=Error sending trackback. Possible cause: incorrect \
trackback URL. {0}
error.trackbackNotAllowed=Error sending trackback. The site administrator \
does not permit sending tracbacks to the URL you specified.

error.title.403=Access Denied
error.text.403=You do not have the privileges necessary to access the requested page.

error.title.404=Sorry! We couldn't find your document
error.text.404=The file that you requested could not be found on this server. 


error.permissionDenied.title=Permission Denied
error.permissionDenied.prompt=Possible causes:
error.permissionDenied.reason0=You requested a weblog entry that you do not have \
permission to edit (perhaps one you've already submitted for review?).
error.permissionDenied.reason1=You tried to save an object from "stale" web page, \
left by an earlier login under a different user account.
error.permissionDenied.reason2=You logged in using incorrect capitalization of \
your username. To resolve this problem, logout and login again with your \
correct username.
error.permissionDenied.reason3=Your blog server's database connection is \
misconfigured. To resolve this problem, see your system administrator.

error.unexpected=Unexpected error. If this error occurs again, please contact the administrator.

# -------------------------------------------------------------------- error.jsp

errorPage.title=Unexpected Exception
errorPage.message=Roller has encountered and logged an unexpected exception.

# --------------------------------------------------------------- FolderForm.jsp

folderForm.add.title=Add Folder
folderForm.add.subtitle=Adding new bookmark folder

folderForm.edit.title=Edit Folder
folderForm.edit.subtitle=Editing bookmark folder [{0}]

folderForm.created=Folder created
folderForm.updated=Folder name updated

folderForm.error.duplicateName=The folder name {0} is already in use, please choose another name

# errors from validation
Folder.error.nameNull=Name is a required field
Folder.error.nameSize=Name cannot be more than 255 characters


# ---------------------------------------------------------------------- Footer

footer.productName=Powered by <a href="http://roller.apache.org">Apache Roller Weblogger</a> Version {0} ({1})

# ------------------------------------------------------ index / setup page

index.heading=Welcome to Roller!
index.prompt=Follow these steps to finalize your Roller installation:

index.createUser=Create a user
index.createUserDone=DONE: this site has {0} user(s)
index.createUserHelp=\
Before you can start to use Roller, you need to create a user so you \
can login, manage Roller and start blogging. Note that the first user \
you create will be given the <i>Global Admin</i> rights necessary to \
manage Roller, manage Roller users and designate other Global Admins.
index.createUserBy=Create your first user via the 
index.createUserPage=New User Registration Page

index.createWeblog=Create a weblog
index.createWeblogDone=DONE: this site has {0} weblog(s)
index.createWeblogHelp=\
Before you can start blogging, you need to create at least one weblog. \
Just so you know, you can create as many as you want. Each Roller user \
can have multiple weblogs and each Roller weblog can have multiple \
authors.
index.createWeblogBy=Create your first weblog via the 
index.createWeblogPage=New Weblog Creation Page
   
index.setFrontpage=Designate a frontpage weblog
index.setFrontpageHelp=\
You must specify a weblog to serve as the front page weblog, you can do this \
via the <b>Server Admin->Configuration</b> page or the form that will appear \
below once you have created at least one weblog.

frontpageConfig.frontpageBlogName=Name of weblog to serve as frontpage blog
frontpageConfig.frontpageAggregated=Enable aggregated site-wide frontpage
frontpageConfig.values.saved=Properties successfully saved
frontpageConfig.values.error=Error saving properties
frontpageConfig.weblogs.error=Unexpected error accessing Weblogs


# --------------------------------------------------------------- Invite member

inviteMember.title=Invite New Member

inviteMember.subtitle=Invite a new user to join this weblog
inviteMember.prompt=Invite a user to join this weblog by selecting his or \
her email address below, picking a permission for them and clicking the send \
invitation button. If the user is not shown in the list below, type the first \
couple of letters of the username or email address view matches.

inviteMember.userName=Username
inviteMember.administrator=Admin
inviteMember.author=Author
inviteMember.limited=Limited
inviteMember.permissions=Permissions

inviteMember.button.save=Send Invitation

inviteMember.error.userNotFound=User not found system
inviteMember.error.userAlreadyInvited=User already invited to this weblog
inviteMember.error.userAlreadyMember=User already a member of this weblog

inviteMember.userInvited=User successfully invited

inviteMember.notificationSubject=Roller: Invitation to join weblog "{0}" ({1})
inviteMember.notificationContent=You have been invited to join weblog "{0}" ({1}). \
Click the following link and login as user [{2}] to accept or decline this \
invitation <{3}>.

inviteMember.disabled=invitations disabled

# ------------------------------------------------------------------- Installer

installer.bannerTitleLeft=Apache Roller
installer.bannerTitleRight=Auto-Installer

# database error
installer.error.connection.pageTitle=Database connection error
installer.cannotConnectToDatabase=Cannot connect to database
installer.whatHappened=What happened?
installer.whatHappenedDatabaseConnectionError=\
A database error occurred, probably because your database connection is \
misconfigured. You will have to fix this problem and then restart or redeploy \
Roller before you can proceed. Here''s what happened when Roller \
tried to establish a connection:
installer.whyDidThatHappen=Why did that happen?
installer.aboutTheException=In case the clues above are not enough to help you \
figure out what is going wrong, here are some more details. The root cause of \
the problem is an exception of type
installer.heresTheStackTrace=\
To help you debug the problem, here is the stack trace for that exception:

# unknown error
installer.error.unknown.pageTitle=Unknown error
installer.unknownError=An unknown error has occurred
installer.whatHappenedUnknown=An unknown and unexpected error occured when \
Roller tried to check database status or bootstrap itself. Roller can''t \
determine what happened so you will have to look at your servers log files \
and diagnose the problem yourself. Follow the instructons on the Roller wiki \
and seek help from the <a href=\
"https://cwiki.apache.org/confluence/display/ROLLER/Roller+Mailing+Lists"> \
Roller user mailing list</a>.

# create tables
installer.database.creation.pageTitle=Database table creation
installer.noDatabaseTablesFound=No database tables found
installer.noDatabaseTablesExplanation=\
Roller is able to connect to your database of type [{0}], but found no tables. 
installer.createTables=Would you like Roller to create the tables for you?
installer.yesCreateTables=Yes - create tables now
installer.tablesCreated=Tables created successfully
installer.tablesCreatedExplanation=Database tables were created successfully \
as you can see below. 
installer.tryBootstrapping=Database tables are present and up-to-date. \
Click <a href="{0}">here</a> to complete the installation process and start \
using Roller.
installer.errorCreatingTables=Error creating tables
installer.errorCreatingTablesExplanation=Error creating tables, possibly due \
to an error in the database creation script or because you are using an \
unsupported database. You will have to fix this problem and then restart or \
redeploy Roller before you can proceed. Below are the success/error messages \
issued during the creation process:

# upgrade tables
installer.database.upgrade.pageTitle=Database table upgrade
installer.databaseUpgradeNeeded=Database tables need to be upgraded
installer.databaseUpgradeNeededExplanation=\
Roller is able to connect to your database of type [{0}] and found tables, \
but the tables need to be upgraded.
installer.upgradeTables=Would you like Roller to upgrade the tables for you?
installer.yesUpgradeTables=Yes - upgrade tables now
installer.tablesUpgraded=Tables were upgraded successfully
installer.tablesUpgradedExplanation=\
Database tables were upgraded successfully as you can see below. 
installer.errorUpgradingTables=Error upgrading tables
installer.errorUpgradingTablesExplanation=Error upgrading tables, possibly due \
to an error in the database creation script or because you are using an \
unsupported database. You will have to fix this problem and then restart or \
redeploy Roller before you can proceed. Below are the success/error messages \
issued during the upgrade process:


# ----------------------------------------------------------------------- Login

loginPage.title=Welcome to Roller
loginPage.prompt=Please login
loginPage.openIdPrompt=Login with OpenID
loginPage.openIdHybridPrompt=Or with username
loginPage.userName=Username
loginPage.password=Password
loginPage.openID=OpenID username
loginPage.loginOpenID=Login
loginPage.rememberMe=Remember Me (up to two weeks)
loginPage.login=Login
loginPage.reset=Reset

# -------------------------------------------------------------- Bookmark Macro

macro.bookmark.urlFeed=URL of site''s RSS feed

# --------------------------------------------------------- Search Results Macro

macro.searchresults.incategory=- All Categories -

error.searchProblem=There was a problem with your search.

# ----------------------------------------------------------------- Weblog Macro
# These are macros commonly used within themes

macro.weblog.comments=Comments
macro.weblog.comment=Comment
macro.weblog.comment.unknown=Unknown
macro.weblog.datepattern=MMMMM dd, yyyy 'at' hh:mm aa z
macro.weblog.date.toStringFormat=EEEE MMMM dd, yyyy
macro.weblog.datetime.toStringFormat=hh:mma MMM dd, yyyy
macro.weblog.time.toStringFormat=hh:mma
macro.weblog.preview=Comment Preview
macro.weblog.commentpermalink.title=comment permalink
# below used by some themes in Roller-extras
macro.weblog.daypermalink.title=Permanent link to this day's entries
macro.weblog.readMore=Read More
macro.weblog.readMoreLink=[<a class="readmore" href="{0}">Read More</a>]

macro.weblog.postedby=Posted by
macro.weblog.on=on
macro.weblog.name=Name:
macro.weblog.email=E-Mail:
macro.weblog.url=URL:
macro.weblog.rememberinfo=Remember Information?
macro.weblog.yourcomment=Your Comment:
macro.weblog.htmlsyntax=HTML Syntax:
macro.weblog.htmldisabled=NOT allowed
macro.weblog.htmlenabled=Allowed
macro.weblog.commentwarning=Please enter a comment.
macro.weblog.postcommentHeader=Post a Comment:
macro.weblog.postcomment=Post Comment
macro.weblog.post=Post
macro.weblog.postpreview=Preview
macro.weblog.searchalert=Please enter a search term to continue.
macro.weblog.searchbutton=Search
macro.weblog.searchhits=Entries found for "{0}": <strong>{1}</strong>
macro.weblog.searchgoogle=<em>You can also \
<a href="http://google.com/search?q={0}%20site:{1}/{3}" \
class="google">try this same search</a> on Google.</em>
macro.weblog.notifyMeOfComments=Notify me by email of new comments
macro.weblog.noEntriesForCategory=No entries found for specified category

# -------------------------------------------------------------------- Main page

mainPage.category=Category
mainPage.searchWeblogs=Search for blogs
mainPage.actions=Actions
mainPage.loggedInAs=Logged in as
mainPage.currentWebsite=Editing weblog
mainPage.mainMenu=Main Menu

# ------------------------------------------------------------------ Maintenance

maintenance.title=Weblog Maintenance
maintenance.subtitle=Perfom weblog maintenance operations.
maintenance.prompt.index=Rebuild the search index for your Roller weblog.
maintenance.button.index=Rebuild Search Index
maintenance.prompt.flush=Flush the page cache for your Roller weblog.
maintenance.button.flush=Flush Cache
maintenance.message.indexed=Successfully scheduled search index rebuild for your \
Roller weblog
maintenance.message.indexed.failure=Error rebuilding search index - check system logs
maintenance.message.flushed=Successfully flushed the page cache of your \
Roller weblog
maintenance.prompt.reset=Reset the hit count for your Roller weblog.
maintenance.button.reset=Reset Hit Count
maintenance.message.reset=Successfully reset the hit count of your Roller weblog 

# ----------------------------------------------------------- Media file management

mediaFileImageChooser.subtitle=Choose a Media File to be inserted
mediaFileImageChooser.pageTip=Select an image and it will be included as a thumbnail, or select a file and it will be included as a link.

# -- Media File Add

mediaFileAdd.title=Add new media file
mediaFileAdd.pageTip=Use this page to upload up to five new media files. The name, description, tags and other properties will be applied to all files uploaded.
mediaFileAdd.fileLocation=Choose media files to upload
mediaFileAdd.tags=Tags (space separated)
mediaFileAdd.copyright=Copyright statement
mediaFileAdd.directory=Folder
mediaFileAdd.includeGallery=Include in Gallery?
mediaFileAdd.upload=Upload
mediaFileAdd.multipleNames=(Multiple names)
mediaFileAdd.errorUploading=Error uploading file {0}

#--- Media File Success

mediaFileAddSuccess.title=Media File Upload Complete
mediaFileSuccess.subtitle=Your upload was successful
mediaFileSuccess.pageTip=If you wish, you can now create a new weblog post including images or files you just uploaded.

mediaFileSuccess.name=Name:
mediaFileSuccess.size=Size:
mediaFileSuccess.type=Type:
mediaFileSuccess.link=Link:
mediaFileSuccess.pixels=pixels
mediaFileSuccess.bytes=bytes

mediaFileSuccess.selectImagesTitle=Select images
mediaFileSuccess.selectImages=Select the the images that you would like to include in your new weblog entry as thumbnails.

mediaFileSuccess.selectEnclosureTitle=Select file enclosure
mediaFileSuccess.selectEnclosure=You can select one file to be included in the new weblog entry as an RSS/Atom enclosure.
mediaFileSuccess.noEnclosure=No enclosure

mediaFileSuccess.createPost=Create new weblog post
mediaFileSuccess.uploadMore=Upload more...

# -- Media File Edit

mediaFileEdit.subtitle=Editing media file 
mediaFileEdit.pagetip=You may edit the information stored about this media \
file. Each file must have a name, but all other fields are optional.
mediaFileEdit.tags=Tags (space separated)
mediaFileEdit.copyright=Copyright statement
mediaFileEdit.directory=Folder
mediaFileEdit.fileInfo=File info
mediaFileEdit.fileTypeSize=<b>Type</b>: {0} <b>Size</b>: {1} bytes
mediaFileEdit.fileDimensions=<b>Image</b>: {0} X {1} pixels
mediaFileEdit.includeGallery=Include in Gallery
mediaFileEdit.includeGalleryHelp=Check this box if you would like this media \
file included in the new media file RSS and Atom feeds for your weblog.
mediaFileEdit.updateFileContents=Update File Contents
mediaFileEdit.clickToView=Click to view in new window
mediaFileEdit.permalink=Link (URL)
mediaFileEdit.linkTitle=Link to Media File, opens in new window
mediaFileEdit.includesEnclosure=This weblog entry includes the following media file enclosure:

mediaFileEdit.popupTitle=Media File Editor

# -- Media File View

mediaFileView.title=Media Files
mediaFileView.subtitle=Media Files in weblog <span>{0}</span>
mediaFileView.rootPageTip=\
This page shows the media files that you have uploaded as well as files \
copied in when you chose to customize a theme. You can use folders \
to organize your files, and you do not have to worry about "breaking \
URLs" when you move or rename files.
mediaFileView.dirPageTip=This is a media file subfolder.

mediaFileView.viewFolder=Folder

mediaFileView.sortBy=Sort by

mediaFileView.deleteSelected=Delete selected
mediaFileView.moveSelected=Move selected to:
mediaFileView.deleteFolder=Delete folder

mediaFileView.gt=>
mediaFileView.ge=>\=
mediaFileView.eq=\=
mediaFileView.le=<\=
mediaFileView.lt=<
mediaFileView.any=Any
mediaFileView.image=Image
mediaFileView.video=Video
mediaFileView.audio=Audio
mediaFileView.others=Others
mediaFileView.kb=KB
mediaFileView.mb=MB
mediaFileView.bytes=Bytes
mediaFileView.date=Date
mediaFileView.type=Type
mediaFileView.size=Size
mediaFileView.tags=Tags
mediaFileView.addDirectory=Add New Folder
mediaFileView.directoryName=Name:
mediaFileView.create=Create
mediaFileView.search=Search Media Files
mediaFileView.searchTitle=Search Results
mediaFileView.matchingResults=Found <b>{0}</b> matching results.
mediaFileView.noResults=No matching results found. Try widening your search.
mediaFileView.searchInfo=You searched for all media files matching the following criteria:
mediaFileView.filesNamed=Files named like <b>{0}</b>
mediaFileView.filesOfSize=Files of <b>size {0} {1} {2}</b>
mediaFileView.filesOfType=Files of type <b>{0}</b>
mediaFileView.filesTagged=Files with tags <b>{0}</b>
mediaFileView.noFiles=No files in this folder.
mediaFileView.folderName=Folder
mediaFileView.reset=Reset


#--- Media File Sidebar

mediaFileSidebar.actions=Actions
mediaFileSidebar.add=Add Media File

mediaFile.delete.confirm=Delete selected media files?
mediaFile.move.confirm=Move selected media files?
mediaFile.directoryCreate.success=New folder [{0}] successfully created.
mediaFile.directoryCreate.error.exists=New folder [{0}] already exists.  Please choose another name.
mediaFile.includeInGallery.success=Media file(s) successfully included in gallery.
mediaFile.includeInGallery.error=Error including media file {0} in gallery.
mediaFile.delete.success=Media file(s) successfully deleted.
mediaFile.deleteFolder.success=Media folder successfully deleted.
mediaFile.deleteFolder.confirm=Delete entire folder including all its media files?
mediaFile.delete.error=Error deleting media file {0}.
mediaFile.move.success=Media file(s) successfully moved.
mediaFile.move.errors=Error moving media files.
mediaFile.update.success=Media file successfully updated.

# errors from validation
MediaFile.error.nameNull=Name is a required field
MediaFile.error.nameSize=Name cannot be more than 255 characters
MediaFile.error.descriptionSize=Description cannot be more than 255 characters
MediaFile.error.copyrightTextSize=Copyright text cannot be more than 1023 characters
MediaFile.error.duplicateName=The file name {0} is already in use, you will need to choose another
MediaFile.error.search.empty=Please enter one or more criteria for search.
MediaFile.error.view=Error viewing directory.
mediaFile.error.view.dirNameEmpty=Directory name is empty.
mediaFile.error.view.dirNameInvalid=Directory name is invalid.

mediaFileEdit.originalPath=Original Path (alternative full path to file)

# ----------------------------------------------------------- Member permissions

memberPermissions.title=Weblog Member Permissions
memberPermissions.subtitle=Manage permissions of users in weblog <span>{0}</span>
memberPermissions.description=You can change permissions of weblog members, \
or remove them from the weblog entirely using the controls in the table below \
and clicking Save to commit your changes. Note that you are not allowed to \
demote or remove yourself from the weblog.

memberPermissions.userName=Username
memberPermissions.administrator=Admin
memberPermissions.author=Author
memberPermissions.limited=Limited
memberPermissions.remove=Remove

memberPermissions.noSelfModifications=Only another admin may alter your role.
memberPermissions.oneAdminRequired=Blog must have at least one admin.
memberPermissions.membersRemoved=Removed {0} user(s)
memberPermissions.membersChanged=Changed permission for {0} user(s)

memberPermissions.confirmRemove=Are you sure you want to remove members from this \
weblog?

memberPermissions.saveError=Error saving permissions

memberPermissions.inviteMember=Invite new member
memberPermissions.whyInvite=Invite somebody to help you write your weblog.

memberPermissions.permissionsHelpTitle=Permission Definitions
memberPermissions.permissionHelp=\
<b>Admin:</b> Full control including posting, user management, and weblog design.<br /> \
<b>Author:</b> Can post entries and moderate comments.<br /> \
<b>Limited:</b> No posting ability, can save draft entries and submit them for review.

# --------------------------------------------------------- New user registation

newUser.addNewUser=New User Registration

# --------------------------------------------------------------- Navigation Bar

navigationBar.newEntry=New Entry
navigationBar.settings=Settings
navigationBar.logout=Logout
navigationBar.login=Login
navigationBar.register=Register

# ----------------------------------------------------------------- OAuth pages

oauthKeys.title=OAuth Keys
oauthKeys.description=OAuth key and secret for your account <span>{0}</span>
oauthKeys.tip=You can authorize other sites and weblog client programs \
to access your account to create and edit weblog posts, but only if those \
sites and programs support OAuth. 
oauthKeys.consumerKey=Consumer Key
oauthKeys.consumerSecret=Consumer Secret
oauthKeys.userKeys=User Specific Secret and Key
oauthKeys.userKeysTip=These keys are tied to your user account, use them to \
authorize weblog clients that need access your account.
oauthKeys.siteWideKeys=Site Wide Secret and Key
oauthKeys.siteWideKeysTip=Since you are a site admin, you have access to the \
site wide key and secret. You can provide them to other sites that need to \
access accounts on this site. Users will still have to authenticate access \
by logging in to Roller.
oauthKeys.urls=OAuth URLs
oauthKeys.urlsTip=These are the URLs that your weblog client will need to \
perform OAuth authorization against Roller.
oauthKeys.requestTokenURL=Request Token URL
oauthKeys.authorizationURL=Authorization URL
oauthKeys.accessTokenURL=Access Token URL


oauthAuthorize.title=OAuth Authorization
oauthAuthorize.description=Authorize OAuth access to user account <span>{0}</span>?
oauthAuthorize.tip=A web site is asking to have access your account. Press \
the button below to allow access or simply close this window to deny it.


# -------------------------------------------------------------- Page management

pagesForm.title=Templates
pagesForm.subtitle=Manage templates that define weblog <b>{0}</b>
pagesForm.tip=You can edit the templates that define the layout, colors and \
fonts of your weblog. You can also create new templates to define entirely \
new pages. This is for advanced users only, if you''re not comfortable \
with HTML, you might want to leave your templates alone.  Please <b>backup</b> your templates!

pageForm.advancedSettings=Advanced Settings
pagesForm.action=Action
pagesForm.remove=Remove
pagesForm.required=(required)
pagesForm.addNewPage=Add a new template
pagesForm.add=Add
pagesForm.deleteselected=Delete Selected
pagesForm.themesReminder=<b>Reminder:</b> You are currently using the {0} shared \
theme, so some template edits may not effect how your blog looks.
editPages.title.removeOK=Confirm remove of template
editPages.remove.notFound=Template id {0} was not found
editPages.remove.requiredTemplate=You cannot remove a required template
editPages.remove.error=Error removing template

pagesForm.error.alreadyExists=The template {0} already exists.

# -------------------------------------------------------------------- Page edit

pageForm.action=Edit Template
pageForm.subtitle=Edit template <span>{0}</span> in weblog <span>{1}</span>
pageForm.tip=You can edit this template to change what it generates. \
Refer the the Roller Template Guide for information about the objects \
and code you are allowed to use in a template. This is for advanced \
users only, if you''re not comfortable with HTML, you might want to leave \
your templates alone.
pageForm.tip.required=You can edit this template to change what it generates.\
Refer the the Roller Template Guide for information about the objects \
and code you are allowed to use in a template. This is for advanced \
users only, if you''re not comfortable with HTML, you might want to leave \
your templates alone. NOTE: this is a required weblog template, you cannot \
change the name, link or description.
pageForm.link=Link (path)
pageForm.resultingUrlWillBe=Resulting URL will be: 
pageForm.noUrl=No link! Will be unable to access this new page via the web
pageForm.hidden=Hidden
pageForm.hidden.tip=Hidden pages cannot be accessed via URL
pageForm.navbar=Include in page menu 
pageForm.navbar.tip=Include in menu produced by <pre>showPageMenu()</pre> macro 
pageForm.template=Template
pageForm.newTemplateContent=<html><body></body></html>
pageForm.save.success=Template updated successfully.
pageForm.launch=launch
pageForm.useAutoContentType=Automatically set content type
pageForm.useManualContentType=Use manually specified content-type
pageForm.notemplates=No templates defined. Select action ''weblog'' to create from \
scratch or a predefined theme from the Theme tab.
pageForm.templateLanguage=Template Language
pageForm.outputContentType=Content-Type

pageRemove.confirm=Are you sure you want to remove this template: 

# errors from validation
Template.error.nameNull=Name is a required field
Template.error.nameSize=Name cannot be more than 255 characters
Template.error.linkSize=Link cannot be more than 255 characters
Template.error.descriptionSize=Description cannot be more than 255 characters
Template.error.actionNull=The Action is a required field

# ---------------------------------------------------- Ping Target Admin/Editing



commonPingTargets.subtitle=Ping target management
commonPingTargets.commonPingTargets=Weblog Ping Targets
commonPingTargets.explanation=These target sites are available to all weblogs \
for weblog update pings.
commonPingTargets.error.loading=Error loading common ping targets
commonPingTargets.error.saving=Error saving common ping targets
commonPingTargets.error.enabling=Error enabling ping target
commonPingTargets.error.disabling=Error disabling ping target

pings.title=Configure Automatic Weblog Pings
pings.subtitle=Setup automatic pings for weblog <span>{0}</span>
pings.explanation=Pings allow you to notify sites that your weblog has changed \
so that the sites can read your feed to retrieve updates. \
You can enable automatic pings for sites that you wish to notify whenever \
your weblog changes. You can also trigger pings manually \
to specific sites from this page.  <strong>Note:</strong> Normally, you are \
expected to register your weblog with a site before starting \
to send that site pings.
pings.commonPingTargets=Common Ping Targets
pings.commonPingTargetsExplanation=These ping targets have been configured by the \
site administrator for use by all users. \
You can send pings to any of these well-known sites.

ping.successful=The ping was successful.
ping.transmittedButError=The ping was transmitted but the server \
responded with the following error message.
ping.transmissionFailed=The ping transmission failed. Check to make sure the \
ping target URL is correct.
ping.unknownHost=The hostname in the ping target URL is unknown.
ping.networkConnectionFailed=There were network connection problems reaching the \
ping target site.
ping.pingProcessingIsSuspended=Ping processing has been suspended temporarily by \
a site administrator.

pingTarget.addTarget=Add Ping Target
pingTarget.editTarget=Edit Ping Target

pingTargetEdit.subtitle=Edit ping target
pingTargetAdd.subtitle=Add ping target

pingTarget.pingUrl=Ping URL
pingTarget.autoEnabled=Auto Ping?
pingTarget.remove=Remove
pingTarget.confirmRemoveTitle=Remove Ping Target Confirmation
pingTarget.confirmCommonRemove=Removing this target will also remove all user''s \
automatic ping configurations that use this target.  Are you sure?
pingTarget.enable=Enable
pingTarget.enabled=ON
pingTarget.disable=Disable
pingTarget.disabled=OFF
pingTarget.auto=Automatic
pingTarget.manual=Manual
pingTarget.sendPingNow=Send Ping Now
pingTarget.updated=Ping target "{0}" updated
pingTarget.created=Ping target "{0}" created
pingTarget.deleted=Ping target "{0}" deleted

pingTarget.nameNotUnique=Target name already exists, please choose another.
pingTarget.nameMissing=Name is required
pingTarget.pingUrlMissing=Ping URL is required
pingTarget.malformedUrl=The URL is not properly formed.
pingTarget.unknownHost=The hostname in this URL doesn''t seem to exist.
pingTarget.notFound=Ping target id {0} was not found

# --------------------------------------------------------------- Planet Roller: config

planetConfig.title=Planet Configuration
planetConfig.subtitle=Configure Roller\'s built-in RSS/Atom feed aggregator.
planetConfig.prompt=Roller's Planet feature gives you a way to aggregate all of the weblogs on your site along with feeds from other sites. On this page you can set title, description and email addresses that are to be displayed in the RSS or Atom feeds for your aggregation, and to be used in weblog templates that display your site. You can also configure a proxy if you Roller site requires one.

ConfigForm.siteSettings=Planet Settings
ConfigForm.title=Planet title
ConfigForm.description=Planet description
ConfigForm.adminName=Name of Planet administrator
ConfigForm.adminEmail=Email of Planet administrator
ConfigForm.absoluteUrl=Absolute URL to Planet page
ConfigForm.proxyHost=Proxy host for feed fetcher
ConfigForm.proxyPort=Proxy port for feed fetcher

ConfigForm.message.saveSucceeded=Saved Planet configuration
ConfigForm.error.saveFailed=Error saving Planet configuration

ConfigForm.invalidBooleanProperty=Property {0} must be a boolean: {1}
ConfigForm.invalidIntegerProperty=Property {0} must be an integer: {1}
ConfigForm.invalidFloatProperty=Property {0} must be a float: {1}
ConfigForm.invalidProperty=Property {0} is null

# ----------------------------------------------------- Planet Roller: group subscriptions

planetGroupSubs.default.title=Default Planet Group Subscriptions
planetGroupSubs.default.subtitle=Manage feed subscriptions for Roller's Default Planet Group
planetGroupSubs.default.desc=By default, Roller's Planet feature includes all weblogs on this Roller site in the aggregation. On this page you can add RSS and Atom feeds from other sites to this aggregation.

planetGroupSubs.custom.title=Custom Planet Group {0}
planetGroupSubs.custom.title.new=New Custom Planet Group
planetGroupSubs.custom.subtitle=Manage feed subscriptions for Custom Planet Group {0}
planetGroupSubs.custom.desc=This is a Custom Planet Group. Once you have added one or more RSS/Atom feeds here Roller will create an aggregated feed that containing entries from all of the feeds you add. You can display that aggregated feed in a blog template or access it via URL.

planetGroupSubs.custom.subtitle.new=Creating a new Custom Planet Group

planetGroupSubs.addFeed=Add a new RSS/Atom feed subscription
planetGroupSubs.creatingNewGroup=Before you can add subscriptions you must set a name and handle for your new Custom Planet Feed.
planetGroupSubs.editingExistingGroup=You can edit the name and handle for the group, but be aware that changing the handle will change the URL of the Planet Group.

planetGroupSubs.noneDefinedCustom=No feed subscriptions exist for this Custom Planet Group
planetGroupSubs.noneDefinedDefault=No additional feeds have been added to the Default Planet Group

planetGroupSubs.properties=Properties
planetGroupSubs.subscriptions=Subscriptions
planetGroupSubs.column.title=Title
planetGroupSubs.column.feedUrl=Feed URL
planetSubscription.feedUrl=Feed URL
planetSubscription.success.deleted=Subscription successfully deleted
planetSubscription.foundExisting=Found existing subscription [{0}], adding it instead
planetSubscription.success.saved=Saved subscription
planetSubscription.error=Must specify feed URL
planetSubscription.error.feedUrl=Feed URL is required
planetGroupSubs.error.duringSave=Unexpected error saving subscription: {0}
planetGroupSubs.error.fetchingFeed=Error fetching subscription: {0}
planetSubscription.error.deleting=Error deleting object

planetGroupSubs.badFeedURL=Invalid URL

planetGroupSubs.delete.confirm=Are you sure you want to delete this subscription?

# ------------------------------------------------------------ Planet Roller: groups

planetGroups.pagetitle=Custom Planet Groups
planetGroups.subtitle=Manage Custom Planet Groups, each available for use in weblog templates or as a feed.

planetGroups.prompt.add=To create a group, just enter a display name and a unique handle to be used in the feed URL then click Save.
planetGroups.prompt.edit=You are editing a custom aggregation group. Make your changes and then click Save. Or, use click Delete to remove it.

planetGroups.existingTitle=Existing Custom Aggregation Groups
planetGroups.existingPrompt=Select an existing custom aggregation group to edit.

planetGroups.noneDefined=No Custom Planet Groups defined.

planetGroups.column.title=Title
planetGroups.column.subscriptions=Subscriptions
planetGroups.column.handle=Handle

planetGroups.tip.title=Title of the group for display purposes.
planetGroups.tip.handle=Handle of this group. A simple string with no spaces to be used in the group's URL.
planetGroups.edit.tip=Edit this group

planetGroupSubs.subscriptionDesc=Add subscriptions to this group via the form on the right.

planetGroups.title=Title
planetGroups.handle=Handle

planetGroups.subscriptions.tip=Edit the subscriptions in this Custom Group

planetGroups.success.saved=Saved group
planetGroups.error.saved=Error saving planet group - duplicate?

planetGroups.error.title=Title is required
planetGroups.error.handle=Handle is required
planetGroups.error.nameReserved=Can''t use handle ''all''

planetGroups.delete.confirm=Are you sure you want to remove this group?

# ------------------------------------------------------------------ Statistics

statCount.weblogCommentCountType=Weblog comment count
statCount.weblogEntryCommentCountType=Weblog entry comment count
statCount.weblogDayHits=Today''s hit count

# ------------------------------------------------------------------ Stylesheet Editor

stylesheetEdit.title=Stylesheet

stylesheetEdit.subtitle=Edit weblog custom stylesheet

stylesheetEdit.copyStylesheet=Copy Stylesheet
stylesheetEdit.copyStylesheetTip=Copy Shared Theme's stylesheet into your weblog so you can edit it.

stylesheetEdit.standard=Standard

stylesheetEdit.mobile=Mobile

stylesheetEdit.tip=This form allows you to edit the customizable CSS Stylesheet for your theme.

stylesheetEdit.youCanCustomize=\
  <p><b>You can customize!</b> \
  The theme you are using provides a customizable stylesheet. If you make changes to it \
  here you will see those changes reflected in the theme pages that include the stylesheet.</p> \
  <p>You can also choose to <b>Revert</b> your copy of the stylesheet so that it matches the default one from \
  the theme. Or you can <b>Delete</b> your copy so that this weblog will use the Shared Theme's stylesheet instead.</p>

stylesheetEdit.sharedThemeWithStylesheet=\
 <p>The <b>Shared Theme</b> you are using provides a customizable stylesheet.</p> \
 <p>Would you like to copy that stylesheet into your weblog so you can edit it?</p>

stylesheetEdit.sharedThemeNoStylesheetSupport=\
  <p>The <b>Shared Theme</b> you are using does not provide a customizable stylesheet.</p> \
  <p>Choose another theme if you want to be able to customize your CSS.</p>

stylesheetEdit.customThemeNoStylesheet=\
  The <b>Custom Theme</b> you are using does not provide a customizable stylesheet, but since \
  you are using a Custom Theme, you can add any stylesheets and new templates that you wish.

stylesheetEdit.revert=Revert
stylesheetEdit.revertTip=Reverts this weblog's copy to match the Shared Theme's default stylesheet.

stylesheetEdit.delete=Delete
stylesheetEdit.deleteTip=Delete's this weblog's copy setup weblog to use the Shared Theme's default stylesheet.

stylesheetEdit.create.success=Custom stylesheet created successfully.

stylesheetEdit.save.success=Stylesheet updated successfully.

stylesheetEdit.revert.success=Stylesheet reverted successfully.

stylesheetEdit.default.success=Stylesheet deleted successfully. Your theme is now using the Shared Theme default.

stylesheetEdit.confirmDelete=Are you sure you want to delete your stylesheet and use the themes default instead?

stylesheetEdit.confirmRevert=Are you sure you want to revert your stylesheet to the theme default?

# ------------------------------------------------------------------ Tabbed Menu

tabbedmenu.weblog=Create &amp; Edit
tabbedmenu.weblog.newEntry=New Entry
tabbedmenu.weblog.archives=Entries
tabbedmenu.weblog.categories=Categories
tabbedmenu.bookmarks.allFolders=Blogroll

tabbedmenu.design=Design
tabbedmenu.design.stylesheet=Stylesheet

tabbedmenu.website=Preferences
tabbedmenu.website.settings=Settings
tabbedmenu.website.themes=Theme
tabbedmenu.website.pages=Templates
tabbedmenu.website.members=Members
tabbedmenu.website.maintenance=Maintenance
tabbedmenu.weblog.pingSetup=Pings

tabbedmenu.weblog.mediaFiles=Media Files

tabbedmenu.admin=Server Admin
tabbedmenu.admin.config=Configuration
tabbedmenu.admin.userAdmin=User Admin
tabbedmenu.admin.commentManagement=Comments
tabbedmenu.admin.pingTargets=Ping Targets
tabbedmenu.admin.cacheInfo=Cache Info

tabbedmenu.planet=Planet Admin
tabbedmenu.admin.planetConfig=Configuration
tabbedmenu.admin.planetGroupSubs=Subscriptions
tabbedmenu.admin.planetGroups=Custom Groups

# ---------------------------------------------------------------------- Search

searchPager.home=Main
searchPager.next=Next page
searchPager.prev=Previous page
searchSummary.text=Showing {0} - {1} of total {2} search results

# ----------------------------------------------------------------------- Theme

themeEditor.title=Weblog Theme
themeEditor.subtitle=Define the theme for weblog <span>{0}</span>.

themeEditor.sharedTheme=Shared Theme
themeEditor.sharedThemeDescription=This option is for users who don''t \
want to fuss with designing their weblog on their own and prefer the \
easier option of using a predefined theme.

themeEditor.customTheme=Custom Theme
themeEditor.customThemeDescription=This option is for the creative \
bloggers who want to be able to create a blog design of their own.  \
Beware though, managing a blog design of your own takes a bit of effort.

themeEditor.yourCurrentTheme=Your current theme is
themeEditor.yourCustomStylesheet=using <em style="color:red">custom</em> override stylesheet.
themeEditor.yourThemeStyleSheet=using the <em>Shared Theme</em> default stylesheet.

themeEditor.youAreUsingACustomTheme=This weblog is using a custom theme.

themeEditor.thisTheme=This theme:

themeEditor.proposedChangeToShared=You are proposing to switch from a Custom Theme to a new Shared Theme.

themeEditor.proposedSharedThemeChange=You are proposing to switch to a new Shared Theme.

themeEditor.proposedSharedChangeToCustom=You are proposing to switch from a Shared Theme to a Custom Theme.

themeEditor.selectTheme=Select a new shared theme for your blog:

themeEditor.preview=Preview Theme
themeEditor.save=Update Theme

themeEditor.previewDescription=Before you update your theme you can use <b>Preview Theme</b> \
  to launch a new browser window and see what your blog will look like with the new theme.

themeEditor.importWarning=WARNING: Updating your custom theme <b>will overwrite</b> \
  some of your existing templates.

themeEditor.importRequired=Since this is the first time using a  custom theme, \
  Roller will copy the templates from your existing Shared Theme so you can edit them.

themeEditor.importAndOverwriteTemplates=Import the Shared Theme selected above and overwrite \
  existing custom theme.

themeEditor.existingTemplatesWarning=<b>This blog already has a custom theme defined so you need to \
  make a choice</b>. Do you want to switch back to using that theme, or do you want to over write that \
  theme with the Shared Theme currently in use?
themeEditor.setTheme.success=Theme set to {0}
themeEditor.setCustomTheme.success=Shared theme {0} imported into custom templates
themeEditor.setCustomTheme.instructions=Use the Stylesheet and Templates tabs above to edit your custom theme.

# ---------------------------------------------------------------------- Uploads

uploadFiles.upload=Upload

uploadFiles.uploadedFiles=Uploaded file(s):
uploadFiles.uploadedFile={0}

uploadFiles.error.badPath=The path [{0}] is invalid.  Paths may not contain "/", "\\", or ".."
uploadFiles.error.upload=Upload failed for [{0}]

# ---------------------------------------------------------------- User settings

userSettings.username=Username
userSettings.screenname=Screen Name
userSettings.fullname=Full Name
userSettings.password=Password
userSettings.passwordConfirm=Password (Confirm)
userSettings.email=Email
userSettings.locale=Locale
userSettings.timeZone=Timezone
userSettings.openIdUrl=OpenID URL
userSettings.tip.username=Usernames can''t be changed.

# ----------------------------------------------------------------- Your profile (profile.jsp)

yourProfile.title=Your Profile
yourProfile.passwordsNotSame=Password and Password (confirm) do not match
yourProfile.requiredFields=Screen name, full name and email are required

# ------------------------------------------------------------------- User admin

userAdmin.title.searchUser=User Administration
userAdmin.subtitle.searchUser=Select user to administer
userAdmin.prompt.searchUser=Find user by typing first letters of username \
or password. Select user and click edit button to edit the user''s profile \
and the user''s weblogs.

userAdmin.title.editUser=Edit user profile
userAdmin.subtitle.editUser=Editing profile of user <span>{0}</span>

userAdmin.title.createNewUser=Create new user
userAdmin.subtitle.createNewUser=Creating user
userAdmin.addInstructions=All fields are required.

userAdmin.enabled=Enabled
userAdmin.title=User Administration
userAdmin.userAdmin=Administrator

userAdmin.subtitle.userCreation=New user creation
userAdmin.prompt.orYouCan=Or you can
userAdmin.prompt.createANewUser=create a new user

userAdmin.userWeblogs=User''s Weblogs
userAdmin.userMemberOf=User is a member of the following weblog(s)
userAdmin.userHasNoWeblogs=User is a member of no weblogs.
userAdmin.newEntry=New Entry
userAdmin.editEntries=Edit Entries
userAdmin.manage=Manage

userAdmin.noPasswordForOpenID=Leave password field(s) blank if providing an OpenID.
userAdmin.tip.screenName=User''s screen name (with no HTML).
userAdmin.tip.fullName=User''s full name (with no HTML).
userAdmin.tip.userName=A short one-word username for the user account. \
Please limit it to simple ASCII alphanumeric characters (a-z, A-Z and 0-9), \
and do not use HTML.
userAdmin.tip.openIdUrl=Open ID identifier (in the form of a URL).
userAdmin.tip.password=User''s password.  Fill in only to change it to what you enter.
userAdmin.tip.email=Valid email address needed for automated notification.
userAdmin.tip.enabled=Disabled users are unable to login to Roller.
userAdmin.tip.userAdmin=Check to give user Global Admin rights on this Roller instance.
userAdmin.tip.locale=User''s preferred locale.
userAdmin.tip.timeZone=User''s preferred timezone.


userAdmin.userSaved=User profile saved
userAdmin.cantChangeOwnRole=Cannot change your own role

userAdmin.error.userNotFound=Specified user not found

# --------------------------------------------------------------- User register

userRegister.prompt=Welcome! Before you can get started, you need to create a \
new user account. Please complete this form and click the button at the end \
to request your new account. <b>All fields are required</b>.

Register.disabled=The administrator of this site has disabled user registrations \
at this time. Please contact the system administrators if you think this is \
incorrect.

userRegister.heading.identification=How would you like to be identified?
userRegister.tip.identification=Enter your name(s) so you can be identified on \
this site and your email address so we can reach you for account activation.

userRegister.tip.userName=A short one-word username to uniquely identify \
yourself on the site. Please limit it to simple alphanumeric characters (a-z, \
A-Z and 0-9) and do not use HTML. You will <b>not</b> be able to change this \
later, but that''s OK because this string will not be publicly displayed.

userRegister.tip.screenName=Your desired screen name (with no HTML). This is \
is what will be displayed in your weblog and on weblog entries that you write.

userRegister.tip.fullName=Your full name (with no HTML), first and last. Some \
weblog themes will display this instead of (or in addition to) your screenname.

userRegister.tip.email=Please enter valid email address, the site administrator \
may disable your account if he/she cannot reach you via email.

userRegister.heading.authentication=How will you be authenticated?

userRegister.tip.openid.disabled=Enter a password to be used when you login \
and confirm that password by entering it a second time.

userRegister.tip.openid.hybrid=You can choose to login via username/password or \
<a href=\"http://openid.net\">OpenID</a>.  If you choose the latter, leave \
the password fields blank.

userRegister.tip.openid.only=This site uses only OpenID for logins, so please \
specify your OpenID identifier below. For more information about OpenID see \
<a href=\"http://openid.net\">http://openid.net</a>.

userRegister.tip.password=Your password.  
userSettings.tip.password=Your password. Fill-in only if you wish to change it.  
userRegister.tip.passwordConfirm=Confirm your password.
userRegister.tip.openIdUrl=Your OpenID identifier (in the form of a URL).

userRegister.heading.locale=What are your locale and timezone settings?

userRegister.tip.localeAndTimeZone=We have attempted to guess your preferred \
locale and timezone settings below. Please set them correctly as they will be \
used in the weblog entries you create.

userRegister.tip.timeZone=Your preferred timezone.
userRegister.tip.locale=Your preferred locale.

userRegister.heading.ready=Ready to roll?
userRegister.tip.ready=When you are, click the button below.

userRegister.button.save=Sign Up

userRegister.success.ready=Yes, form appears to be complete. Click the button below.
userRegister.error.mismatchedPasswords=Your passwords do not match!
userRegister.error.missingOpenID=Open ID URL must be provided.
userRegister.error.missingOpenIDOrPassword=Either an Open ID URL or a password must be provided.
userRegister.error.bothOpenIDAndPassword=Please supply just a password or an OpenID (not both).

# errors from validation
Register.error.screenNameNull=Screen Name is a required field
Register.error.screenNameSize=Screen Name cannot be more than 255 characters
Register.error.fullNameNull=Full name is a required field
Register.error.fullNameSize=Full name cannot be more than 255 characters
Register.error.emailAddressNull=Email address is a required field
Register.error.emailAddressSize=Email address cannot be more than 255 characters
Register.error.emailAddressBad=The email address you entered is not properly formatted
Register.error.localeNull=Locale is a required field
Register.error.localeSize=Locale cannot be more than 20 characters
Register.error.timeZoneNull=Time Zone is a required field
Register.error.timeZoneSize=Time Zone cannot be more than 20 characters


# ------------------------------------------------------------------ Weblog edit

weblogEdit.title.newEntry=New Entry
weblogEdit.subtitle.newEntry=Create a new entry in weblog <span>{0}</span>

weblogEdit.title.editEntry=Edit Entry
weblogEdit.subtitle.editEntry=Editing weblog entry in weblog <span>{0}</span>

weblogEntry.pendingEntrySubject=\
Roller: new post pending review in weblog "{0}" ({1})

weblogEntry.pendingEntryContent=User [{0}] has submitted a new weblog entry \
for your review. Please review this post and either publish it or save it as a \
draft so that user [{1}] may edit it again.\
\
Link to edit the pending post:\
<{2}>

weblogEntry.notFound=Cannot find requested weblog entry

weblogEdit.summary=Summary (optional)
weblogEdit.summary.tooltip=If provided, replaces above content on weblog home page \
with this summary and a link to the full blog entry.
weblogEdit.content=Content
weblogEdit.category=Category
weblogEdit.comments=Comments
weblogEdit.entryRemoved=Entry "{0}" deleted
weblogEdit.draft=Draft
weblogEdit.draftEntries=Recent Drafts
weblogEdit.deleteEntry=Delete Entry
weblogEdit.insertMediaFile=Insert Media File
weblogEdit.fullPreviewMode=Full Preview
weblogEdit.locale=Language
weblogEdit.pendingEntries=Pending Entries
weblogEdit.pending=Pending
weblogEdit.publishedEntries=Recent Entries
weblogEdit.post=Post to Weblog
weblogEdit.permaLink=Permalink
weblogEdit.published=Published
weblogEdit.pubTime=Publishing Time
weblogEdit.save=Save as Draft
weblogEdit.scheduled=Scheduled
weblogEdit.scheduledEntries=Scheduled Entries
weblogEdit.status=Status
weblogEdit.submitForReview=Submit for Review
weblogEdit.draftSaved=Draft saved
weblogEdit.publishedEntry=Blog entry published!
weblogEdit.scheduledEntry=Blog entry scheduled for publication on {0}
weblogEdit.submittedForReview=Entry submitted for review
weblogEdit.tags=Tags
weblogEdit.title=Title
weblogEdit.unsaved=Not saved
weblogEdit.updateTime=Last updated 

weblogEdit.allowComments=Allow comments
weblogEdit.commentDays=How long to allow comments
weblogEdit.commentsNotAllowed=Comments not allowed
weblogEdit.unlimitedCommentDays=Unlimited days
weblogEdit.days3=3 days
weblogEdit.days7=7 days
weblogEdit.days14=14 days
weblogEdit.days30=30 days
weblogEdit.days60=60 days
weblogEdit.days90=90 days

weblogEdit.pluginsToApply=Plugins To Apply
weblogEdit.miscSettings=Advanced Settings

weblogEdit.rightToLeft=Text reads right-to-left
weblogEdit.pinnedToMain=Pinned to main
weblogEdit.pinnedToMain.tooltip=Pin blog entry to top of front page weblog \
(if theme supports it).  Option provided only for global admins.
weblogEdit.searchDescription=Search Description
weblogEdit.searchDescription.tooltip=Short description of blog entry that gets \
placed in HTML header (if coded by your blog template) for SEO.
weblogEdit.trackback=Trackback
weblogEdit.sendTrackback=Send Trackback
weblogEdit.trackbackUrl=Trackback URL

weblogEdit.trackbackSuccess=Trackback succeeded.
weblogEdit.trackbackFailure=Trackback failed, remote server said "{0}"
weblogEdit.trackbackErrorTransport=Trackback failed, could not reach trackback URL.  Are you sure you put in the right URL?
weblogEdit.trackbackErrorResponse=Trackback failed, error in sending.  Response was {0} - {1}
weblogEdit.trackbackErrorParsing=Trackback failed, URL indicated success but response message was improperly formatted.  Response was: {0}
weblogEdit.trackbackError404=Trackback failed, could not reach trackback URL.  Are you sure you put in the right URL?

weblogEdit.hasComments=<a href="{0}">Comments [{1}]</a>

weblogEdit.enclosureURL=Enclosure URL
weblogEdit.enclosureURL.tooltip=Podcast or other multimedia URL to embed within the RSS & Atom feeds for this blog entry.
weblogEdit.enclosureType=Type
weblogEdit.enclosureLength=Length
weblogEdit.mediaCastFailedFetchingInfo=Unable to reach the enclosure. Check the hostname in the URL.
weblogEdit.mediaCastUrlMalformed=The enclosure URL was malformed.
weblogEdit.mediaCastResponseError=The enclosure server returned an error. Do you have the right URL?
weblogEdit.mediaCastLacksContentTypeOrLength=Unable to use enclosure URL. Server provided no content type or no length.
weblogEdit.mediaCastErrorRemoving=Error removing MediaCast from weblog entry


# errors from validation
Entry.error.titleNull=Title is a required field
Entry.error.titleSize=Title cannot be more than 255 characters
Entry.error.localeNull=Locale is a required field
Entry.error.categoryNull=Category is required field
Entry.error.textNull=Content is a required field


# -------------------------------------------------------- Weblog entries Pager 

weblogEntriesPager.latest.home=Main
weblogEntriesPager.latest.next=Next page
weblogEntriesPager.latest.prev=Previous page

weblogEntriesPager.single.home=Main
# argument ${0} is truncated title of weblog entry
weblogEntriesPager.single.next={0}
weblogEntriesPager.single.prev={0}

weblogEntriesPager.day.home=Main
# argument ${0} is date of next day
weblogEntriesPager.day.next=Next page of day ({0})
weblogEntriesPager.day.prev=Previous page of day ({0})
weblogEntriesPager.day.nextCollection=Next day ({0})
weblogEntriesPager.day.prevCollection=Previous day ({0})
weblogEntriesPager.day.dateFormat=MMM d, yyyy

weblogEntriesPager.month.home=Main
# argument ${0} is date of next month
weblogEntriesPager.month.next=Next page of month ({0})
weblogEntriesPager.month.prev=Previous page of month ({0})
weblogEntriesPager.month.nextCollection=Next month ({0})
weblogEntriesPager.month.prevCollection=Previous month ({0})
weblogEntriesPager.month.dateFormat=MMM yyyy

# ---------------------------------------------------------- Weblog Entry Remove 

weblogEntryRemove.removeWeblogEntry=Delete Weblog Entry
weblogEntryRemove.areYouSure=Are you sure you want to delete this Weblog Entry?
weblogEntryRemove.entryTitle=Entry Title
weblogEntryRemove.entryId=Entry ID

# --------------------------------------------------- Weblog Entry Export/Import

weblogEntryQuery.title=Blog Entries
weblogEntryQuery.subtitle=Find and edit entries in weblog <span>{0}</span>
weblogEntryQuery.tip=You can select an entry from the list below to edit \
or use the Filter entries control to look for entries in a specific category, \
date range or status.

weblogEntryQuery.sidebarTitle=Filter entries
weblogEntryQuery.sidebarDescription=\
Filter weblog entries by category, date, and/or status.

weblogEntryQuery.noneFound=No entries found that match filter criteria.

weblogEntryQuery.label.startDate=Start Date
weblogEntryQuery.label.endDate=End Date

weblogEntryQuery.label.category=Category
weblogEntryQuery.label.tags=Tags
weblogEntryQuery.label.text=Search string
weblogEntryQuery.label.status=Status
weblogEntryQuery.label.allEntries=All Entries
weblogEntryQuery.label.draftOnly=Draft Only
weblogEntryQuery.label.publishedOnly=Published Only
weblogEntryQuery.label.pendingOnly=Pending Only
weblogEntryQuery.label.scheduledOnly=Scheduled Only

weblogEntryQuery.view=View
weblogEntryQuery.category=Category
weblogEntryQuery.pubTime=Published
weblogEntryQuery.updateTime=Updated
weblogEntryQuery.pending=Pending
weblogEntryQuery.draft=Draft
weblogEntryQuery.scheduled=Scheduled

weblogEntryQuery.button.query=Filter

weblogEntryQuery.label.sortby=Sort by
weblogEntryQuery.label.pubTime=Publish time
weblogEntryQuery.label.updateTime=Update time
weblogEntryQuery.nowShowing=Displaying {0} weblog entries
weblogEntryQuery.prev=Previous page
weblogEntryQuery.next=Next page

weblogEntryQuery.date.toStringFormat={0,date,MM/dd/yy hh:mm a}

# ---------------------------------------------------------------------- Website

websiteSettings.title=Weblog Settings
websiteSettings.subtitle=Manage settings for weblog <span>{0}</span>
websiteSettings.tip=Change weblog title, description, comment and spam prevention settings.


# --- General settings

websiteSettings.generalSettings=General Settings
websiteSettings.websiteTitle=Title
websiteSettings.icon=Icon
websiteSettings.about=About your blog
websiteSettings.emailAddress=Email address of weblog owner
websiteSettings.editor=Weblog editor page to be used
websiteSettings.entryDisplayCount=Number of entries to display on weblog
websiteSettings.active=Weblog is active (and should be included in community listings)
websiteSettings.error.entryDisplayCount=You have chosen a value too high for ''number of entries to display''

# --- i18n settings

websiteSettings.languageSettings=Internationalization Settings
websiteSettings.enableMultiLang=I publish my weblog in multiple languages
websiteSettings.showAllLangs=Show my weblog entries from all languages on my homepage

# --- Comments

websiteSettings.commentSettings=Comments
websiteSettings.allowComments=Allow comments for your weblog?
websiteSettings.moderateComments=Moderate comments before posting
websiteSettings.emailComments=Email notification of posted comments
websiteSettings.commentsOffForInactiveWeblog=Turned comments off for inactive weblog

# --- Default comments settings

websiteSettings.defaultCommentSettings=Default comment settings
websiteSettings.defaultAllowComments=By default, allow comments for new entries
websiteSettings.defaultCommentDays=Default time to allow comments for new entries
websiteSettings.applyCommentDefaults=Apply comment defaults to existing entries (this time only)?

# --- Weblog API

websiteSettings.bloggerApi=Weblog Client API
websiteSettings.enableBloggerApi=Enable weblog client support?
websiteSettings.bloggerApiCategory=Category for posts received via clients

# --- Formatting

websiteSettings.formatting=Formatting

# --- Spam prevention

websiteSettings.spamPrevention=Spam Prevention
websiteSettings.ignoreUrls=List of words and regex expressions listed one per \
line to be added to the blacklist used to check comments, trackbacks and referrers.
websiteSettings.acceptedBlacklist=Accepted {0} string and {1} regex blacklist rules
websiteSettings.error.processingBlacklist=Error processing blacklist: {0}

# --- web analytics

websiteSettings.analyticsTrackingCode=Tracking code

# --- Buttons

websiteSettings.savedChanges=Saved changes to weblog settings
websiteSettings.button.update=Update Weblog Settings

# --- Remove weblog

websiteSettings.button.remove=Remove Weblog
websiteSettings.removeWebsiteHeading=Remove Weblog?
websiteSettings.removeWebsite=You are the last contributor to this weblog, \
would you like to remove it?
websiteSettings.removeWebsiteWarning=\
<b>WARNING</b>: removing a weblog will remove everything: all of the weblog \
entries,<br />comments, blogroll and settings. <b>Weblog removal is \
NOT REVERSIBLE</b>.

websiteRemove.title=Confirm Weblog Remove
websiteRemove.subtitle=Weblog removal is <b>NOT REVERSIBLE</b>
websiteRemove.youSure=Are you sure you want to remove the weblog <b style="color:red">{0}</b>?
websiteRemove.websiteId=Weblog ID
websiteRemove.websiteName=Weblog Name
websiteRemove.success=Successfully removed weblog [{0}]
websiteRemove.error=Error removing weblog [{0}]

websiteSettings.label1=Default Entry Formatters 
websiteSettings.label2=(applied in the listed order)

# errors from validation
WeblogConfig.error.nameNull=Name is a required field
WeblogConfig.error.nameSize=Name cannot be more than 255 characters
WeblogConfig.error.descriptionSize=Description cannot be more than 255 characters
WeblogConfig.error.analyticsCodeSize=Analytics tracking key(s) cannot be more than 1200 characters


# ------------------------------------------------------------- Welcome.jsp

welcome.title=Welcome to Roller
welcome.accountCreated=Your new user account has been created.
welcome.clickHere=Click here
welcome.toLoginAndPost=to login.

welcome.user.account.activated=Your user account is activated.
welcome.user.account.not.activated=In order to login to the system, you have to \
activate your user account by clicking the link that is sent to you via e-mail.

# ---------------------------------------------------------------- Your Weblogs

yourWebsites.title=Your Weblogs
yourWebsites.actions=Actions

yourWebsites.prompt.noBlog=You have a user account, but no weblog. \
Would you like to
yourWebsites.createOne=create one?

yourWebsites.prompt.hasBlog=Access your weblogs here or create a new one.

yourWebsites.accept=accept
yourWebsites.decline=decline

yourWebsites.resign=Resign
yourWebsites.youHave=You have
yourWebsites.permission=Permission
yourWebsites.confirmResignation=Are you sure you wish to resign from weblog [{0}]?
yourWebsites.weblog=Link

yourWebsites.newEntry=New&nbsp;Entry
yourWebsites.editEntries=Entries
yourWebsites.manageComments=Comments
yourWebsites.theme=Theme
yourWebsites.manage=Settings

yourWebsites.createWeblog=Create new weblog 
yourWebsites.createWeblog.desc=\
Feel like you''ve got more to say? Maybe another weblog is what you need. 

yourWebsites.editProfile=Your Profile
yourWebsites.editProfile.desc=Change user info, password, timezone

yourWebsites.oauthKeys=OAuth Credentials
yourWebsites.oauthKeys.desc=Enable other sites and programs to access your \
account remotely.

yourWebsites.globalAdmin=Server administration
yourWebsites.globalAdmin.desc=Make site-wide administration changes.

yourWebsites.planetAdmin=Planet administration
yourWebsites.planetAdmin.desc=\
Manage the planet aggregator. Add feeds, organize groups, set configs.


yourWebsites.invitations=Weblog Invitations
yourWebsites.invitationsPrompt=You have one or more invitations to accept or \
decline:
yourWebsites.youAreInvited=You are invited to join weblog [{0}] - 

yourWebsites.declined=You have declined an invitation to join weblog [{0}]
yourWebsites.resigned=You have resigned from weblog [{0}]
yourWebsites.permNotFound=Sorry, that invitation was just revoked.

yourWebsites.userCount=Members
yourWebsites.todaysHits=Today''s hits

# ---------------------------------------------------------------- Activating User Account with E-mail

createUser.add.success=User created

error.activate.user.missingActivationCode=Activation code is missing.
error.activate.user.invalidActivationCode=\
Invalid activation code. You must have already activated your account. \
If not, please contact your Roller administrator for assistance.

user.account.activation.mail.subject=Roller: Activation Code for your user account
user.account.activation.mail.content=\
<html><body style=\"background: white; color: black; font-size: 12px\"> \
<p>To activate your new Roller user account with username [{1}], please click the link below:</p> \
<p><a href=\"{2}\">{2}</a></p></body></html>
