diff --git a/projectlibre_build/build.properties b/projectlibre_build/build.properties index 1434506..c3722ce 100644 --- a/projectlibre_build/build.properties +++ b/projectlibre_build/build.properties @@ -27,19 +27,19 @@ macapp=ProjectLibre.app wixbuild=projectlibre_wix -version_name=1.9.2 -version=1.9.2 +version_name=1.9.3 +version=1.9.3 #windows -numericVersion3=1.9.2 +numericVersion3=1.9.3 #mac -numericVersion4=1.9.2.0 +numericVersion4=1.9.3.0 #Linux -rpm_version=1.9.2 +rpm_version=1.9.3 rpm_revision=1 -deb_version=1.9.2 +deb_version=1.9.3 deb_revision=1 #rpm_builds=redhat,suse,mageia diff --git a/projectlibre_build/src/projectlibre-1.9.1.tar.gz b/projectlibre_build/src/projectlibre-1.9.1.tar.gz new file mode 100644 index 0000000..18c74d7 Binary files /dev/null and b/projectlibre_build/src/projectlibre-1.9.1.tar.gz differ diff --git a/projectlibre_contrib/projectlibre-contrib.jar b/projectlibre_contrib/projectlibre-contrib.jar new file mode 100644 index 0000000..6d12cf4 Binary files /dev/null and b/projectlibre_contrib/projectlibre-contrib.jar differ diff --git a/projectlibre_contrib/projectlibre-reports.jar b/projectlibre_contrib/projectlibre-reports.jar new file mode 100644 index 0000000..91ec1e3 Binary files /dev/null and b/projectlibre_contrib/projectlibre-reports.jar differ diff --git a/projectlibre_contrib/projectlibre-script.jar b/projectlibre_contrib/projectlibre-script.jar new file mode 100644 index 0000000..d406c8e Binary files /dev/null and b/projectlibre_contrib/projectlibre-script.jar differ diff --git a/projectlibre_contrib/tmp/projectlibre-contrib-tmp.jar b/projectlibre_contrib/tmp/projectlibre-contrib-tmp.jar new file mode 100644 index 0000000..2042097 Binary files /dev/null and b/projectlibre_contrib/tmp/projectlibre-contrib-tmp.jar differ diff --git a/projectlibre_contrib/tmp/projectlibre-reports-tmp.jar b/projectlibre_contrib/tmp/projectlibre-reports-tmp.jar new file mode 100644 index 0000000..df22f58 Binary files /dev/null and b/projectlibre_contrib/tmp/projectlibre-reports-tmp.jar differ diff --git a/projectlibre_contrib/tmp/projectlibre-script-tmp.jar b/projectlibre_contrib/tmp/projectlibre-script-tmp.jar new file mode 100644 index 0000000..49d066d Binary files /dev/null and b/projectlibre_contrib/tmp/projectlibre-script-tmp.jar differ diff --git a/projectlibre_core/.classpath b/projectlibre_core/.classpath index f0a604c..3c4cb68 100644 --- a/projectlibre_core/.classpath +++ b/projectlibre_core/.classpath @@ -29,5 +29,6 @@ + diff --git a/projectlibre_core/.settings/org.eclipse.jdt.core.prefs b/projectlibre_core/.settings/org.eclipse.jdt.core.prefs index c537b63..657d9e4 100644 --- a/projectlibre_core/.settings/org.eclipse.jdt.core.prefs +++ b/projectlibre_core/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,13 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.6 diff --git a/projectlibre_core/src/com/projectlibre1/configuration/Settings.java b/projectlibre_core/src/com/projectlibre1/configuration/Settings.java index ca491f3..72789fb 100644 --- a/projectlibre_core/src/com/projectlibre1/configuration/Settings.java +++ b/projectlibre_core/src/com/projectlibre1/configuration/Settings.java @@ -95,4 +95,6 @@ public class Settings { public static boolean SHOW_HELP_LINKS = true; public static String VERSION_TYPE_STANDALONE="standalone"; public static String VERSION_TYPE_SERVER="server"; + + public static String LANGUAGES = "default"; //defaults are set in configuration.xml } diff --git a/projectlibre_core/src/com/projectlibre1/configuration/configuration.xml b/projectlibre_core/src/com/projectlibre1/configuration/configuration.xml index 11ed7d0..fa4155f 100644 --- a/projectlibre_core/src/com/projectlibre1/configuration/configuration.xml +++ b/projectlibre_core/src/com/projectlibre1/configuration/configuration.xml @@ -90,6 +90,13 @@ com.projectlibre1.util.SpecialDateFormat.DATE_FORMAT EEE MM/dd/yy H:mm + + + com.projectlibre1.configuration.Settings.LANGUAGES + + default;ar;cs;da;de;el;en;es;fa;fi;fr;gl;hi;it;ja;kh;km;ko;nl;pt;ru;sk;sv;ta;th;tr;uk;ur;vi;zh + + diff --git a/projectlibre_core/src/com/projectlibre1/preference/ConfigurationFile.java b/projectlibre_core/src/com/projectlibre1/preference/ConfigurationFile.java index 7d0c31c..a570eb7 100644 --- a/projectlibre_core/src/com/projectlibre1/preference/ConfigurationFile.java +++ b/projectlibre_core/src/com/projectlibre1/preference/ConfigurationFile.java @@ -57,9 +57,19 @@ package com.projectlibre1.preference; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; import java.util.Locale; import java.util.Properties; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; import java.util.StringTokenizer; +import java.util.prefs.Preferences; + +import com.projectlibre1.session.FileHelper; public class ConfigurationFile { @@ -86,6 +96,12 @@ public class ConfigurationFile { private static final String OPENPROJ_CONF_FILE="projectlibre.conf"; private static Properties confProps; public static String getProperty(String key){ + if ("locale".equals(key)) { + String locale=Preferences.userNodeForPackage(ConfigurationFile.class).get("locale","default"); + if (!"default".equals(locale)) { + return locale; + } + } if (confProps==null){ File confDir=getConfDir(); if (confDir==null) return null; @@ -106,32 +122,55 @@ public class ConfigurationFile { if (locale==null){ String l=getProperty("locale"); if (l==null) locale=Locale.getDefault(); - else{ - String language=null; - String country=null; - String variant=null; - StringTokenizer st=new StringTokenizer(l,"_-"); - if (!st.hasMoreTokens()) locale=Locale.getDefault(); - else{ - language=st.nextToken(); - if (!st.hasMoreTokens()) locale=new Locale(language); - else{ - country=st.nextToken(); - if (!st.hasMoreTokens()) locale=new Locale(language,country); - else{ - variant=st.nextToken(); - locale=new Locale(language,country,variant); - } - - } - - } - - } + else locale=getLocale(l); } return locale; } - + public static Locale getLocale(String code){ + Locale defaultLocale=Locale.getDefault(); + String language=null; + String country=null; + String variant=null; + StringTokenizer st=new StringTokenizer(code,"_-"); + if (!st.hasMoreTokens()) locale=defaultLocale; + else{ + language=st.nextToken(); + if (!st.hasMoreTokens()) locale=new Locale(language,defaultLocale.getCountry()); + else{ + country=st.nextToken(); + if (!st.hasMoreTokens()) locale=new Locale(language,country); + else{ + variant=st.nextToken(); + locale=new Locale(language,country,variant); + } + + } + + } + return locale; + } + public static String[] getLocaleCodes(String code){ + Locale defaultLocale=Locale.getDefault(); + String language=null; + String country=null; + String variant=null; + StringTokenizer st=new StringTokenizer(code,"_-"); + if (!st.hasMoreTokens()) locale=defaultLocale; + else{ + language=st.nextToken(); + if (!st.hasMoreTokens()) locale=new Locale(language,defaultLocale.getCountry()); + else{ + country=st.nextToken(); + if (!st.hasMoreTokens()) locale=new Locale(language,country); + else{ + variant=st.nextToken(); + } + + } + + } + return new String[] {language, country, variant}; + } private static final String OPENPROJ_RUN_CONF_FILE="run.conf"; private static Properties runProps; @@ -150,6 +189,65 @@ public class ConfigurationFile { } return runProps.getProperty(key); } + + public static File getGeneratedDirectory(String externalDirectory) { + File directory=new File(externalDirectory,"import"); + return directory.isDirectory()?directory:null; + + // File directory=null; +// Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class); +// if (pref.getBoolean("useExternalLocales",false)) { +// String dir=pref.get("externalLocalesDirectory",""); +// directory=new File(dir,"generated"); +// if (!directory.isDirectory()) +// return null; +// } +// return directory; + } + + public static File getExportDirectory(String externalDirectory) { + File directory=new File(externalDirectory,"export"); + return directory.isDirectory()?directory:null; + } + + + + public static ResourceBundle getDirectoryBundle(String name) { + File directory=null; + Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class); + if (pref.getBoolean("useExternalLocales",false)) { + String dir=pref.get("externalLocalesDirectory",""); + directory=new File(dir,"import"); + if (!directory.isDirectory()) + return null; + } +// if (directory==null) +// directory=getConfDir(); + + try { + URL[] urls={directory.toURI().toURL()}; + ClassLoader cl=new URLClassLoader(urls); + ResourceBundle rb=ResourceBundle.getBundle(name, Locale.getDefault(), cl); + return rb; + } catch (MalformedURLException e1) { + e1.printStackTrace(); + } + +// Locale locale=Locale.getDefault(); +// try { +//// FileReader in = new FileReader(dir+File.separator+"client_"+locale+".properties"); +// FileInputStream in = new FileInputStream(dir+File.separator+name+"_"+locale+".properties"); +// return new PropertyResourceBundle(in); +// } catch (FileNotFoundException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + + return null; + } } diff --git a/projectlibre_core/src/com/projectlibre1/strings/DirectoryClassLoader.java b/projectlibre_core/src/com/projectlibre1/strings/DirectoryClassLoader.java index c92b000..e0c7cdb 100644 --- a/projectlibre_core/src/com/projectlibre1/strings/DirectoryClassLoader.java +++ b/projectlibre_core/src/com/projectlibre1/strings/DirectoryClassLoader.java @@ -60,6 +60,7 @@ import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; +import java.util.Locale; import com.projectlibre1.preference.ConfigurationFile; @@ -82,13 +83,14 @@ public class DirectoryClassLoader extends ClassLoader{ protected Class findClass(String name) throws ClassNotFoundException{ if (directory==null) throw new ClassNotFoundException(name); try { - File file = new File(directory, name); + File file = new File(directory, name+".properties"); DataInputStream in = new DataInputStream(new FileInputStream(file)); byte b[] = new byte[(int)file.length()]; in.readFully(b); in.close(); return defineClass(name, b, 0, b.length); } catch (Exception e) { + e.printStackTrace(); throw new ClassNotFoundException(name); } @@ -96,7 +98,7 @@ public class DirectoryClassLoader extends ClassLoader{ public InputStream getResourceAsStream(String name) { //used by resourceBundle if (directory==null) return null; try { - File file = new File(directory, name); + File file = new File(directory, name+"_"+Locale.getDefault()+".properties"); DataInputStream in = new DataInputStream(new FileInputStream(file)); return in; } catch (Exception e) { diff --git a/projectlibre_core/src/com/projectlibre1/strings/Messages.java b/projectlibre_core/src/com/projectlibre1/strings/Messages.java index 5aeecb6..69c640b 100644 --- a/projectlibre_core/src/com/projectlibre1/strings/Messages.java +++ b/projectlibre_core/src/com/projectlibre1/strings/Messages.java @@ -56,11 +56,8 @@ package com.projectlibre1.strings; import java.text.MessageFormat; -import java.util.ArrayList; import java.util.Enumeration; import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; import java.util.Locale; import java.util.MissingResourceException; import java.util.Properties; @@ -68,8 +65,7 @@ import java.util.ResourceBundle; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.collections.CollectionUtils; - +import com.projectlibre1.preference.ConfigurationFile; import com.projectlibre1.util.ClassLoaderUtils; import com.projectlibre1.util.Environment; @@ -99,7 +95,6 @@ public class Messages { } static LinkedList bundles = null; - static DirectoryClassLoader directoryClassLoader=new DirectoryClassLoader(); static Lock lock=new ReentrantLock(); private static ResourceBundle[] bundleArray = null; @@ -114,30 +109,37 @@ public class Messages { if (bundles==null){ //if it hasn't been initialized by an other thread String bundleNames[] = getMetaString("ResourceBundles").split(";"); String directoryBundleNames[] = getMetaString("DirectoryResourceBundles").split(";"); - if (directoryClassLoader.isValid()){ - //foundBundles=new ArrayList(bundleNames.length+directoryBundleNames.length); - - for (int i =0; i < directoryBundleNames.length;i++) { - try { - ResourceBundle bundle=ResourceBundle.getBundle(directoryBundleNames[i],Locale.getDefault(),directoryClassLoader); - buns.add(bundle); - foundBundles.add("com.projectlibre1.strings."+directoryBundleNames[i]); - }catch (Exception e) {} + + for (int i =0; i < directoryBundleNames.length;i++) { + try { + ResourceBundle bundle=ConfigurationFile.getDirectoryBundle(directoryBundleNames[i]); + if (bundle==null) + continue; + buns.add(bundle); + foundBundles.add("com.projectlibre1.strings."+directoryBundleNames[i]); + }catch (Exception e) { + e.printStackTrace(); } - }else buns=new LinkedList(); + } + for (int i =bundleNames.length-1; i >=0; i--) { // reverse order since the later ones should be searched first String bname=bundleNames[i]; //find right position to insert in bundles - int j=0; + int pos=0; + boolean found=false; for (String b : foundBundles){ - if (bname.equals(b)) + if (bname.equals(b)) { + found=true; break; + } pos++; } - buns.add(pos,ResourceBundle.getBundle(bname,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader()/*Messages.class.getClassLoader()*/)); - foundBundles.add(pos,bname); + if (!found) { + buns.add(pos,ResourceBundle.getBundle(bname,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader()/*Messages.class.getClassLoader()*/)); + foundBundles.add(pos,bname); + } } } } finally { diff --git a/projectlibre_core/src/com/projectlibre1/strings/client.properties b/projectlibre_core/src/com/projectlibre1/strings/client.properties index 4482e3b..29e278d 100644 --- a/projectlibre_core/src/com/projectlibre1/strings/client.properties +++ b/projectlibre_core/src/com/projectlibre1/strings/client.properties @@ -1229,3 +1229,23 @@ T_VIEW=View Message.saveError=An error occured while saving. Message.saveErrorTmpFile=An error occured while saving. The new file has been saved as: + + +Message.localeChange=Locale change will take effect at restart +Message.badLocaleDirectory=Locale directory is invalid +Text.Language=Language: +Text.Locales=Locales: +Text.Country=Country: +Text.DefaultLocale=default +Text.ExternalLocale=Custom locales +Text.ExternalLocaleUse=Use custom locales +Text.ExternalLocaleDirectory=Locale directory: +Text.ExternalLocaleDirectorySet=Set +Text.ExternalLocaleDirectoryUpdate=Import +Text.ExternalLocaleDirectoryExport=Export +LocaleDialog.Language=Locale: +LocaleDialog.FileStatusOk=OK +LocaleDialog.FileStatusFormatError=Format error +LocaleDialog.FileStatusMissing=Missing file + + diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_da.properties b/projectlibre_core/src/com/projectlibre1/strings/client_da.properties new file mode 100644 index 0000000..d1e1e96 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_da.properties @@ -0,0 +1,1236 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.  +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. + + + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within  {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + + + + +AboutDialog.About=Om +AboutDialog.copyright=Copyright 2012 ProjectLibre Inc.  Alle rettigheder forbeholdes +AccessControlPolicy.PUBLIC=Alle ressourcer (undtagen Kunder/Partner) +AccessControlPolicy.RESTRICTED=Baseret på projektrolle i ressourcevisning +AccrualType.End=Slut +AccrualType.Prorated=Fordelt +AccrualType.Start=Start +AssignmentDialog.ShowingAllResources=Viser alle ressourcer +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=Viser kun ressourcer på projekt-teamet +AssignmentDialog.none=(Ingen) +Bar.assignment=tildeling +Bar.baseline10=baseline10 +Bar.baseline1=baseline1 +Bar.baseline2=baseline2 +Bar.baseline3=baseline3 +Bar.baseline4=baseline4 +Bar.baseline5=baseline5 +Bar.baseline6=baseline6 +Bar.baseline7=baseline7 +Bar.baseline8=baseline8 +Bar.baseline9=baseline9 +Bar.baseline=baseline +Bar.critical=kritisk +Bar.deadline=deadline +Bar.external=ekstern +Bar.milestone=milepæl +Bar.subproject=delprojekt +Bar.summary=resumé +Bar.task=opgave +Bar.timesheet=timeseddel +Bar.totalSlack=Slack ialt +BarPanel.Shape=Form: +BaselineDialog.Baseline=Baseline: +BaselineDialog.For=For: +BookingType.Committed=Aftalt +BookingType.Proposed=Foreslået +ButtonText.Cancel=Annuller +ButtonText.Close=Luk +ButtonText.IAccept=Jeg accepterer +ButtonText.OK=OK +ButtonText.Open=Åbn +ButtonText.OpenCopy=Åbn skrivebeskyttet +Calendar.24Hours=24 timer +Calendar.EditedWorkingHours=Redigerede arbejdstimer +CalendarDialogBox.Wednesday=Onsdag +CalendarDialogBox.September=September +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ Manuel +Calendar.EditsToADayOfTheWeek=Redigeringer til en dag i ugen +CalendarDialogBox.HoursPerday=Timer pr dag : +CalculationDialogBox.Prorated=Fordelt +Calendar.EditsToAnIndividualDay=Redigeringer til en enkelt dag +CalendarDialogBox.DurationSettings=Varighed indstillinger +CalendarDialogBox.SetAsDefault=Angiv som standard +CalendarDialogBox.HoursPerWeek=Timer pr uge : +CalendarDialogBox.DaysPerMonth=Dage pr måned : +Calendar.ExceptionCircular=Du kan ikke anvende den kalender som grundkalender, da den selv er afhængig af denne kalender. +CalendarDialogBox.Monday=Mandag +CalendarDialogBox.Tuesday=Tirsdag +CalendarDialogBox.Thursday=Torsdag +CalendarDialogBox.Friday=Fredag +CalendarDialogBox.Saturday=Lørdag +CalendarDialogBox.Sunday=Søndag +CalendarDialogBox.January=Januar +CalendarDialogBox.February=Februar +CalendarDialogBox.March=Marts +CalendarDialogBox.April=April +CalendarDialogBox.August=August +CalendarDialogBox.October=Oktober +CalendarDialogBox.November=November +CalendarDialogBox.December=December +CalendarDialogBox.EightAM=\ 08\:00 +CalendarDialogBox.SixPM=\ 18\:00 +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=Start +Calendar.NightShift=Nattevagt +Calendar.Nonworking=Ikke-arbejdende +Calendar.Standard=Standard +Calendar.Unmodified=Ej redigeret +CalendarDialogBox.May=Maj +CalendarDialogBox.June=Juni +CalendarDialogBox.July=Juli +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=Brug startår til FV nummerering +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=Disse indstillinger gælder kun varigheder +CalculationDialogBox.AndMoveStartOfRemaining=Og flyt starten af det tilbageværende arbejde tilbage til statusdatoen +CalculationDialogBox.AndMoveEndOfCompleted=Og flyt slutningen af det udførte arbejde frem til statusdatoen +CalculationDialogBox.MoveEndOfCompleteParts=Flyt slutningen af udført arbejde som er efter statusdatoen til statusdatoen +Calendar.Working=Arbejder +Category.assignmentEntrySpreadsheet=Tildelingsstart regneark +Category.assignmentSpreadsheet=Tildeling regneark +Category.availabilitySpreadsheet=Tilgængelighed regneark +Category.costRates=Omkostningspriser +Category.dependencySpreadsheet=Afhængighedsregneark +CalculationDialogBox.Automatic=\ Automatisk +CalculationDialogBox.Calculate=Beregn: +Category.distributionSpreadsheet=Forbrug regneark +CalculationDialogBox.Calculation=Beregning +CalculationDialogBox.EarnedValue=Optjent værdi +Category.projectSpreadsheet=Projekt regneark +Category.resourceAssignmentSpreadsheet=Ressourcetildeling regneark +Category.resourceSpreadsheet=Ressource regneark +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=Ressource regneark +Category.taskAssignmentSpreadsheet=Opgavetildeling regneark +Category.taskSpreadsheet=Opgave regneark +Category.taskSpreadsheet;projectSpreadsheet=Opgave og projekt regneark +CalculationDialogBox.End=Slutning +Category.timesheetSpreadsheet=Timeseddel regneark +ChangeWorkingTimeDialogBox.BasedOn=Baseret på +ChangeWorkingTimeDialogBox.ChangeWorkingTime=Ændre arbejdskalender +ChangeWorkingTimeDialogBox.For=For: +ChangeWorkingTimeDialogBox.From=Fra: +ChangeWorkingTimeDialogBox.ModificationMessage=Tilpasninger til denne kalender påvirker alle projekter som benytter den. +ChangeWorkingTimeDialogBox.New=Ny... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Ikke-standard arbejdstid +ChangeWorkingTimeDialogBox.NonWorkingTime=Ej-arbejdstid +ChangeWorkingTimeDialogBox.NotEdiableMessage=Denne kalender kan kun redigeres når hovedprojektet redigeres (Ressourcegruppe). +ChangeWorkingTimeDialogBox.Options=Indstillinger... +ChangeWorkingTimeDialogBox.To=\  Til\: +ChangeWorkingTimeDialogBox.UseDefault=Benyt standard +ChartLegend.ResourceFilter=Ressourcefilter: +ClientRole.Inactive=- +ClientRole.ProjectManager=Projektleder +ClientRole.TeamMember=Team medlem +ClientRole.TeamResource=Team ressource +ColumnDialog.InsertColumn=Indsæt kolonne +Command.UpateProject=UpdateProject +Command.UpdateTasks=UpdateTasks +ConstraintType.ALAP=As Late As Possible +ConstraintType.ASAP=As Soon As Possible +ConstraintType.FNET=Finish No Earlier Than +ConstraintType.FNLT=Finish No Later Than +ConstraintType.HAMM=Hammock +ConstraintType.MFO=Must Finish On +ConstraintType.MSO=Must Start On +ConstraintType.SNET=Start No Earlier Than +ConstraintType.SNLT=Start No Later Than +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=Rate A +CostRateIndex.B=Rate B +CostRateIndex.C=Rate C +CostRateIndex.D=Rate D +CostRateIndex.E=Rate E +Date.NoEnd=then on +# NA = Not Applicable +Date.NoStart=NA +Date.Quarter1=Q +Date.Half1=H +Date.Quarter2=Qtr +Date.Half2=Half +DefaultFrameManager.Project=Projekt +DelegateTaskDialog.DelegateTask=Deleger opgave +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=Finish To Finish +DependencyType.longFS=Finish To Start +DependencyType.longSF=Start To Finish +DependencyType.longSS=Start To Start +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% færdig +EarnedValueMethodType.PhysicalPercentComplete=Fysisk % færdig +ExpenseType.CAPITALIZE=Kapitalisér +ExpenseType.DIRECT=Direkte +ExpenseType.EXPENSE=Udgift +ExpenseType.INDIRECT=Inddirekte +ExpenseType.NONE=Ingen +ExpenseType.OVERHEAD=Overhead +Field.accessControlPolicy=Projekt team +Field.accrueAt=Påløbet +Field.actualCost=Faktisk omkostning +Field.actualDuration=Faktisk varighed +Field.actualFinish=Faktisk afslutning +Field.actualFixedCost=Faktisk fastlåst omkostning +Field.actualOvertimeCost=Faktisk overtidsomkostning +Field.actualOvertimeWork=Faktisk overtidsarbejde +Field.actualOvertimeWorkProtected=Faktisk overtidsarbejde beskyttet +Field.actualStart=Faktisk start +Field.actualWork=Faktisk arbejde +Field.actualWorkProtected=Faktisk arbejde beskyttet +Field.acwp=ACWP +Field.assignedRate=Tildelt rate +Field.assignment=Tildeling +Field.assignmentEntryAssigned=Tildelt +Field.assignmentEntryName=Navn +Field.assignmentEntryRate=Enheder +Field.assignmentProjectName=Projekt +Field.assignmentResourceId=Ressource ID +Field.assignmentResourceName=Ressource +Field.assignmentTaskId=Opgave ID +Field.assignmentTaskName=Opgave +Field.assignmentUnits=Tildeling enheder +Field.availableFrom=Tilgængelig fra +Field.availableTo=Tilgængelig til +Field.bac=BAC +Field.baseCalendar=Basis kalender +#the # will be replaced by a number or by nothing +Field.baseline#Cost=Baseline# Cost +Field.baseline#Duration=Baseline# Duration +Field.baseline#Finish=Baseline# Finish +Field.baseline#Start=Baseline# Start +Field.baseline#Work=Baseline# Work +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=Udbytte +Field.bookingType=Bookning type +Field.budgetStatusIndicator=Budget status +Field.cachedEnd=Slut +Field.cachedStart=Start +Field.canLevel=Can niveau +Field.code=Kode +Field.complete=Færdig +Field.completeThrough=Færdig gennem +Field.completedThrough=Færdiggjort gennem +Field.confirmed=Bekræftet +Field.constraintDate=Begrænsning dato +Field.constraintType=Begrænsning type +Field.contact=Kontakt +Field.cost=Udgift +Field.costPerUse=Udgift pr anvendelse +Field.costRateTable=Udgiftsratetabel +Field.costVariance=Omkostningsvarians +Field.cpi=CPI +Field.created=Oprettet +Field.creationDate=Oprettelsesdato +Field.critical=Kritisk +Field.csi=CSI +Field.cumulativeCost=Kumulativ omkostning +Field.cumulativePercentComplete=Kumulativt procent færdig +FieldDialog.ResourceInformation=Ressourceinformation +Field.cumulativeWork=Kumulativt arbejde +Field.currentDate=Dags dato +Field.customCost#=Cost# +Field.customDate#=Date# +Field.customDuration#=Duration# +Field.customFinish#=Finish# +Field.customFlag#=Flag# +Field.customNumber#=Number# +Field.customOutlineCode#=Outline Code# +Field.customStart#=Start# +Field.customText#=Text# +Field.cv=CV +Field.cvPercent=CV procent +Field.deadline=Deadline +Field.debugDependencyOrder=Afhængighedsrækkefølge +Field.delay=Tildelingsforsinkelse +Field.delegatedTo=Delegeret til +Field.dependencyDate=Afhængighedsdato +Field.dependencyStart=Start afhængighed +Field.dependencyType=Type +Field.dirty=Ændret +Field.duration=Varighed +Field.durationVariance=Varighedsvarians +Field.eac=EAC +Field.earliestStartingTask=Tidligste opgavestart +Field.earlyFinish=Tidlig afslutning +Field.earlyStart=Tidlig start +Field.earnedValueMethod=Earned Value metode +Field.effectiveDate=Effectiv dato +Field.effortDriven=Indsatsdreven +Field.elapsedDuration=Forløbet varighed +Field.emailAddress=E-mail adresse +Field.estimated=Estimeret +Field.expectedDuration=Forventet varighed +Field.expectedFinish=Forventet afsluttet +Field.expectedStart=Forventet start +Field.expenseType=Udgiftstype +Field.externalId=Eksternt ID +Field.externalTask=Ekstern opgave +Field.finish=Slut +Field.finishDate=Slut +Field.finishOffset=Forskudt afslutning +Field.finishSlack=Afslutning slack +Field.finishVariance=Afslutningsvariation +Field.fixedCost=Faste omkostninger +Field.fixedCostAccrual=Periodisering af faste omkostninger +Field.forward=Planlagt fremad +Field.freeSlack=Ledig slack +Field.ganttSnapshot=Gantt +Field.generic=Generisk +Field.group=Gruppe +Field.groupBySummary=Gruppér efter resumé +Field.hideBar=Skjul linie +Field.hyperlink=Hyperlink +Field.hyperlinkAddress=Hyperlink adresse +Field.hyperlinkHref=Hyperlink href +Field.hyperlinkSubAddress=Hyperlink underadresse +# ID = Identifikator +Field.id=ID +Field.ignoreResourceCalendar=Ignorer ressourcekalender +Field.inactive=Inaktiv +Field.indicators=Indikatorer +Field.initials=Initialer +Field.justModified=Netop justeret +Field.lag=Forsinkelse +Field.lastModificationDate=Sidst ændret +Field.lastTimesheetUpdate=Sidste timeseddelsopdatering +Field.lateFinish=Sen afslutning +Field.lateStart=Send start +Field.latestFinishingTask=Sidste afsluttende opgave +Field.levelAssignments=Niveauopgaver +Field.levelingCanSplit=NiveauerKanOpdele +Field.levelingDelay=Udjævningsforsinkelse +Field.linkedFields=Linkede felter +Field.manager=Leder +Field.markTaskAsMilestone=Vis opgave som milepæl +Field.marked=Markeret +Field.materialLabel=Materialeetiket +Field.maximumUnits=Max. enheder +Field.milestone=Milepæl +Field.name=Navn +Field.negativeSlack=Negativ slack +Field.netPresentValue=Nutidsværdi +Field.networkSnapshot=Netværk +Field.notes=Noter +Field.objects=Objekter +Field.optimisticDuration=Optimistisk varighed +Field.optimisticFinish=Optimistisk Slut +Field.optimisticStart=Optimistisk Start +Field.outlineLevel=Outline niveau +Field.outlineNumber=Outline nummer +Field.overallocated=Overallokeret +Field.overallocation=Overallokering +Field.overtimeCost=Overtidsomkostninger +Field.overtimeRate=Overtidsrate +Field.overtimeWork=Overtidsarbejde +Field.parentId#=Parent Id# +Field.partner=partner +Field.peak=Top +Field.peakUnits=Topenheder +Field.pendingTimesheetUpdate=Behøver timearksopdatering +Field.percentAllocation=Procent allokeret +Field.percentComplete=Procent udført +Field.percentWorkComplete=Procent arbejde udført +Field.pessimisticDuration=Pessimistisk varighed +Field.pessimisticFinish=Pessimistisk slut +Field.pessimisticStart=Pessimistisk start +Field.phonetics=Fonetik +Field.physicalPercentComplete=Fysisk procent udført +Field.predecessorId=Foregående ID +Field.predecessorName=Foregående +Field.predecessors=Foregående elementer +Field.preleveledFinish=Forudviklet slut +Field.preleveledStart=Forudviklet start +Field.priority=Prioritet +Field.project=Projekt +Field.projectDivision=Division +Field.projectGroup=Gruppe +Field.projectId=Projekt ID +Field.projectStatus=Projekt status +Field.projectType=Projekttype +Field.rate=Enheder +Field.rbsCode=RBS +Field.readOnlyDuration=Varighed +Field.recurring=Tilbagevendende +Field.referringSubprojectTaskDependencyDate=Delprojekt afhængighedsdato +Field.regularWork=Ordinært arbejde +Field.remainingAvailability=Tilbageværende tilgængelighed +Field.remainingCost=Tilbageværende udgift +Field.remainingDuration=Tilbageværende varighed +Field.remainingOvertimeCost=Tilbageværende overtidsomkostninger +Field.remainingOvertimeWork=Tilbageværende overtidsarbejde +FieldDialog.TaskInformation=Opgaveinformation +Field.remainingWork=Tilbageværende arbejde +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=Ressource tilgængelighed +Field.resourceGroup=Ressourcegruppe +Field.resourceId=Ressource ID +Field.resourceInitials=Ressource initialer +Field.resourceNames=Ressource navne +Field.resourcePhonetics=Ressource fonetik +Field.resourcePool=Ressourcepulje +Field.resourceType=Type +Field.responsePending=Svar afventer +Field.resume=Genoptag +Field.risk=Risiko +Field.rollup=Oprulning +Field.scheduleStatusIndicator=Tidsplan status +Field.schedulingMethod=Planlægningsmetode +Field.showProjectResourcesOnly=Vis kun projektressourcer +Field.spi=SPI +Field.standardRate=Standard sats +Field.start=Start +Field.startDate=Start +Field.startOffset=Start forskudt +Field.startSlack=Start slack +Field.startVariance=Start variation +Field.status=Status +Field.statusDate=Statusdato +Field.statusIndicator=Overordnet status +Field.statusTaskIndicator=Statusopgave indikator +Field.stop=Stop +Field.subprojectFile=Delprojekt fil +Field.subprojectOf=delprojekt af +Field.subprojectReadOnly=Delprojekt skrivebeskyttet +Field.successorId=Efterfølger ID +Field.successorName=Efterfølger +Field.successors=Efterfølgere +Field.summary=Opsummering +Field.summaryProgress=Opsummering fremdrift +Field.suprojectReadOnly=Delprojekt skrivebeskyttet +Field.sv=SV +Field.svPercent=SV procent +Field.taskCalendar=Opgavekalender +Field.taskId=Opgave ID +Field.taskName=Opgavetitel +Field.taskOutlineNumber=Opgave Outline nummer +Field.taskSummaryName=Opgave opsummeringsnavn +Field.taskType=Type +Field.tcpi=TCPI +Field.teamStatusPending=Teamstatus afventer +Field.textAbove=Teksten over +Field.timesheetFinish=Ugeseddel afslutning +Field.timesheetStart=Ugeseddel start +FieldDialog.document=dokument: +Field.timesheetStatus=Ugeseddel status +Field.timesheetStatusName=Status +Field.totalSlack=Slack ialt +Field.totalSlackEnd=Slack ialt slut +Field.totalSlackStart=Slack ialt start +Field.uniqueId=Unikt ID +Field.uniqueIdPredecessors=Unikt ID forgængere +Field.uniqueIdSuccessors=Unikt ID efterfølgere +Field.unitAvailability=Enhedstilgængelighed +Field.updateNeeded=Opdatering påkrævet +Field.userAccount=Brugerkonto +Field.userRole=Projektrolle +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=Er WBS forældre +Field.wbsParentName=WBS forældre +Field.wbsPredecessors=WBS forgængere +Field.wbsSuccessors=WBS efterfølgere +Field.work=Arbejde +Field.workAvailability=Arbejdstilgængelighed +Field.workContour=Arbejdskontur +Field.workVariance=Arbejdsvarians +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Projekter +File.projity=ProjectLibre +Filter.CompletedTasks=Udførte opgaver +Filter.CostOverbudgetTasks=Overbudgetterede opgaver omkostninger +Filter.CriticalTasks=Kritiske opgaver +Filter.DateRange=Datospænd +Filter.Flag1=Flag 1 +Filter.Flag2=Flag 2 +Filter.Flag3=Flag 3 +Filter.InProgressAssignments=Igangværende tildelinger +Filter.InProgressTasks=Igangværende opgaver +Filter.IncompleteTasks=Ufærdige opgaver +Filter.LateOrOverbudgetTasks=Forsinkede/overbudgetterede opgaver +Filter.Milestones=Milepæle +Filter.MyDelegatedTasks=Mine tildelte opgaver +Filter.MyTasks=Mine opgaver +Filter.None=Ingen filter +Filter.NormalTasks=Normale opgaver +Filter.ResourcesMaterial=Materialeressourcer +Filter.ResourcesMe=Mig +Filter.ResourcesWork=Arbejdsressourcer +Filter.SlippedTasks=Forsinkede opgaver +Filter.SummaryTasks=Hovedopgaver +Filter.TasksWithEstimatedDurations=Opgaver med estimeret varighed +Filter.UnstartedAssignments=Ej startede tildelinger +FixedDuration.FixedDuration=Fast varighed +Filter.UnstartedTasks=Ej startede opgaver +Filter.WorkComplete=Arbejde udført +FixedWork.FixedWork=Fast arbejde +FixedUnits.FixedUnits=Faste enheder +FixedDuration.TheDurationMessage=Denne opgave med fast varighed skal ændre sin varighed for denne tildeling +FooterRenderer.page=\  -  side +Gantt.Popup.annotationStylesMenu=Annotationsstilarter +Gantt.Popup.barStylesMenu=Stav stilarter +Gantt.Popup.showAssignments=Vis tildelinger +Gantt.Popup.showCalendar=Vis kalender +Gantt.Popup.showRows=Vis rækker +Gantt.Popup.splitMode=Opdel +Gantt.tooltip.Assignment=Tildeling +Gantt.tooltip.Resource=Ressource +Gantt.tooltip.Task=Opgave +Gantt.tooltip.from=Fra +Gantt.tooltip.lag=Forsinkelse +Gantt.tooltip.link=Kæde +Gantt.tooltip.to=Til +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Det valgte projekt er allerede åbent som et delprojekt i et andet projekt. +GraphicManager.SelectedProjectAlreadySubproject=Det valgte projekt er allerede åbent som et delprojekt i dette projekt. +Grouper.AssignmentProjectName=Projektnavn +Grouper.CompleteIncomplete=Udført/Ej-udført +Grouper.Critical=Kritisk +Grouper.CriticalThenDuration=Kritisk derefter varighed +Grouper.Delegated=Tildelt +Grouper.Duration=Varighed +Grouper.None=Ingen gruppe +Grouper.ResourceGroup=Gruppe +Grouper.ResourceType=Type +HelpDialog.About=Hjælp +HelpDialog.GoToOnlineHelp=Gå til online-hjælp +HelpDialog.ShowLicense=Vis licens +HelpDialog.ShowTipsOfTheDay=Vis dagens tip +HelpDialog.WatchHowToVideos=Vis how-to videoer +HyperLinkToolTip.SeeOnlineDemo=">Se online demo +HyperLinkToolTip.SeeOnlineHelp=">Se online hjælp +InformationDialog.AssignResources=Tildel ressourcer +InformationDialog.ChangeWorkingTime=Indstil arbejdstid +License.Inactive=Inaktiv +License.LiteUser=Lite bruger +License.PowerUser=Superbruger +LicenseDialog.CouldNotLoadLater=Licens kunne ikke indlæses. Prøv venligst igen senere. +LicenseDialog.CouldNotLoadExiting=Licens kunne ikke indlæses. Prøv venligst igen senere. Programmet afsluttes. +LicenseDialog.Email=Registrer venligst din kopi af ProjectLibre for at blive løbende opdateret om produktet. +LicenseDialog.EmailLabel=E-mail adresse +LicenseDialog.License=Licens +LicenseDialog.ThirdParty=Tredjepart +LicenseOption.Administrator=Administrator +LicenseOption.External=Partner/Kunde +LicenseOption.Inactive=- +LocalFileImporter.Exporting=Eksporterer... +LocalFileImporter.Importing=Importerer... +LoginDialog.Login=Login: +LoginDialog.Password=Kodeord: +LoginDialog.RememberMe=Husk mig på denne enhed +LoginDialog.UseOfficeLook=Anvend Office udseende +LookupDialog.EnterPartOfTheName=Indtast del af det navn du leder efter +LookupDialog.Find=Find +LookupDialog.LookupAnObject=Slå et objekt op +LookupDialog.NoMatchesFound=Ingen resultater fundet +LookupDialog.Results=Resultater +LookupDialog.Type=Type: +LookupDialog.UnableToContactServer=Kan ikke kontakte server. +LookupField.LookupAValue=Slå en værdi op +Message.ImportError=Kan ikke læse fil +Message.allowDeleteActuals=De valgte elementer har allerede faktiske værdier. Er du sikker på du ønsker at slette dem? +Message.allowDistrbutedStartBeforeProjectStart=Værdien vil betyde at opgaven starter før projektstart. Er det ok? +Message.allowDistrbutedStartBeforeTaskStart=Værdien er før opgavens startdato. Er det ok? +Message.allowTaskStartBeforeProjectStart=Må denne opgave starte før projektstart? +Message.alreadyParentChildHierarchy=Der er allerede en eksisterende forældre/barn relation. +Message.badTimeFormat=Ugyldigt tidsformat +Message.badTimeIntervals=Ugyldige tidsintervaller +Message.cannotEnterUnits=Du kan ikke indtaste enheder i dette felt +Message.cannotLinkToSummary=Du kan ikke linke en hovedopgave med een af dens underopgaver.\nHvis du ønsker at linke dem, så fjern hierakiet ved at flytte underopgaven så den ikke længere er under hovedopgaven. +Message.cannotLinkTwice=Linket eksisterer allerede. +Message.cantEmptySpreadsheet=Regnearket skal have mindst ét felt. +Message.cantLinkToClosedSubproject=Et delprojekt skal være åbent og skrivbart for at kunne være linkdestination, da det påvirker delprojektets startdato. +Message.cantLinkToExternal=Du kan ikke linke til en ekstern opgave. +Message.cantLinkToSelf=Du kan ikke linke en opgave til den selv. +Message.circularDependency=Dette link er ugyldigt, da det ville skabe en cirkulær afhængighed med andre opgaver. +Message.confirmDeleteRows=Er du sikker på du ønsker at slette disse rækker? +# {0} is the  name of the predecessor task, {1} is the  name of the successor task +Message.crossProjectCircularDependency.mf=Et projektlink fra {0} til {1} ville skabe en cirkulær reference med andre opgaver. Den er frakoblet og markeret med stiplede linier. +Message.errorCalendarMustHaveWorkingDay=Kalenderen skal have mindst een standard arbejdsdag. +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=Værdien må ikke overstige {1,number,percent}. +# {0,number,percent} is the minimum  percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=Værdien skal være mindst {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=Værdien skal være mellem {0,number} og {1,number}. +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=Værdien må ikke overstige {1,number}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=Værdien skal mindst være {0,number}. +Message.importCircularLink=Projektet kan ikke importeres, da det indeholder en cirkulær reference.  +Message.invalidAssignments=Du skal indtaste eksisterende ressourcer fra din ressourcepulje adskilt af listeseparatortegnet ";". Hvis du ønsker at tildele mindre end 100%, kan du tilføje en procentdel i kantede parenteser: f.eks. Clark Kent[50%];Lois Lane +Message.invalidChoice=Ugyldigt valg +Message.invalidCost=Ugyldig udgift\nDette er ikke en gyldig udgift. Udgifter skal udtrykkes i tal. Valutasymbolet er valgfrit.\nValutasymbolet er din systemstandard. +Message.invalidDate=Ugyldig dato\nDette er ikke en gyldig dato, eller den er udenfor datospændet 1. januar 1970 til 31. december 2049.\nDatoformatet er din systemstandard. F.eks.\: 12/03/06 eller 3. Marts 2006. +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf=Ugyldig {0}.\nBenyt venligst gyldige opgave ID'er.\n\u00B7 {0} information udtrykkes som\: {0} ID nummer, afhængighed, og buffer eller forsinkelse.\n\u00B7 Du kan også benytte opgaveinformationsdialogboksen. +Message.invalidDuration=Ugyldig varighed\nDette er ikke en gyldig varighed.\nBenyt venligst en værdi som f.eks. 24 timer (24h), 3 dage (3d), eller 9ed for Elapsed Days. +Message.invalidInput=Værdien er ikke gyldig. +Message.invalidIntersection=Den resulterende arbejdstid er ikke gyldig\n\nDer er en opgave som sammenholdt med sin ressourcekalender, ikke har nok tid til arbejdsudførsel.\nOpgaven ser bort fra ressourcekalenderen. \nFor at udbedre dette, kan du ændre opgaven eller ressourcekalenderen, eller vælge "Ignorer ressourcekalender"-optionen i opgaven. +Message.invalidRate=Dette er ikke en gyldig rate.\nFor (ej-materielle) arbejdsressourcer, indtast raten efterfulgt af skråstreg (/), og så forkortelsen for tidsperioden. F.eks. "100/h".\nFor materialeressourcer, indtast raten uden stråstreg og tidsperiode\nF.eks. "10". Hvis din materialetekst er "tønder", ville dette betyde "$10/tønder". +Message.invaliidUnits=Dette er ikke en gyldig enhedsværdi\n\nFor (ej-materielle) arbejdsressourcer, indtast et tal.\n\nMaterialeressourcetildelinger kan enten være faste eller variable. Til faste materialeressourcetildelinger, tast kun enhedsværdien. F.eks. "10" ville betyde "10 tønder", hvis din materialetekst er "tønder".\n\nTil en variabel materialeressourcetildeling, indtast enhedsværdien, efterfulgt af en skråstreg (/), og derefter forkortelsen for perioden. F.eks. "10/M" betyder "12 tønder pr måned". +Message.notAResource=Det valgte element er ikke en ressource +Message.notATask=Det valgte element er ikke en opgave +Message.onlyReplaceOneResourceAtATime=Du kan kun erstatte een ressource ad gangen. +Message.onlySelectOneElement=Vælg kun ét element ad gangen. +Message.parentConstraintType=Hovedopgaver må kun være een af følgende: "Så hurtigt som muligt", "Start ikke tidligere end" or "Afslut ikke senere end". Hvis du benytter bagvendt planlægning, så er "Så sent som muligt" en mulighed i stedet for "Så hurtigt som muligt". +Message.parentSuccessorCannotHaveFinishLink=En hovedopgaves forudgående opgaver må kun være af typen Slut-til-Start eller Start-til-Start +Message.projectAlreadyExists=Projektet findes allerede. Slet nuværende version? +Message.projectMustHaveName=Projektet skal have et navn. +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=Projekt " +Message.renameProject2=" findes allerede på serveren. Vælg venligst et andet navn. +Message.saveProjectAs1=Gem projekt " +Message.saveProjectAs2=" som +Message.saveProjectBeforeClosing1=Ønsker du at gemme ændringerne på " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=Delprojekterne vil blive konverteret til ordinære opgaver. Denne handling kan ikke fortrydes. Fortsæt? +Message.synchronizeResources=Synchronisér ressourcerne med serveren? +Message.tooManyResourcesSelectedToList.mf={0,number} ressourcer valgt (for mange til at vise i listen) +Message.tooManyTasksSelectedToList.mf={0,number} opgaver valgt (for mange til at vise i listen) +MicrosoftImporter.ErrorImportingXML=Kunne ikke importere XML filen. Det er kun XML-filer oprettet med MS Project eller Planner som kan importeres. +MicrosoftImporter.ImportWithSubprojects=Projektet indeholder delprojekter. De vil skulle importeres manuelt. Opgaverne som de svarer til er: +MicrosoftImporter.Importing=Importerer... +MicrosoftImporter.PrepareResources=Forbered ressourcer +Network.Popup.barStylesMenu=Rækkeudseende +NewBaseCalendarDialog.CreateACopyOfCalendar=Lav en kopi af kalenderen +NewBaseCalendarDialog.CreateANewBaseCalendar=Lav en ny grundkalender +NewBaseCalendarDialog.Name=Navn +NewBaseCalendarDialog.NewBaseCalendar=\ Ny grundkalender +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=Låst af +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=Velkommen til ProjectLibre +OpenProjectDialog.CreationDate=Oprettelsesdato +OpenProjectDialog.ModificationDate=Ændringsdato +OpenProjectDialog.Name=Navn +Open_Title.ProjityError=ProjectLibre fejl +Open_Title.ProjityWarning=ProjectLibre advarsel +PageSetupDialog.Margins=Margener +PageSetupDialog.Margins.Left=Venstre (mm) +PageSetupDialog.Margins.Right=Højre (mm) +PageSetupDialog.Margins.Top=Top (mm) +PageSetupDialog.Margins.Bottom=Bund (mm) +PageSetupDialog.Orientation=Retning +PageSetupDialog.Orientation.Landscape=Liggende +PageSetupDialog.Orientation.Portrait=Stående +PageSetupDialog.Orientation.ReverseLandscape=Omvend liggende +PageSetupDialog.Page=Side +PageSetupDialog.Paper=Papi +PageSetupDialog.PaperFormat.Custom=Tilpasset +PageSetupDialog.PaperSize=Papirstørrelse +PageSetupDialog.PaperSizeSettings.Custom=Tilpassede indstillinger +PageSetupDialog.PaperSizeSettings.Custom.Width=Bredde (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=Højde (mm): +PageSetupDialog.PaperSizeSettings.Printer=Benyt printerindstillinger +PageSetupDialog.PaperSizeSettings.SinglePage=Een stor side +PageSetupDialog.PaperSizeSettings.SinglePage2=(kun PDF) +PageSetupDialog.Printers=Printere +PageSetupDialog.PrinterPageSetup=Printerindstillinger +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=Kun tilgængelig i +PageSetupDialog.PODOnly2=Projects On Demand +PageSetupDialog.Refresh=Genindlæs +PageSetupDialog.SaveSettings=Gør til standard +PageSetupDialog.SaveSettings.ToolTip=Angiv som standard printindstillinger. +PageSetupDialog.SaveWebPDFSettings=Gør Web standard +PageSetupDialog.SaveWebPDFSettings.ToolTip=Angiv standardindstillinger for web PDF billede. +PageSetupDialog.Settings.Label=Indstillinger +PageSetupDialog.Settings.Local=Lokal +PageSetupDialog.Settings.WebPDF=Web PDF +PageSetupDialog.Scaling=Skallering +PageSetupDialog.Scaling.FitTo=Tilpas til: +PageSetupDialog.Scaling.FitToHeight=sidehøjde +PageSetupDialog.Scaling.FitToWidth=sidebredde +PageSetupDialog.Scaling.ScaleTo=Skaler til: +PageSetupDialog.Scaling.ScaleToHeight=højde +PageSetupDialog.Scaling.ScaleToWidth=bredde +PageSetupDialog.Scaling.ScaleToProportions=Begræns +PageSetupDialog.Scaling.ScaleToProportions2=proportioner +PageSetupDialog.ShowGantt=Gantt +PageSetupDialog.ShowParts=Diagrammer +PageSetupDialog.ShowSpreadSheet=Regneark +PageSetupDialog.Title=Sideopsætning +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=Den valgte service er en PDF-service. Vælg venligst en printer. +PersonalContour.personal=Personlig +ProjectStatus.ACTIVE=Aktiv +PreviewPanel.Preview=Forhåndsvisning +PreviewPanelEnd.Preview=Forhåndsvisning +ProjectDialog.AllResourcesExceptCustomerPartner=Alle ressourcer (undtagen kunder/partner) +ProjectDialog.Notes=Noter: +ProjectInformationDialog.ProjectInformation=Projektinformation +ProjectStatus.CANCELLED=Annulleret +ProjectStatus.COMPLETED=Gennemført +ProjectDialog.NewProject=Nyt projekt +ProjectDialog.StartDate=Startdato: +ProjectDialog.FinishDate=Slutdato: +ProjectStatus.ON_HOLD=På pause +ProjectDialog.Manager=Leder: +ProjectStatus.PENDING_APPROVAL=Afventer godkendelse +ProjectStatus.PLANNING=Planlægning +ProjectType.EVENT_PLANNING=Begivenhedsplanlægning +ProjectType.IT=IT +ProjectType.MARKETING_CAMPAIGN=Marketingskampagne +ProjectInformationDialog.Notes=Noter +PrintPreviewFrame.PrintPreview=Udskriftsvisning +ProjectType.OTHER=Andre +ProjectType.PRODUCT_DEVELOPMENT=Produktudvikling +ProjectType.PROFESSIONAL_SERVICES=Professionelle tjenester +ProjectInformationDialog.Statistics=Statistik +ProjectDialog.BasedOnProjectRole=Baseret på projektrolle i ressourcevisning +ProjectInformationDialog.General=Generelt +ProjectType.SALES_CAMPAIGN=Salgskampagne +ProjectDialog.ProjectName=Projektnavn: +ProjectDialog.ProjectTeam=Projekt team: +ProjectType.TECHNICAL_SUPPORT=Technisk support +RenameDialog.AnotherItemWithThatNameAlreadyExists=Der findes i forvejen et element med dette navn +RenameDialog.NewName=Nyt navn +RenameDialog.Rename=Omdøb +RenameDialog.TheNameCannotBeEmpty=Navnet må ikke være tomt +RenameProjectDialog.NewProject=Nyt projekt +RenameProjectDialog.NewProjectName=Nyt projektnavn: +RenameProjectDialog.RenameProject=Omdøb projekt +ReportView.Columns=Kolonner: +ReportView.Report=Rapport: +RequestDemandType.Demand=Efterspørgsel +RenameDialog.CurrentName=Nuværende navn +RequestDemandType.None=- +RequestDemandType.Request=Forespørgsel +ResourceAdditionDialog.ResourceMerging=Ressourcefletning +ResourceAdditionDialog.SelectResourcesToAdd=Vælg ressourcer som skal tilføjes +ResourceIndicatorsComponent.Administrator=\ (Administrator) +ResourceIndicatorsComponent.PartnerCustomer=\ (Partner/Kunde) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=Denne ressource er på projekt teamet
+ResourceIndicatorsComponent.UserLicense=Brugerlicens: +ResourceInformationDialog.AssignedToTasks=Tildelt opgaver: +ResourceInformationDialog.Costs=Omkostninger +ResourceInformationDialog.General=Generelt +ResourceInformationDialog.Notes=Noter +ResourceInformationDialog.ResourceAvailability=Ressourcetilgængelighed +ResourceInformationDialog.ResourceInformation=Ressourceinformation +ResourceInformationDialog.Tasks=Opgaver +ResourceMappingDialog.AllResourcesExceptCustomerPartner=Alle ressources (undtagen kunde/partner) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=Baseret på projektrolle i ressourcevisning +ResourceMappingDialog.DontMergeOpenProjectReadOnly=Flet ikke, åbn projekt som skrivebeskyttet +ResourceMappingDialog.ImportedResources=Importerede ressourcer +ResourceMappingDialog.MergeResourcesUsingField=Flet ressourcer ved brug af felt +ResourceMappingDialog.ProjectTeam=Projekt team: +ResourceMappingDialog.ResourceMerging=Ressourcefletning +ResourceMappingDialog.ServerResources=Serverressourcer +ResourceType.Location=Lokation +ResourceType.Machine=Maskine +ResourceType.Material=Materiel +ResourceType.Other=Anden +ResourceType.Work=Arbejde +ResourceView.ThisResourceCurrentlyHasAssignments=. Denne ressource har tildelinger. +ResourceView.ToMoveAProtectedResource=For at flytte en ej-sletbar ressource i hierakiet, kan du oprette links i RBS-visningen. +ResourceView.UsersCanOnlyBeRemoved=. Brugere kan kun fjernes eller gøres inaktive på siden Brugerhåndtering. +ResourceView.YouCannotDeleteTheResource=Du kan ikke slette ressourcen: +Role.Inactive=Inaktiv +Role.ProjectManager=Projektleder +Role.TeamMember=Team medlem +SchedulingType.FixedDuration=Fast varighed +ScheduleDialogBox.Percentage=Procentdel +ScheduleDialogBox.FixedDuration=Fast varighed +ScheduleDialogBox.FixedUnits=Faste enheder +ScheduleDialogBox.FixedWork=Fast arbejde +ScheduleDialogBox.SetAsDefault=Angiv som standard +ScheduleDialogBox.WorkIsEnteredIn=\                    Arbejde indtastes som  +ScheduleDialogBox.DefaultTaskType=\                    Standard opgavetype +SchedulingType.FixedUnits=Faste enheder +ScheduleDialogBox.Schedule=Tidsplan +ScheduleDialogBox.Decimal=Decimal +ScheduleDialogBox.Minutes=Minutter +ScheduleDialogBox.NewTask=\                    Ny opgave +SchedulingType.FixedWork=Fast arbejde +ScheduleDialogBox.Hours=Timer +ScheduleDialogBox.Days=Dage +ScheduleDialogBox.Weeks=Uger +ScheduleDialogBox.Months=Måneder +Sorter.AssignmentProjectName=Projektnavn +Sorter.CompleteIncomplete=Færdige/Ufærdige +Sorter.Cost=Omkostning +Sorter.CostOverbudget=Omkostning overbudgetteret +Sorter.CostPerUse=Omkostning pr anvendelse +Sorter.Critical=Kritisk +Sorter.Delegated=Tildelt +Sorter.Duration=Varighed +Sorter.DurationThenCost=Varighed dernæst omkostning +Sorter.FinishDate=Afslutningsdato +Sorter.Name=Navn +Sorter.None=Ingen sortering +Sorter.OvertimeRate=Overtidsrate +Sorter.ResourceGroup=Gruppe +Sorter.ResourceType=Type +Sorter.StandardRate=Standard rate +Sorter.StartDate=Startdato +Spreadsheet.Action.collapse=Sammenfold +Spreadsheet.Action.copy=Kopier +Spreadsheet.Action.cut=Klip +Spreadsheet.Action.delete=Slet +Spreadsheet.Action.expand=Udvid +Spreadsheet.Action.indent=Indryk +Spreadsheet.Action.new=Ny +Spreadsheet.Action.outdent=Udryk +Spreadsheet.Action.paste=Indsæt +Spreadsheet.Assignment.resourceUsage=Ressourceforbrug +Spreadsheet.Assignment.taskUsage=Opgaveforbrug +Spreadsheet.AssignmentEntry.assignResources=Tildel ressourcer +Spreadsheet.AssignmentEntry.replaceResources=Erstat ressourcer +Spreadsheet.Dependency.predecessors=Forgængere +Spreadsheet.Dependency.successors=Efterfølgere +Spreadsheet.Project.default=Standard +Spreadsheet.Project.portfolio=Portefølje +Spreadsheet.Project.properties=Egenskaber +Spreadsheet.Resource.earnedValue=Earned Value +Spreadsheet.Resource.earnedValueCostIndicators=Earned Value - omkostning +Spreadsheet.Resource.earnedValueScheduleIndicators=Earned Value - tidsplan +Spreadsheet.Resource.entryWorkResources=Standard +Spreadsheet.ResourceAssignment.reportAssignmentResource=Navn og ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=Basisrapport +Spreadsheet.ResourceAssignment.resources=Tildelte ressourcer +Spreadsheet.ResourceAssignment.tasks=Tildelte opgaver +Spreadsheet.ResourceTimesheet.status=Ugeseddel status +Spreadsheet.ResourceUsage.default=Ressourceforbrug (distribution) +Spreadsheet.nameOnly=Navn +Spreadsheet.Task.baseline=Baseline +Spreadsheet.Task.constraintDates=Begrænsningsdatoer +Spreadsheet.Task.cost=Omkostning +Spreadsheet.Task.delay=Forsinkelse +Spreadsheet.Task.earnedValue=Earned Value +Spreadsheet.Task.earnedValueCostIndicators=Earned Value - omkostning +Spreadsheet.Task.earnedValueScheduleIndicators=Earned Value - tidsplan +Spreadsheet.Task.entry=Standard +SpreadSheetColumnMenu.InsertColumn=Indsæt kolonne... +Spreadsheet.Task.schedule=Planlæg (CPM) +Spreadsheet.Task.summary=Opsummering +Spreadsheet.Task.tracking=Sporing +Spreadsheet.Task.usage=Arbejde +Spreadsheet.Task.variance=Planlægningsvariation +Spreadsheet.TaskAssignment.reportAssignmentResource=Navn og ID +Spreadsheet.TaskAssignment.reportAssignmentTask=Basisrapport +Spreadsheet.TaskAssignment.resources=Tildelte ressourcer +Spreadsheet.TaskAssignment.tasks=Tildelte opgaver +Spreadsheet.TaskTimesheet.status=Ugeseddel status +Spreadsheet.TaskUsage.default=Opgaveforbrug (distribution) +Spreadsheet.Timesheet.Default=Ugeseddel +Spreadsheet.Timesheet.completion=Færdiggørelse +SpreadSheetColumnMenu.HideColumn=Skjul kolonne +Spreadsheet.availability=Tilgængelighed +Spreadsheet.costRates=Omkostningsrater +Spreadsheet.empty= +StandardContour.backLoaded=Back Loaded +StandardContour.bell=Bell +StandardContour.doublePeak=Double Peak +StandardContour.earlyPeak=Early Peak +StandardContour.flat=Flat +StandardContour.frontLoaded=Front Loaded +StandardContour.latePeak=Late Peak +StandardContour.plateau=Plateau +Styles.Annotation.milestone=Milepæle +Styles.Annotation.normal=Normale opgaver +Styles.Bar.Row.assignment=Tildelinger +Styles.Bar.Row.baseline10=Baseline 10 +Styles.Bar.Row.baseline1=Baseline 1 +Styles.Bar.Row.baseline2=Baseline 2 +Styles.Bar.Row.baseline3=Baseline 3 +Styles.Bar.Row.baseline4=Baseline 4 +Styles.Bar.Row.baseline5=Baseline 5 +Styles.Bar.Row.baseline6=Baseline 6 +Styles.Bar.Row.baseline7=Baseline 7 +Styles.Bar.Row.baseline8=Baseline 8 +Styles.Bar.Row.baseline9=Baseline 9 +Styles.Bar.Row.baseline=Baseline +Styles.Bar.Row.critical=Kritiske opgaver +Styles.Bar.Row.deadline=Deadline +Styles.Bar.Row.external=Eksterne opgaver +Styles.Bar.Row.milestone=Milepæle +Styles.Bar.Row.subproject=Delprojekter +Styles.Bar.Row.summary=Hovedopgaver +Styles.Bar.Row.task=Ej-kritiske opgaver +Styles.Bar.Row.timesheet=ugeseddel +Styles.Bar.Row.totalSlack=Slack i alt +Styles.Calendar.nonWorking=Vis kalender +Styles.Gantt.showRows=Vis rækker +Styles.showLinks=Vis links +Summary.AND=AND +Summary.Average=Gennemsnit +Summary.AverageFirstSublevel=Gennemsnit først niveau +Summary.CountAll=Tæl alle +Summary.CountNonsummaries=Tæl ikke-opsummeringer +Summary.List=Liste +Summary.Maximum=Maximum +Summary.Minimum=Minimum +Summary.None=Ingen +Summary.OR=OR +Summary.Sum=Sum +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=Noter: ' +TaskIndicatorsComponent.TheCalendar=Kalenderen ' +TaskIndicatorsComponent.TheIntersection=Skæringspunktet mellem opgave- og ressourcekalenderne har ingen arbejdstid.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=Opgaven var færdiggjort  +TaskIndicatorsComponent.ThisParentTaskHasResources=Denne hovedopgave har ressourcer tildelt direkte til den: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=Dette delprojekt er ikke gyldigt: Det kan kun indsættes i et projekt een gang +TaskIndicatorsComponent.ThisTaskFinishesOn=Denne opgave afsluttes +TaskIndicatorsComponent.ThisTaskHasA=Denne opgave har en ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Denne opgave er blevet delegeret til +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Denne opgave er blevet delegeret til dig +TaskIndicatorsComponent.ThisTasksRepresentsThe=Denne opgave repræsenterer +TaskIndicatorsComponent.constraintOn=' begrænsning på +TaskIndicatorsComponent.isAssignedToTheTask=' er tildelt opgaven.
+TaskIndicatorsComponent.opened=åbnet +TaskIndicatorsComponent.subproject=\ delprojekt\: +TaskIndicatorsComponent.unopened=uåbnet +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ som er efte dens deadline af +TaskInformationDialog.Advanced=Advanceret +TaskInformationDialog.ConstrainTask=Begrænsning +TaskInformationDialog.Dates=Datoer +TaskInformationDialog.General=Generelt +TaskInformationDialog.Notes=Noter +TaskInformationDialog.Predecessors=Forgængere +TaskInformationDialog.Resources=Ressourcer +TaskInformationDialog.Successors=Efterfølgere +TaskInformationDialog.TaskInformation=Opgaveinformation +Text.Allocated=Allocateret +Text.ApplicationTitle=ProjectLibre +Text.Assign=Tildel +Text.AssignResources=Tildel ressourcer +Text.Baseline=Baseline +Text.Cancel=Annuller +Text.ClearBaseline=Nulstil Baseline +Text.CostRateTables=Omkostningstabel +Text.Cumulative=Kumulativ +Text.DetectingJavaVersion=Finder Java version... +Text.DisabledExternalTaskDependency=Frakoblet ekstern opgaveafhængighed +Text.EntireProject=Hele projektet +Text.ExternalTaskDependency=Ekstern opgaveafhængighed +Text.Field=Felt +Text.Filter=Filter +Text.From=Fra +Text.Group=Gruppe +Text.HierarchicalRelation=Hierakisk relation +Text.Histogram=Histogram +Text.Lag=Lag +Text.No=Nej +Text.None=Ingen +Text.OtherProjects=Andre projekter +Text.Remove=Fjern +Text.Replace=Erstat +Text.ReplaceResource=Erstat ressource +Text.Save=Gem +Text.SaveBaseline=Gem Baseline +Text.Selected=Valgt +Text.SelectedTasks=Valgte opgaver +Text.ShowSelectedOnTop=Vis valgte øverst +Text.ShowTeamResourcesOnly=Kun team ressourcer +Text.Sort=Sorter +Text.Task=Opgave +Text.TaskDependency=Opgaveafhængighed +Text.Tasks=Opgaver +Text.ThisProject=Dette projekt +Text.To=Til +Text.Type=Type +Text.Unassigned=Utildelt +Text.Untitled=Unavngiven +Text.UserDefinedInParentheses=(brugerdefineret) +Text.With=Med +Text.Yes=Ja +Text.budget=Budget +Text.clickToRename=(Klik for at omdøbe) +Text.cost=Omkostning +Text.createProject=Opret projekt +Text.forwardScheduled=Fremadrettet planlagt +Text.insertProject=Indsæt projekt +Text.manageResources=Administrer ressourcepulje +Text.modifiedInParentheses=(ændret) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=Server projekt +Text.openProject=Åbn projekt +Text.predecessor=forgænger +# {0} is the name of the thing to rename +Text.rename.mf=Omdøb {0} +Text.resetRoles=Optionen "Alle ressourcer" giver adgang til alle brugere du har defineret i din organisation (undtagen partner/kunde) i dette projekt.\nDe projektspecifikke restriktioner du måtte have indtastet i ressourcevisningen bliver nulstillet. +Text.reverseScheduled=Bagudrettet planlagt +Text.rightClickSelectToSpreadsheet=Højreklik for at vælge eller omdøbe regnearkstabeller +Text.rightClickToInsertRemoveColumns=Højreklik for at indsætte/skjule kolonner +Text.successor=eftefølger +Text.taskHierarchy=Opgavehieraki: +Text.welcomeSubject=Velkommen til Projects On Demand +Text.welcomeToPod=Velkommen til ProjectLibre +Text.work=arbejde +TimeChartPopupMenu.VerticalScrolling=Lodret scrolling +TimesheetHelper.Entered=Indtastet +TimesheetHelper.Integrated=Integreret +TimesheetHelper.Mixed=Blandet +TimesheetHelper.New=Ny +TimesheetHelper.Rejected=Afvist +TimesheetHelper.Saved=Gemt +TimesheetHelper.Validated=Valideret +Title.ProjityError=ProjectLibre fejl +Title.ProjityWarning=ProjectLibre advarsel +TransformParameter.FinishDate=Afslutningsdato +TransformParameter.StartDate=Startdato +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=Hele projektet +UpdateProjectDialogBox.For=For: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Omplanlæg tilbageværende arbejde efter +UpdateProjectDialogBox.SelectedTasks=\ Valgte opgaver +UpdateProjectDialogBox.SetZeroHundred=Juster procent fuldført i henhold til datoen +UpdateProjectDialogBox.SetZeroOrHundredOnly=Juster kun (og fuldfør) opgaver, der slutter ved datoen +UpdateProjectDialogBox.UpdateProject=Opdater projekt +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Opdater arbejde som udført frem til +UpdateTaskDialog.Actual=Faktisk +UpdateTaskDialog.Current=Nuværende +UpdateTaskDialog.UpdateTask=Opdater opgaver +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Denne dato findes allerde i tabellen. Vælg venligst en anden dato.  +ValueObjectForIntervalTable.ThisDateMustBeAfter=Denne dato skal være efter den forrige i tabellen. +ValueObjectForIntervalTable.ThisDateMustBeBefore=Denne dato skal være før den forrige i tabellen. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Du kan ikke fjerne den første dato i tabellen. +WelcomeDialog.WhatWouldYouLikeToDo=Hvad ønsker du at gøre: +WorkRangeException.EndMustBeAfterStart=Periodens sluttid skal være større end dens start +WorkRangeException.RangeIncomplete=En arbejdsperiode skal have både en start- og en slutdato +WorkRangeException.RangesCannotOverlap=Du må ikke oprette overlappende arbejdsperioder. +WorkRangeException.RangesMustBeOrdered=Starten af arbejdsperioden skal være senere end den foregående +tip.1.description= Du kan blive medlem af ProjectLibre fællesskabet på http://www.projectlibre.org. Vi har opdateringer, information og fællesskabsbegivenheder. +tip.1.name=ProjectLibre fællesskabsdeltagelse +tip.2.description= Du kan højreklikke på Gantt-kortet, regnearksceller, regnearksoverskrifter, og det øvre venstre hjørne af regnearket for at åbne kontekst-afhængige menuer til at tilpasse visningen. +tip.2.name=Rediger visninger +tip.3.description=Du kan bidrage til ProjectLibre! Vi leder efter oversættere og udviklere for at gøre ProjectLibre bedre og bedre. Kontakt partners@projectlibre.org. +tip.3.name=Bidrag til ProjectLibre +tip.4.description=Histogrammet og diagrammerne er dynamiske og afhænger af, hvilke opgaver du har valgt ovenfor. +tip.4.name=Dynamiske diagrammer +tip.5.description=Du kan redigere direkte på netværksdiagrammet (PERT diagram). +tip.5.name=Rediger netværksblokke +tip.6.description=Du kan indrykke og udjævne opgaver for at skabe et hierarki for dit projekt. Dette afspejles også i WBS-visningen. +tip.6.name=Lav et projekthieraki +tip.7.description=Du kan benytte musen til at linke opgaver, forlænge dem, markere dem som udført, flytte dem, eller opdele dem. +tip.7.name=Mus handlinger +tip.8.description=Normalt bør du beholde standarden FS (Finish-Start) som link mellem opgaver. Lejlighedsvis vil du måske have SS og FF, men SF er meget sjældne. Du kan ændre linktypen ved at klikke på den. Du kan også indstille en forsinkelse. +tip.8.name=Linktyper +tip.9.description=Det er altid en god ide at gemme en baseline i dit projekt. ProjectLibre lader dig gemme op til 11 af dem, som du så kan vise på Gantt-kortet og bruge på Earned Value Analysis. +tip.9.name=Baselines +tip.10.description=Du kan tilpasse udskriftved at zoome gantt-kortet ind/ud eller skjule kolonner. Benyt Forhåndsudskrift til at bekræfte. +tip.10.name=Printer til en side +tip.11.description=Du kan åbne filer skabt i Microsoft Project i ProjectLibre, og du kan også gemme dem i Microsoft's XML-format. +tip.11.name=MS Project kompabilitet +tip.12.description=ProjectLibre har masser af brugerdefinerede felter til rådighed. Prøv at højreklikke på et regneark og se. +tip.12.name=Brugerdefinerede felter +tip.13.description=Du kan tildele kalendere til opgaver, ressourcer, og projekter for at tage højde for ferie. +tip.13.name=Kalendere + +Text.badJavaVersion=Din Java version er "{0}". For at køre ProjectLibre, skal du bruge Java version 1.6 eller nyere. +Text.badJavaVendor=Din Java leverandør er "{0}". For at køre ProjectLibre, skal du benytte Sun Java implementationen. +Text.javaExecutable=Den registrerede Java Runtime benyttet er {0}.\nHvis du har en nyere version, kan du ændre den ved at redigere egenskaben\n"{1}" i den automatisk registrerede fil, "{2}".\nFor at tvinge automatisk registrering igen, kan du fjerne "{2}". + +Text.newVersion=Der er en nyere version {0} af ProjectLibre tilgængelig.\nDin nuværende version er {1}.\nØnsker du at gå til download-siden? + +TipOfTheDay.dialogTitle=Dagens tip +TipOfTheDay.didYouKnowText=Vidste du... +TipOfTheDay.showOnStartupText=Vis tips ved opstart +TipOfTheDay.previousTipText=< Tilbage +TipOfTheDay.nextTipText=Næste > +TipOfTheDay.closeText=Luk + +Warn.lockMessage = Projektet er allerede låst af {0}. Ønsker du at åbne det skrivebeskyttet? + +#added 14/2/08 +Filter.StartingWithinWeek=Starter inden for en uge +Filter.StartingWithinTwoWeeks=Starter inden for 2 uger +Filter.LateStarting=Sen start + +Warn.resourcePoolOpen=Du kan ikke åbne et andet projekt når ressourcepuljen er åben. +Warn.resourcePoolCannotOpen=Du kan ikke åbne ressourcepuljen når andre projekter er åbne. +Warn.fileNotFound=Fil ikke fundet + +Text.donateMessage=ProjectLibre er gratis. Der er ikke nogen overraskelser, og det sparer dig for de $999.99 som er listeprisen på kommerciel projektstyringssoftware. Vi beder dog vores brugere overveje at støtte os via PayPal. +Text.donateTitle=Støt ProjectLibre +Text.runsSinceMessage=Du har kørt ProjectLibre {0,number} gange siden {1,date,short} +Text.tryPODTitle=Prøv Projects On Demand + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=Vis ikke denne besked igen + +Warn.saveXML=XML-format bør kun anvendes når der skal udveksles med en anden applikation, da nogle data kan forsvinde.\nØnsker du at fortsætte? + +Text.rightClickForOptions=Højreklik for at vise valgmuligheder + + diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_el.properties b/projectlibre_core/src/com/projectlibre1/strings/client_el.properties new file mode 100644 index 0000000..ef146c6 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_el.properties @@ -0,0 +1,1254 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.    +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within  {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03A5\u03BB\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +#BAC=\u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03CC\u03C2 \u03BA\u03B1\u03C4\u03AC \u03C4\u03B7\u03BD \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 +#BCWP=\u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03A5\u03BB\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +#BCWS=\u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03A0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +#CPI=\u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2 \u0391\u03C0\u03CC\u03B4\u03BF\u03C3\u03B7\u03C2 \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +#CSI=  \u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +#CV=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +#CV=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7\u03C2 \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2  +#EAC=  \u0395\u03BA\u03C4\u03AF\u03BC\u03B7\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 +#SPI=\u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2 \u0391\u03C0\u03CC\u03B4\u03BF\u03C3\u03B7\u03C2 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 +#SV=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 +#SV=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7\u03C2 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 +#TCPI=\u0393\u03B9\u03B1 \u03C4\u03B7\u03BD \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 \u03C4\u03BF\u03C5 \u0394\u03B5\u03AF\u03BA\u03C4\u03B7 \u0391\u03C0\u03CC\u03B4\u03BF\u03C3\u03B7\u03C2 +#VAC=\u0391\u03BE\u03AF\u03B1 \u03BA\u03B1\u03C4\u03AC \u03C4\u03B7\u03BD \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 +#WBS=\u0394\u03BF\u03BC\u03AE \u0391\u03BD\u03AC\u03BB\u03C5\u03C3\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD +#RBS=\u0394\u03BF\u03BC\u03AE \u0391\u03BD\u03AC\u03BB\u03C5\u03C3\u03B7\u03C2 \u03A0\u03CC\u03C1\u03C9\u03BD + + + +# \u039F\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03B1 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03B5\u03B9 \u03BC\u03AD\u03C7\u03C1\u03B9 \u03C4\u03CE\u03C1\u03B1 \u03C5\u03B9\u03BF\u03B8\u03B5\u03C4\u03B7\u03B8\u03B5\u03AF (\u03B1\u03BB\u03C6\u03B1\u03B2\u03B7\u03C4\u03B9\u03BA\u03AC) +# Customer: \u03A0\u03B5\u03BB\u03AC\u03C4\u03B7\u03C2 +# Partner: \u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7\u03C2 +# Project: \u03AD\u03C1\u03B3\u03BF +# resources: \u03C0\u03CC\u03C1\u03BF\u03B9 +# view: \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE  + +AboutDialog.About=\u03A3\u03C7\u03B5\u03C4\u03B9\u03BA\u03AC  +AboutDialog.copyright=  \u03A0\u03BD\u03B5\u03C5\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u03B9\u03B4\u03B9\u03BF\u03BA\u03C4\u03B7\u03C3\u03AF\u03B1 2012 ProjectLibre Inc. +AccessControlPolicy.PUBLIC +AccessControlPolicy.RESTRICTED +AccrualType.End=\u039B\u03AE\u03BE\u03B7 +AccrualType.Prorated=\u0391\u03BD\u03B1\u03BB\u03BF\u03B3\u03B9\u03BA\u03CC\u03C2  +AccrualType.Start=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +AssignmentDialog.ShowingAllResources=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03C4\u03C9\u03BD \u03A0\u03CC\u03C1\u03C9\u03BD +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03BC\u03CC\u03BD\u03BF \u03C4\u03C9\u03BD \u03A0\u03CC\u03C1\u03C9\u03BD \u03C3\u03C4\u03B7\u03BD \u039F\u03BC\u03AC\u03B4\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +AssignmentDialog.none=(\u03BA\u03B1\u03BD\u03AD\u03BD\u03B1) +Bar.assignment=\u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +Bar.baseline=\u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C210 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C21 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C22 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C23 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C24 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C25 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C26 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C27 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C28 +Bar.baseline=  \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C29 +Bar.baseline=\u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C2 +Bar.critical=\u03BA\u03C1\u03AF\u03C3\u03B9\u03BC\u03BF\u03C2 +Bar.deadline=\u03C0\u03C1\u03BF\u03B8\u03B5\u03C3\u03BC\u03AF\u03B1 +Bar.external=\u03B5\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03CC\u03C2 +Bar.milestone=\u03BF\u03C1\u03CC\u03C3\u03B7\u03BC\u03BF +Bar.subproject=\u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF +Bar.summary=\u03C0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 +Bar.task=\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Bar.timesheet=\u03C6\u03CD\u03BB\u03BB\u03BF \u03BA\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03C7\u03C1\u03CC\u03BD\u03BF\u03C5 +Bar.totalSlack=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 +BarPanel.Shape=\u039C\u03BF\u03C1\u03C6\u03AE: +BaselineDialog.Baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C2: +BaselineDialog.For=\u0393\u03B9\u03B1: +BookingType.Committed=\u0394\u03B5\u03C3\u03BC\u03B5\u03C5\u03BC\u03AD\u03BD\u03BF +BookingType.Proposed=\u03A0\u03C1\u03BF\u03C4\u03B5\u03B9\u03BD\u03CC\u03BC\u03B5\u03BD\u03BF +ButtonText.Cancel=\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7 +ButtonText.Close=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF +ButtonText.IAccept=\u0391\u03C0\u03BF\u03B4\u03AD\u03C7\u03BF\u03BC\u03B1\u03B9 +ButtonText.OK=\u03B5\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9  +ButtonText.Open=\u0391\u03BD\u03BF\u03AF\u03B3\u03C9 +ButtonText.OpenCopy=\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1  \u03BC\u03CC\u03BD\u03BF \u03B3\u03B9\u03B1 \u0391\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7 +Calendar.24Hours=24 \u038F\u03C1\u03B5\u03C2 +Calendar.EditedWorkingHours=  \u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03BC\u03AD\u03BD\u03B5\u03C2 \u038F\u03C1\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +CalendarDialogBox.Wednesday=\u03A4\u03B5\u03C4\u03AC\u03C1\u03C4\u03B7 +CalendarDialogBox.September=\u03A3\u03B5\u03C0\u03C4\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.Seventeen=17:00  +CalculationDialogBox.Manual=\u0395\u03B3\u03C7\u03B5\u03B9\u03C1\u03AF\u03B4\u03B9\u03BF +Calendar.EditsToADayOfTheWeek=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03B5 \u03BC\u03B9\u03B1 \u03BC\u03AD\u03C1\u03B1 \u03C4\u03B7\u03C2 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1\u03C2 +CalendarDialogBox.HoursPerday=\u038F\u03C1\u03B5\u03C2 \u03B1\u03BD\u03AC \u03B7\u03BC\u03AD\u03C1\u03B1 +CalculationDialogBox.Prorated=\u0391\u03BD\u03B1\u03BB\u03BF\u03B3\u03B9\u03BA\u03CC\u03C2 +Calendar.EditsToAnIndividualDay=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C3\u03B5 \u03BC\u03B9\u03B1 \u03BC\u03B5\u03BC\u03BF\u03BD\u03C9\u03BC\u03AD\u03BD\u03B7 \u03B7\u03BC\u03AD\u03C1\u03B1 +CalendarDialogBox.DurationSettings=\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1\u03C2 +CalendarDialogBox.SetAsDefault=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C9\u03C2 \u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +CalendarDialogBox.HoursPerWeek=\u038F\u03C1\u03B5\u03C2 \u03B1\u03BD\u03AC \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1 +CalendarDialogBox.DaysPerMonth=\u0397\u03BC\u03AD\u03C1\u03B5\u03C2 \u03B1\u03BD\u03AC \u03BC\u03AE\u03BD\u03B1 +Calendar.ExceptionCircular=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03C9\u03C2 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC\u03C2 \u03BA\u03B1\u03B8\u03CE\u03C2 \u03B1\u03C5\u03C4\u03CC  \u03C4\u03BF \u03AF\u03B4\u03B9\u03BF \u03B5\u03BE\u03B1\u03C1\u03C4\u03AC\u03C4\u03B1\u03B9 \u03B1\u03C0\u03CC \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF +CalendarDialogBox.Monday=\u0394\u03B5\u03C5\u03C4\u03AD\u03C1\u03B1 +CalendarDialogBox.Tuesday=\u03A4\u03C1\u03AF\u03C4\u03B7 +CalendarDialogBox.Thursday=\u03A0\u03AD\u03BC\u03C0\u03C4\u03B7 +CalendarDialogBox.Friday=\u03A0\u03B1\u03C1\u03B1\u03C3\u03BA\u03B5\u03C5\u03AE +CalendarDialogBox.Saturday=\u03A3\u03AC\u03B2\u03B2\u03B1\u03C4\u03BF +CalendarDialogBox.Sunday=\u039A\u03C5\u03C1\u03B9\u03B1\u03BA\u03AE +CalendarDialogBox.January=\u0399\u03B1\u03BD\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.February=\u03A6\u03B5\u03B2\u03C1\u03BF\u03C5\u03AC\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.March=\u039C\u03AC\u03C1\u03C4\u03B9\u03BF\u03C2 +CalendarDialogBox.April=\u0391\u03C0\u03C1\u03AF\u03BB\u03B9\u03BF\u03C2 +CalendarDialogBox.August=\u0391\u03CD\u03B3\u03BF\u03C5\u03C3\u03C4\u03BF\u03C2 +CalendarDialogBox.October=\u039F\u03BA\u03C4\u03CE\u03B2\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.November=\u039D\u03BF\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.December=\u0394\u03B5\u03BA\u03AD\u03BC\u03B2\u03C1\u03B9\u03BF\u03C2 +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Calendar.NightShift=\u0392\u03C1\u03B1\u03B4\u03B9\u03BD\u03AE \u0392\u03AC\u03C1\u03B4\u03B9\u03B1 +Calendar.Nonworking=\u039C\u03B7 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03B9\u03BA\u03CC +Calendar.Standard=\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03CC +Calendar.Unmodified=\u039C\u03B7 \u03A4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03BF +CalendarDialogBox.May=\u039C\u03AC\u03B9\u03BF\u03C2 +CalendarDialogBox.June=\u0399\u03BF\u03CD\u03BD\u03B9\u03BF\u03C2 +CalendarDialogBox.July=\u0399\u03BF\u03CD\u03BB\u03B9\u03BF\u03C2 +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=\u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03AD\u03C4\u03BF\u03C2 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2 \u03B3\u03B9\u03B1 \u03B1\u03C1\u03AF\u03B8\u03BC\u03B7\u03C3\u03B7 FV +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=\u0391\u03C5\u03C4\u03AD\u03C2 \u03BF\u03B9 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03B1\u03C6\u03BF\u03C1\u03BF\u03CD\u03BD \u03BC\u03CC\u03BD\u03BF \u03C4\u03B9\u03C2 \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B5\u03C2 +CalculationDialogBox.AndMoveStartOfRemaining=\u039A\u03B1\u03B9 \u03BC\u03B5\u03C4\u03B1\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03C4\u03B7\u03C2 \u03C5\u03C0\u03CC\u03BB\u03BF\u03B9\u03C0\u03B7\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C3\u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 +CalculationDialogBox.AndMoveEndOfCompleted=\u039A\u03B1\u03B9 \u03BC\u03B5\u03C4\u03B1\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BB\u03AE\u03BE\u03B7 \u03C4\u03B7\u03C2 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03B7\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C3\u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 +CalculationDialogBox.MoveEndOfCompleteParts=\u039C\u03B5\u03C4\u03B1\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C4\u03AD\u03BB\u03BF\u03C2 \u03C4\u03B7\u03C2 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03B7\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C0\u03BF\u03C5 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B5\u03C4\u03AC \u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 \u03C0\u03AF\u03C3\u03C9 \u03C3\u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 +Calendar.Working=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Category.assignmentEntrySpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC  \u03A6\u03CD\u03BB\u03BB\u03BF \u0395\u03B9\u03C3\u03CC\u03B4\u03BF\u03C5 \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 +Category.assignmentSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 +Category.availabilitySpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2 +Category.costRates=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03AC \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Category.dependencySpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 +CalculationDialogBox.Automatic=\u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03BF +CalculationDialogBox.Calculate=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03AF\u03C3\u03C4\u03B5 +Category.distributionSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u03A7\u03C1\u03AE\u03C3\u03B7\u03C2 +CalculationDialogBox.Calculation=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03CC\u03C2 +CalculationDialogBox.EarnedValue=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u03B1\u03BE\u03AF\u03B1 +Category.projectSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0388\u03C1\u03B3\u03BF\u03C5 +Category.resourceAssignmentSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 \u03A0\u03CC\u03C1\u03C9\u03BD +Category.resourceSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u03A0\u03CC\u03C1\u03C9\u03BD +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC \u03A6\u03CD\u03BB\u03BB\u03B1 \u03A0\u03CC\u03C1\u03C9\u03BD +Category.taskAssignmentSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Category.taskSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Category.taskSpreadsheet;projectSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC \u03A6\u03CD\u03BB\u03BB\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03BA\u03B1\u03B9 \u0388\u03C1\u03B3\u03BF\u03C5 +CalculationDialogBox.End=\u039B\u03AE\u03BE\u03B7 +Category.timesheetSpreadsheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 +ChangeWorkingTimeDialogBox.BasedOn=\u0392\u03B1\u03C3\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03C3\u03B5 +ChangeWorkingTimeDialogBox.ChangeWorkingTime=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +ChangeWorkingTimeDialogBox.For=\u0393\u03B9\u03B1: +ChangeWorkingTimeDialogBox.From=\u0391\u03C0\u03CC: +ChangeWorkingTimeDialogBox.ModificationMessage="blue">\u039F\u03B9 \u03C4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2 \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03B5\u03C0\u03B7\u03C1\u03B5\u03AC\u03B6\u03BF\u03C5\u03BD \u03CC\u03BB\u03B1 \u03C4\u03B1 \u03AD\u03C1\u03B3\u03B1 \u03C0\u03BF\u03C5 \u03C4\u03BF \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03BF\u03CD\u03BD. +ChangeWorkingTimeDialogBox.New=\u039D\u03AD\u03BF\u2026 +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=\u039C\u03B7 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03CE\u03C1\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +ChangeWorkingTimeDialogBox.NonWorkingTime=\u039C\u03B7 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03C7\u03C1\u03CC\u03BD\u03BF\u03C2 +ChangeWorkingTimeDialogBox.NotEdiableMessage="red">\u0391\u03C5\u03C4\u03CC \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03BF \u03BC\u03CC\u03BD\u03BF \u03BA\u03B1\u03C4\u03AC \u03C4\u03B7\u03BD \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C4\u03BF\u03C5 \u039A\u03CD\u03C1\u03B9\u03BF\u03C5 \u0388\u03C1\u03B3\u03BF\u03C5 (\u0394\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD). +ChangeWorkingTimeDialogBox.Options=\u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2\u2026 +ChangeWorkingTimeDialogBox.To=\u03A0\u03C1\u03BF\u03C2\: +ChangeWorkingTimeDialogBox.UseDefault=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE\u03C2 +ChartLegend.ResourceFilter=\u03A6\u03AF\u03BB\u03C4\u03C1\u03BF \u03A0\u03CC\u03C1\u03C9\u03BD: +ClientRole.Inactive=- +ClientRole.ProjectManager=\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2 \u0388\u03C1\u03B3\u03BF\u03C5 +ClientRole.TeamMember=\u039C\u03AD\u03BB\u03BF\u03C2 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2 +ClientRole.TeamResource=\u03A0\u03CC\u03C1\u03BF\u03C2 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2 +ColumnDialog.InsertColumn=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03A3\u03C4\u03AE\u03BB\u03B7\u03C2 +Command.UpateProject=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5 +Command.UpdateTasks=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD +ConstraintType.ALAP=\u038C\u03C3\u03BF \u03C4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03BD \u03A0\u03B9\u03BF \u0391\u03C1\u03B3\u03AC +ConstraintType.ASAP=\u038C\u03C3\u03BF \u03C4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03BD \u03C0\u03B9\u03BF \u03A3\u03CD\u03BD\u03C4\u03BF\u03BC\u03B1 +ConstraintType.FNET=\u039B\u03AE\u03BE\u03B7 \u038C\u03C7\u03B9 \u039D\u03C9\u03C1\u03AF\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC +ConstraintType.FNLT=\u039B\u03AE\u03BE\u03B7 \u038C\u03C7\u03B9 \u0391\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC +ConstraintType.HAMM=\u0391\u03B9\u03CE\u03C1\u03B1 +ConstraintType.MFO=\u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03A4\u03B5\u03BB\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9  +ConstraintType.MSO=\u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u039E\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03B9  +ConstraintType.SNET=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u038C\u03C7\u03B9 \u039D\u03C9\u03C1\u03AF\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC +ConstraintType.SNLT=  \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u038C\u03C7\u03B9 \u0391\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC A +CostRateIndex.B=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC B +CostRateIndex.C=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC C +CostRateIndex.D=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC D +CostRateIndex.E=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC E +Date.NoEnd=\u03BA\u03B1\u03B9 \u03BC\u03B5\u03C4\u03AC +# NA=\u039C\u03B7 \u0395\u03C6\u03B1\u03C1\u03BC\u03CC\u03C3\u03B9\u03BC\u03BF +Date.NoStart=NA +Date.Quarter=Q +Date.Half=H +Date.Quarter=Qtr +Date.Half=\u039C\u03B9\u03C3\u03CC +DefaultFrameManager.Project=\u0388\u03C1\u03B3\u03BF +DelegateTaskDialog.DelegateTask=\u039A\u03AC\u03BD\u03C4\u03B5 \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=\u039B\u03AE\u03BE\u03B7 \u03AD\u03C9\u03C2 \u039B\u03AE\u03BE\u03B7 +DependencyType.longFS=\u039B\u03AE\u03BE\u03B7  \u03AD\u03C9\u03C2 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +DependencyType.longSF=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u03AD\u03C9\u03C2 \u039B\u03AE\u03BE\u03B7 +DependencyType.longSS=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u03AD\u03C9\u03C2 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% \u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF +EarnedValueMethodType.PhysicalPercentComplete=\u03A6\u03C5\u03C3\u03B9\u03BA\u03AE % \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 +ExpenseType.CAPITALIZE=\u039A\u03B5\u03C6\u03B1\u03BB\u03B1\u03B9\u03BF\u03C0\u03BF\u03B9\u03CE +ExpenseType.DIRECT=\u0386\u03BC\u03B5\u03C3\u03BF +ExpenseType.EXPENSE=\u0394\u03B1\u03C0\u03AC\u03BD\u03B7 +ExpenseType.INDIRECT=\u0388\u03BC\u03BC\u03B5\u03C3\u03BF +ExpenseType.NONE=\u039A\u03B1\u03BD\u03AD\u03BD\u03B1 +ExpenseType.OVERHEAD=\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03B9\u03BA\u03AE \u0394\u03B1\u03C0\u03AC\u03BD\u03B7 +Field.accessControlPolicy=\u039F\u03BC\u03AC\u03B4\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.accrueAt=\u03A3\u03C5\u03C3\u03C3\u03CE\u03C1\u03B5\u03C5\u03C3\u03B7 \u03C3\u03C4\u03BF +Field.actualCost=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.actualDuration=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.actualFinish=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u039B\u03AE\u03BE\u03B7 +Field.actualFixedCost=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC \u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03CC \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.actualOvertimeCost=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03B9\u03B1\u03BA\u03CC \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.actualOvertimeWork=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03B9\u03B1\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.actualOvertimeWorkProtected=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u03A0\u03C1\u03BF\u03C3\u03C4\u03B1\u03C4\u03B5\u03C5\u03BC\u03AD\u03BD\u03B7 \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03B9\u03B1\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1  +Field.actualStart=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.actualWork=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.actualWorkProtected=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AE \u03A0\u03C1\u03BF\u03C3\u03C4\u03B1\u03C4\u03B5\u03C5\u03BC\u03AD\u03BD\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1  +Field.acwp=ACWP +Field.assignedRate=\u039A\u03B1\u03B8\u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC  +Field.assignment=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +Field.assignmentEntryAssigned=\u039A\u03B1\u03B8\u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF +Field.assignmentEntryName=\u2018\u039F\u03BD\u03BF\u03BC\u03B1 +Field.assignmentEntryRate=\u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +Field.assignmentProjectName=\u0388\u03C1\u03B3\u03BF +Field.assignmentResourceId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03CC\u03C1\u03BF\u03C5 +Field.assignmentResourceName=\u03A0\u03CC\u03C1\u03BF\u03C2 +Field.assignmentTaskId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.assignmentTaskName=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.assignmentUnits=\u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 +Field.availableFrom=\u0394\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u0391\u03C0\u03CC +Field.availableTo=\u0394\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u03A0\u03C1\u03BF\u03C2 +Field.bac=BAC +Field.baseCalendar=\u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC\u03C2 +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Field.baseline#Duration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Field.baseline#Finish=\u039B\u03AE\u03BE\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Field.baseline#Start=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Field.baseline#Work=  \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=\u038C\u03C6\u03B5\u03BB\u03BF\u03C2 +Field.bookingType=\u03A4\u03CD\u03C0\u03BF\u03C2 \u039A\u03C1\u03AC\u03C4\u03B7\u03C3\u03B7\u03C2 +Field.budgetStatusIndicator=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03BF\u03CD +Field.cachedEnd=\u039B\u03AE\u03BE\u03B7 +Field.cachedStart=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.canLevel=\u0395\u03C0\u03AF\u03C0\u03B5\u03B4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2 (?) +Field.code=\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 +Field.complete=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF +Field.completeThrough=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03C4\u03B5 \u03BC\u03AD\u03C3\u03C9 +Field.completedThrough=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF \u03BC\u03AD\u03C3\u03C9 +Field.confirmed=\u0395\u03C0\u03B9\u03B2\u03B5\u03B2\u03B1\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF +Field.constraintDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03A0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03BF\u03CD +Field.constraintType=\u03A4\u03CD\u03C0\u03BF\u03C2 \u03A0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03BF\u03CD +Field.contact=\u0395\u03C0\u03B1\u03C6\u03AE +Field.cost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.costPerUse=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u0391\u03BD\u03AC \u03A7\u03C1\u03AE\u03C3\u03B7 +Field.costRateTable=\u03A0\u03AF\u03BD\u03B1\u03BA\u03B1\u03C2 \u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03BF\u03CD \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Field.costVariance=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.cpi=CPI +Field.created=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03B8\u03B7\u03BA\u03B5 +Field.creationDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\u03C2 \u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1\u03C2 +Field.critical=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03BF +Field.csi=CSI +Field.cumulativeCost=\u0391\u03B8\u03C1\u03BF\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC  \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.cumulativePercentComplete=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF \u0391\u03B8\u03C1\u03BF\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC  +FieldDialog.ResourceInformation=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u03A0\u03CC\u03C1\u03BF\u03C5 +Field.cumulativeWork=\u0391\u03B8\u03C1\u03BF\u03B9\u03C3\u03C4\u03B9\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.currentDate=\u03A4\u03C1\u03AD\u03C7\u03BF\u03C5\u03C3\u03B1 \u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 +Field.customCost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2# +Field.customDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1# +Field.customDuration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1# +Field.customFinish=\u039B\u03AE\u03BE\u03B7# +Field.customFlag=\u03A3\u03B7\u03BC\u03B1\u03AF\u03B1# +Field.customNumber=\u039D\u03BF\u03CD\u03BC\u03B5\u03C1\u03BF# +Field.customOutlineCode=\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 \u03B4\u03B9\u03AC\u03C1\u03B8\u03C1\u03C9\u03C3\u03B7\u03C2# +Field.customStart=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7# +Field.customText=\u039A\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF# +Field.cv=CV +Field.cvPercent=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC CV +Field.deadline=\u03A0\u03C1\u03BF\u03B8\u03B5\u03C3\u03BC\u03AF\u03B1 +Field.debugDependencyOrder=\u03A3\u03B5\u03B9\u03C1\u03AC \u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 +Field.delay=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 \u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7\u03C2 +Field.delegatedTo=\u0391\u03BD\u03B1\u03C4\u03AD\u03B8\u03B7\u03BA\u03B5 \u03C3\u03B5 +Field.dependencyDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 +Field.dependencyStart=\u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2 +Field.dependencyType=\u03A4\u03CD\u03C0\u03BF\u03C2 +Field.dirty=\u0392\u03C1\u03CE\u03BC\u03B9\u03BA\u03BF +Field.duration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.durationVariance=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1\u03C2 +Field.eac=EAC +Field.earliestStartingTask=\u039D\u03C9\u03C1\u03AF\u03C4\u03B5\u03C1\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.earlyFinish=\u03A0\u03C1\u03CC\u03C9\u03C1\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.earlyStart=\u03A0\u03C1\u03CC\u03C9\u03C1\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.earnedValueMethod=\u039C\u03AD\u03B8\u03BF\u03B4\u03BF\u03C2 \u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7\u03C2 \u0391\u03BE\u03AF\u03B1\u03C2 +Field.effectiveDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0399\u03C3\u03C7\u03CD\u03BF\u03C2 +Field.effortDriven=\u0392\u03AC\u03C3\u03B5\u03B9 \u03C0\u03C1\u03BF\u03C3\u03C0\u03AC\u03B8\u03B5\u03B9\u03B1\u03C2 +Field.elapsedDuration=\u03A0\u03B5\u03C0\u03B5\u03C1\u03B1\u03C3\u03BC\u03AD\u03BD\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.emailAddress=\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u0397\u03BB\u03B5\u03BA\u03C4\u03C1\u03BF\u03BD\u03B9\u03BA\u03BF\u03CD \u03A4\u03B1\u03C7\u03C5\u03B4\u03C1\u03BF\u03BC\u03B5\u03AF\u03BF\u03C5 +Field.estimated=\u0395\u03BA\u03C4\u03B9\u03BC\u03CE\u03BC\u03B5\u03BD\u03BF +Field.expectedDuration=\u0391\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03BC\u03B5\u03BD\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.expectedFinish=\u0391\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03BC\u03B5\u03BD\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.expectedStart=\u0391\u03BD\u03B1\u03BC\u03B5\u03BD\u03CC\u03BC\u03B5\u03BD\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.expenseType=\u03A4\u03CD\u03C0\u03BF\u03C2 \u0394\u03B1\u03C0\u03AC\u03BD\u03B7\u03C2 +Field.externalId=\u0395\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AE \u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +Field.externalTask=\u0395\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.finish=\u039B\u03AE\u03BE\u03B7 +Field.finishDate=\u039B\u03AE\u03BE\u03B7 +Field.finishOffset=\u039B\u03AE\u03BE\u03B7 \u0391\u03BD\u03C4\u03B9\u03C3\u03C4\u03AC\u03B8\u03BC\u03B9\u03C3\u03B7\u03C2 +Field.finishSlack=\u039B\u03AE\u03BE\u03B7 \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1\u03C2  +Field.finishVariance=\u039B\u03AE\u03BE\u03B7 \u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7\u03C2 +Field.fixedCost=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03CC \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.fixedCostAccrual=\u03A3\u03C5\u03C3\u03C3\u03CE\u03C1\u03B5\u03C5\u03C3\u03B7 \u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03BF\u03CD \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Field.forward=\u03A0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u03A0\u03C1\u03BF\u03CE\u03B8\u03B7\u03C3\u03B7 +Field.freeSlack=\u0395\u03BB\u03B5\u03CD\u03B8\u03B5\u03C1\u03B7 \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 +Field.ganttSnapshot=Gantt +Field.generic=\u0393\u03B5\u03BD\u03B9\u03BA\u03CC +Field.group=\u039F\u03BC\u03AC\u03B4\u03B1 +Field.groupBySummary=\u039F\u03BC\u03B1\u03B4\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC \u03C0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 +Field.hideBar=\u0391\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03BC\u03C0\u03AC\u03C1\u03B1\u03C2 +Field.hyperlink=\u03A5\u03C0\u03B5\u03C1\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03BC\u03BF\u03C2 +Field.hyperlinkAddress=\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03A5\u03C0\u03B5\u03C1\u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5 +Field.hyperlinkHref=\u03A5\u03C0\u03B5\u03C1\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03BC\u03BF\u03C2 Href +Field.hyperlinkSubAddress=\u03A5\u03C0\u03BF\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03A5\u03C0\u03B5\u03C1\u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5 +# ID=\u0391\u03BD\u03B1\u03B3\u03BD\u03C9\u03C1\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC +Field.id=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +Field.ignoreResourceCalendar=\u0391\u03B3\u03BD\u03BF\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03A0\u03CC\u03C1\u03C9\u03BD +Field.inactive=\u0391\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03CC\u03C2  +Field.indicators=\u0394\u03B5\u03AF\u03BA\u03C4\u03B5\u03C2 +Field.initials=\u0391\u03C1\u03C7\u03B9\u03BA\u03AC  +Field.justModified=\u039C\u03CC\u03BB\u03B9\u03C2 \u03BC\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03B9\u03AE\u03B8\u03B7\u03BA\u03B5 +Field.lag=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 +Field.lastModificationDate=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03BC\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 +Field.lastTimesheetUpdate=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03C4\u03BF\u03C5 \u03A6\u03CD\u03BB\u03BF\u03C5 \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 +Field.lateFinish=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03B5\u03C1\u03B7\u03BC\u03AD\u03BD\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.lateStart=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03B5\u03C1\u03B7\u03BC\u03AD\u03BD\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.latestFinishingTask=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u039B\u03AE\u03BE\u03B7\u03C2 +Field.levelAssignments=\u0391\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 \u0395\u03C0\u03B9\u03C0\u03AD\u03B4\u03BF\u03C5 +Field.levelingCanSplit=\u0397 \u0399\u03C3\u03BF\u03C3\u03C4\u03AC\u03B8\u03BC\u03B9\u03C3\u03B7 \u039C\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03A7\u03C9\u03C1\u03B9\u03C3\u03C4\u03B5\u03AF +Field.levelingDelay=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 \u0399\u03C3\u03BF\u03C3\u03C4\u03AC\u03B8\u03BC\u03B9\u03C3\u03B7\u03C2 +Field.linkedFields=\u03A3\u03C5\u03BD\u03B4\u03B5\u03B4\u03B5\u03BC\u03AD\u03BD\u03B1 \u03A0\u03B5\u03B4\u03AF\u03B1 +Field.manager=\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2 +Field.markTaskAsMilestone=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C9\u03C2 \u03BF\u03C1\u03CC\u03C3\u03B7\u03BC\u03BF +Field.marked=\u03A3\u03B7\u03BC\u03B5\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF\u03C2 +Field.materialLabel=\u0395\u03C4\u03B9\u03BA\u03AD\u03C4\u03B1 \u03A5\u03BB\u03B9\u03BA\u03BF\u03CD +Field.maximumUnits=\u039C\u03AD\u03B3\u03B9\u03C3\u03C4\u03B5\u03C2 \u03BC\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +Field.milestone=\u039F\u03C1\u03CC\u03C3\u03B7\u03BC\u03BF +Field.name=\u2018\u039F\u03BD\u03BF\u03BC\u03B1 +Field.negativeSlack=\u0391\u03C1\u03BD\u03B7\u03C4\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 +Field.netPresentValue=\u039A\u03B1\u03B8\u03B1\u03C1\u03AE \u03A0\u03B1\u03C1\u03BF\u03CD\u03C3\u03B1 \u0391\u03BE\u03AF\u03B1 +Field.networkSnapshot=\u0394\u03AF\u03BA\u03C4\u03C5\u03BF +Field.notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +Field.objects=\u0391\u03BD\u03C4\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03B1 +Field.optimisticDuration=\u0391\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.optimisticFinish=\u0391\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.optimisticStart=\u0391\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.outlineLevel=\u0395\u03C0\u03AF\u03C0\u03B5\u03B4\u03BF \u03B4\u03B9\u03AC\u03C1\u03B8\u03C1\u03C9\u03C3\u03B7\u03C2 +Field.outlineNumber=\u0391\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 \u03B4\u03B9\u03AC\u03C1\u03B8\u03C1\u03C9\u03C3\u03B7\u03C2 +Field.overallocated=\u03A5\u03C0\u03B5\u03C1-\u03BA\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03BF +Field.overallocation=\u03A5\u03C0\u03B5\u03C1-\u03BA\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE +Field.overtimeCost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1\u03C2 +Field.overtimeRate=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1\u03C2 +Field.overtimeWork=\u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1 +Field.parentId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u0393\u03BF\u03BD\u03AD\u03B1 +Field.partner=\u03C3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7\u03C2 +Field.peak=\u039A\u03BF\u03C1\u03C5\u03C6\u03AE +Field.peakUnits=\u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 \u039A\u03BF\u03C1\u03C5\u03C6\u03AE\u03C2 +Field.pendingTimesheetUpdate=\u0391\u03C0\u03B1\u03B9\u03C4\u03B5\u03AF\u03C4\u03B1\u03B9 \u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 +Field.percentAllocation=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 +Field.percentComplete=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7\u03C2 +Field.percentWorkComplete=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.pessimisticDuration=\u0391\u03C0\u03B1\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.pessimisticFinish=\u0391\u03C0\u03B1\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.pessimisticStart=\u0391\u03C0\u03B1\u03B9\u03C3\u03B9\u03CC\u03B4\u03BF\u03BE\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.phonetics=\u03A6\u03C9\u03BD\u03B7\u03C4\u03B9\u03BA\u03AE +Field.physicalPercentComplete=\u03A6\u03C5\u03C3\u03B9\u03BA\u03CC \u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7\u03C2 +Field.predecessorId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03C1\u03BF\u03BA\u03B1\u03C4\u03CC\u03C7\u03BF\u03C5 +Field.predecessorName=\u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03C2 +Field.predecessors=\u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 +Field.preleveledFinish=\u03A0\u03C1\u03BF \u0399\u03C3\u03BF\u03C3\u03C4\u03B1\u03B8\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u039B\u03AE\u03BE\u03B7 +Field.preleveledStart=\u03A0\u03C1\u03BF \u0399\u03C3\u03BF\u03C3\u03C4\u03B1\u03B8\u03BC\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.priority=\u03A0\u03C1\u03BF\u03C4\u03B5\u03C1\u03B1\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1 +Field.project=\u0388\u03C1\u03B3\u03BF +Field.projectDivision=\u03A4\u03BC\u03AE\u03BC\u03B1 +Field.projectGroup=\u039F\u03BC\u03AC\u03B4\u03B1 +Field.projectId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.projectStatus=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.projectType=\u03A4\u03CD\u03C0\u03BF\u03C2 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.rate=\u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +Field.rbsCode=RBS +Field.readOnlyDuration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.recurring=\u0395\u03C0\u03B1\u03BD\u03B1\u03BB\u03B1\u03BC\u03B2\u03B1\u03BD\u03CC\u03BC\u03B5\u03BD\u03BF\u03C2 +Field.referringSubprojectTaskDependencyDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 \u03A5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF\u03C5 +Field.regularWork=\u03A4\u03B1\u03BA\u03C4\u03B9\u03BA\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.remainingAvailability=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 +Field.remainingCost=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03BF \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Field.remainingDuration=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Field.remainingOvertimeCost=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03BF \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1\u03C2 +Field.remainingOvertimeWork=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1 +FieldDialog.TaskInformation=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.remainingWork=\u03A5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +# R/D is an abbreviation for Request / Demand; a resource is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourceGroup=\u039F\u03BC\u03AC\u03B4\u03B1 \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourceId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03CC\u03C1\u03BF\u03C5 +Field.resourceInitials=\u0391\u03C1\u03C7\u03B9\u03BA\u03AC \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourceNames=\u039F\u03BD\u03CC\u03BC\u03B1\u03C4\u03B1 \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourcePhonetics=\u03A6\u03C9\u03BD\u03B7\u03C4\u03B9\u03BA\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourcePool=\u0394\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD +Field.resourceType=\u03A4\u03CD\u03C0\u03BF\u03C2 +Field.responsePending=\u0391\u03C0\u03AC\u03BD\u03C4\u03B7\u03C3\u03B7 \u03C3\u03B5 \u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE +Field.resume=\u03A3\u03C5\u03BD\u03AD\u03C7\u03B9\u03C3\u03B7 +Field.risk=\u03A1\u03AF\u03C3\u03BA\u03BF +Field.rollup=\u03A3\u03C5\u03B3\u03BA\u03AD\u03BD\u03C4\u03C1\u03C9\u03C3\u03B7 +Field.scheduleStatusIndicator=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 +Field.schedulingMethod=\u039C\u03AD\u03B8\u03BF\u03B4\u03BF\u03C2 \u03A0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03BF\u03CD +Field.showProjectResourcesOnly=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B5 \u03BC\u03CC\u03BD\u03BF \u03C4\u03BF\u03C5\u03C2 \u03A0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03C4\u03BF\u03C5 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.spi=SPI +Field.standardRate=\u03A4\u03C5\u03C0\u03B9\u03BA\u03AE \u03A4\u03B9\u03BC\u03AE +Field.start=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.startDate=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 +Field.startOffset=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u0391\u03BD\u03C4\u03B9\u03C3\u03C4\u03AC\u03B8\u03BC\u03B9\u03C3\u03B7\u03C2 +Field.startSlack=  \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1\u03C2 +Field.startVariance=  \u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7\u03C2 +Field.status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 +Field.statusDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 +Field.statusIndicator=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 +Field.statusTaskIndicator=\u0394\u03B5\u03AF\u03BA\u03C4\u03B7\u03C2 \u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.stop=\u03A0\u03B1\u03CD\u03C3\u03B7 +Field.subprojectFile=\u0391\u03C1\u03C7\u03B5\u03AF\u03BF \u03A5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF\u03C5 +Field.subprojectOf=\u03A5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u03A4\u03BF\u03C5 +Field.subprojectReadOnly=\u03A5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u039C\u03CC\u03BD\u03BF \u03B3\u03B9\u03B1 \u0391\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7 +Field.successorId=\u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u0394\u03B9\u03B1\u03B4\u03CC\u03C7\u03BF\u03C5 +Field.successorName=\u0394\u03B9\u03AC\u03B4\u03BF\u03C7\u03BF\u03C2 +Field.successors=\u0394\u03B9\u03AC\u03B4\u03BF\u03C7\u03BF\u03B9 +Field.summary=\u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 +Field.summaryProgress=\u03A0\u03C1\u03CC\u03BF\u03B4\u03BF\u03C2 \u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7\u03C2 +Field.suprojectReadOnly=\u03A5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u039C\u03CC\u03BD\u03BF \u03B3\u03B9\u03B1 \u0391\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7 +Field.sv=SV +Field.svPercent=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC SV +Field.taskCalendar=\u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.taskId=\u03A4\u03B1\u03C5\u03C4\u03BF\u03C4\u03B7\u03C4\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.taskName=\u038C\u03BD\u03BF\u03BC\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.taskOutlineNumber=\u0391\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 \u0394\u03B9\u03AC\u03C1\u03B8\u03C1\u03C9\u03C3\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2  +Field.taskSummaryName=\u038C\u03BD\u03BF\u03BC\u03B1 \u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.taskType=\u03A4\u03CD\u03C0\u03BF\u03C2 +Field.tcpi=TCPI +Field.teamStatusPending=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2 \u03C3\u03B5 \u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE +Field.textAbove=\u039A\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF \u03A0\u03B1\u03C1\u03B1\u03C0\u03AC\u03BD\u03C9 +Field.timesheetFinish=\u039B\u03AE\u03BE\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 +Field.timesheetStart=\u0388\u03BD\u03B1\u03C1\u03BE\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 +FieldDialog.document=\u03B1\u03C1\u03C7\u03B5\u03AF\u03BF: +Field.timesheetStatus=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 +Field.timesheetStatusName=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 +Field.totalSlack=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 +Field.totalSlackEnd=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 \u039B\u03AE\u03BE\u03B7  +Field.totalSlackStart=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7  +Field.uniqueId=\u039C\u03BF\u03BD\u03B1\u03B4\u03B9\u03BA\u03AE \u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +Field.uniqueIdPredecessors=\u039C\u03BF\u03BD\u03B1\u03B4\u03B9\u03BA\u03AE \u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03C1\u03BF\u03BA\u03B1\u03C4\u03CC\u03C7\u03C9\u03BD +Field.uniqueIdSuccessors=\u039C\u03BF\u03BD\u03B1\u03B4\u03B9\u03BA\u03AE \u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1  \u0394\u03B9\u03B1\u03B4\u03CC\u03C7\u03C9\u03BD +Field.unitAvailability=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 \u039C\u03BF\u03BD\u03AC\u03B4\u03B1\u03C2 +Field.updateNeeded=\u0391\u03C0\u03B1\u03B9\u03C4\u03B5\u03AF\u03C4\u03B1\u03B9 \u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 +Field.userAccount=\u039B\u03BF\u03B3\u03B1\u03C1\u03B9\u03B1\u03C3\u03BC\u03CC\u03C2 \u03A7\u03C1\u03AE\u03C3\u03C4\u03B7 +Field.userRole=\u03A1\u03CC\u03BB\u03BF\u03C2 \u0388\u03C1\u03B3\u03BF\u03C5 +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=WBS \u0393\u03BF\u03BD\u03AD\u03B1\u03C2 +Field.wbsParentName=WBS \u0393\u03BF\u03BD\u03AD\u03B1\u03C2 +Field.wbsPredecessors=WBS \u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 +Field.wbsSuccessors=WBS \u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 +Field.work=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Field.workAvailability=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.workContour=\u03A0\u03B5\u03C1\u03AF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Field.workVariance=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=\u03A3\u03C7\u03B5\u03B4\u03B9\u03B1\u03C3\u03C4\u03AE\u03C2 Gnome +File.projects=\u0388\u03C1\u03B3\u03B1 +File.projity=ProjectLibre +Filter.CompletedTasks=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Filter.CostOverbudgetTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 \u03A5\u03C0\u03B5\u03C1 \u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03BF\u03CD  +Filter.CriticalTasks=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Filter.DateRange=\u0395\u03CD\u03C1\u03BF\u03C2 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\u03C2 +Filter.Flag=\u03A3\u03B7\u03BC\u03B1\u03AF\u03B1 1 +Filter.Flag=\u03A3\u03B7\u03BC\u03B1\u03AF\u03B1 2 +Filter.Flag=\u03A3\u03B7\u03BC\u03B1\u03AF\u03B1 3 +Filter.InProgressAssignments=\u0391\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 \u03A3\u03B5 \u0395\u03BE\u03AD\u03BB\u03B9\u03BE\u03B7 +Filter.InProgressTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03A3\u03B5 \u0395\u03BE\u03AD\u03BB\u03B9\u03BE\u03B7 +Filter.IncompleteTasks=\u0397\u03BC\u03B9\u03C4\u03B5\u03BB\u03B5\u03AF\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Filter.LateOrOverbudgetTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03BA\u03B1\u03B8\u03C5\u03C3\u03C4\u03B5\u03C1\u03B7\u03BC\u03AD\u03BD\u03B5\u03C2 / \u03C0\u03AC\u03BD\u03C9 \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03CC  +Filter.Milestones=\u039F\u03C1\u03CC\u03C3\u03B7\u03BC\u03B1 +Filter.MyDelegatedTasks=\u039F\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03BC\u03BF\u03C5 \u03AD\u03C7\u03BF\u03C5\u03BD \u03B1\u03BD\u03B1\u03C4\u03B5\u03B8\u03B5\u03AF +Filter.MyTasks=\u039F\u03B9 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03BC\u03BF\u03C5 +Filter.None=\u03A7\u03C9\u03C1\u03AF\u03C2 \u03A6\u03AF\u03BB\u03C4\u03C1\u03BF +Filter.NormalTasks=\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AD\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Filter.ResourcesMaterial=\u03A0\u03CC\u03C1\u03BF\u03B9 \u03A5\u03BB\u03B9\u03BA\u03CE\u03BD +Filter.ResourcesMe=\u0395\u03BC\u03AD\u03BD\u03B1 +Filter.ResourcesWork=\u03A0\u03CC\u03C1\u03BF\u03B9 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Filter.SlippedTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03BF\u03C5\u03BD \u03BF\u03BB\u03B9\u03C3\u03B8\u03AE\u03C3\u03B5\u03B9 +Filter.SummaryTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7\u03C2 +Filter.TasksWithEstimatedDurations=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03BC\u03B5 \u03B5\u03BA\u03C4\u03B9\u03BC\u03CE\u03BC\u03B5\u03BD\u03B5\u03C2 \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B5\u03C2 \u2026 +Filter.UnstartedAssignments=\u0391\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 \u03C0\u03BF\u03C5 \u03B4\u03B5\u03BD \u03AD\u03C7\u03BF\u03C5\u03BD \u03BE\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03B9 +FixedDuration.FixedDuration=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Filter.UnstartedTasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C7\u03C9\u03C1\u03AF\u03C2 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 +Filter.WorkComplete=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03B7 +FixedWork.FixedWork=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +FixedUnits.FixedUnits=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AD\u03C2 \u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +FixedDuration.TheDurationMessage=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE\u03C2 \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1\u03C2 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B1\u03BB\u03BB\u03AC\u03BE\u03B5\u03B9 \u03C4\u03B7 \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03AC \u03C4\u03B7\u03C2 \u03B3\u03B9\u03B1 \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7\u03BD \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +FooterRenderer.page=\u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 +Gantt.Popup.annotationStylesMenu=\u03A3\u03C4\u03C5\u03BB  \u03A3\u03C7\u03BF\u03BB\u03B9\u03B1\u03C3\u03BC\u03BF\u03CD +Gantt.Popup.barStylesMenu=\u03A3\u03C4\u03C5\u03BB \u03A1\u03AC\u03B2\u03B4\u03BF\u03C5 +Gantt.Popup.showAssignments=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u0391\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03C9\u03BD +Gantt.Popup.showCalendar=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 +Gantt.Popup.showRows=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03A3\u03B5\u03B9\u03C1\u03CE\u03BD +Gantt.Popup.splitMode=\u0394\u03B9\u03AC\u03C3\u03C0\u03B1\u03C3\u03B7 +Gantt.tooltip.Assignment=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +Gantt.tooltip.Resource=\u03A0\u03CC\u03C1\u03BF\u03C2 +Gantt.tooltip.Task=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Gantt.tooltip.from=\u0391\u03C0\u03CC  +Gantt.tooltip.lag=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 +Gantt.tooltip.link=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +Gantt.tooltip.to=\u03A0\u03C1\u03BF\u03C2 +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=\u03A4\u03BF \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03AD\u03C1\u03B3\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AE\u03B4\u03B7 \u03B1\u03BD\u03BF\u03B9\u03C7\u03C4\u03CC \u03C9\u03C2 \u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u03C3\u03B5 \u03AD\u03BD\u03B1 \u03AC\u03BB\u03BB\u03BF \u03B5\u03BD\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03BF \u03AD\u03C1\u03B3\u03BF +GraphicManager.SelectedProjectAlreadySubproject=\u03A4\u03BF \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03AD\u03C1\u03B3\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AE\u03B4\u03B7 \u03AD\u03BD\u03B1 \u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03B5\u03BD\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03BF \u03AD\u03C1\u03B3\u03BF + +Grouper.AssignmentProjectName=\u038C\u03BD\u03BF\u03BC\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +Grouper.CompleteIncomplete=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF/\u0397\u03BC\u03B9\u03C4\u03B5\u03BB\u03AD\u03C2 +Grouper.Critical=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03BF +Grouper.CriticalThenDuration=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03BF \u03BC\u03B5\u03C4\u03AC \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Grouper.Delegated=\u0391\u03BD\u03B1\u03C4\u03AD\u03B8\u03B7\u03BA\u03B5 \u03C3\u03B5 +Grouper.Duration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Grouper.None=\u039A\u03B1\u03BC\u03AF\u03B1 \u039F\u03BC\u03AC\u03B4\u03B1 +Grouper.ResourceGroup=\u039F\u03BC\u03AC\u03B4\u03B1 +Grouper.ResourceType=\u03A4\u03CD\u03C0\u03BF\u03C2 +HelpDialog.About=\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1 +HelpDialog.GoToOnlineHelp=\u039C\u03B5\u03C4\u03B1\u03B2\u03B5\u03AF\u03C4\u03B5 \u03C3\u03C4\u03B7\u03BD \u03B7\u03BB\u03B5\u03BA\u03C4\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u03B2\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1 +HelpDialog.ShowLicense=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u0386\u03B4\u03B5\u03B9\u03B1\u03C2 +HelpDialog.ShowTipsOfTheDay=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03C5\u03BB\u03CE\u03BD \u03C4\u03B7\u03C2 \u03B7\u03BC\u03AD\u03C1\u03B1\u03C2 +HelpDialog.WatchHowToVideos=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03B8\u03C5\u03AE\u03C3\u03C4\u03B5  \u03B2\u03AF\u03BD\u03C4\u03B5\u03BF \u03BC\u03B5 \u03BF\u03B4\u03B7\u03B3\u03AF\u03B5\u03C2 +HyperLinkToolTip.SeeOnlineDemo=\u0394\u03B5\u03AF\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B7\u03BB\u03B5\u03BA\u03C4\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u0395\u03C0\u03AF\u03B4\u03B5\u03B9\u03BE\u03B7 +HyperLinkToolTip.SeeOnlineHelp=\u0394\u03B5\u03AF\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B7\u03BB\u03B5\u03BA\u03C4\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1 +InformationDialog.AssignResources=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +InformationDialog.ChangeWorkingTime=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +License.Inactive=\u0391\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03CC\u03C2 +License.LiteUser=\u039C\u03B7 \u03A4\u03B1\u03BA\u03C4\u03B9\u03BA\u03CC\u03C2 \u03A7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 +License.PowerUser=\u0399\u03C3\u03C7\u03C5\u03C1\u03CC\u03C2  \u03A7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 +LicenseDialog.CouldNotLoadLater=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03C6\u03BF\u03C1\u03C4\u03C9\u03B8\u03B5\u03AF \u03B7 \u03AC\u03B4\u03B5\u03B9\u03B1. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B4\u03BF\u03BA\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5  \u03BE\u03B1\u03BD\u03AC \u03B1\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1. +LicenseDialog.CouldNotLoadExiting=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03C6\u03BF\u03C1\u03C4\u03C9\u03B8\u03B5\u03AF \u03B7 \u03AC\u03B4\u03B5\u03B9\u03B1. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B4\u03BF\u03BA\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5 \u03BE\u03B1\u03BD\u03AC \u03B1\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1. \u03A4\u03BF \u03C0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03B8\u03B1 \u03BA\u03BB\u03B5\u03AF\u03C3\u03B5\u03B9. +LicenseDialog.Email=\u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B4\u03B7\u03BB\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03B1\u03BD\u03C4\u03AF\u03B3\u03C1\u03B1\u03C6\u03BF \u03C3\u03B1\u03C2 \u03C4\u03BF\u03C5 ProjectLibre \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03BD\u03B7\u03BC\u03B5\u03C1\u03CE\u03BD\u03B5\u03C3\u03C4\u03B5  \u03B3\u03B9\u03B1 \u03C4\u03B1 \u03BD\u03AD\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03B9\u03C2 \u03B5\u03BD\u03B7\u03BC\u03B5\u03C1\u03CE\u03C3\u03B5\u03B9\u03C2 \u03C4\u03BF\u03C5 \u03C0\u03C1\u03BF\u03CA\u03CC\u03BD\u03C4\u03BF\u03C2. +LicenseDialog.EmailLabel=\u0394\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7 \u03B7\u03BB\u03B5\u03BA\u03C4\u03C1\u03BF\u03BD\u03B9\u03BA\u03BF\u03CD \u03C4\u03B1\u03C7\u03C5\u03B4\u03C1\u03BF\u03BC\u03B5\u03AF\u03BF\u03C5 +LicenseDialog.License=\u0386\u03B4\u03B5\u03B9\u03B1 +LicenseDialog.ThirdParty=\u03A4\u03C1\u03AF\u03C4\u03BF \u039C\u03AD\u03C1\u03BF\u03C2 +LicenseOption.Administrator=\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2 +LicenseOption.External=\u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7\u03C2/ \u03A0\u03B5\u03BB\u03AC\u03C4\u03B7\u03C2 +LicenseOption.Inactive=- +LocalFileImporter.Exporting=\u0395\u03BE\u03B1\u03B3\u03C9\u03B3\u03AE +LocalFileImporter.Importing=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE +LoginDialog.Login=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7: +LoginDialog.Password=\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 \u03A0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7\u03C2: +LoginDialog.RememberMe=\u039D\u03B1 \u03BC\u03B5 \u03B8\u03C5\u03BC\u03AC\u03C3\u03B1\u03B9 \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC\u03BD \u03C4\u03BF\u03BD \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03AE +LoginDialog.UseOfficeLook=Use Office Look and Feel +LookupDialog.EnterPartOfTheName=\u039A\u03B1\u03C4\u03B1\u03C7\u03C9\u03C1\u03AE\u03C3\u03C4\u03B5 \u03BC\u03AD\u03C1\u03BF\u03C2 \u03C4\u03BF\u03C5 \u03BF\u03BD\u03CC\u03BC\u03B1\u03C4\u03BF\u03C2 \u03C0\u03BF\u03C5 \u03B1\u03BD\u03B1\u03B6\u03B7\u03C4\u03AC\u03C4\u03B5 +LookupDialog.Find=\u0395\u03CD\u03C1\u03B5\u03C3\u03B7 +LookupDialog.LookupAnObject=\u0391\u03BD\u03B1\u03B6\u03B7\u03C4\u03AE\u03C3\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03B1\u03BD\u03C4\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF +LookupDialog.NoMatchesFound=\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03B1\u03BD\u03C4\u03B9\u03C3\u03C4\u03BF\u03B9\u03C7\u03AF\u03B5\u03C2 +LookupDialog.Results=\u0391\u03C0\u03BF\u03C4\u03B5\u03BB\u03AD\u03C3\u03BC\u03B1\u03C4\u03B1 +LookupDialog.Type=\u03A4\u03CD\u03C0\u03BF\u03C2: +LookupDialog.UnableToContactServer=\u0391\u03B4\u03C5\u03BD\u03B1\u03BC\u03AF\u03B1 \u0395\u03C0\u03B9\u03BA\u03BF\u03B9\u03BD\u03C9\u03BD\u03AF\u03B1\u03C2 \u03BC\u03B5 \u03C4\u03BF\u03BD \u03B4\u03B9\u03B1\u03BA\u03BF\u03BC\u03B9\u03C3\u03C4\u03AE. +LookupField.LookupAValue=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u0391\u03BE\u03AF\u03B1\u03C2 +Message.ImportError=\u0391\u03C0\u03BF\u03C4\u03C5\u03C7\u03AF\u03B1 \u03B1\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7\u03C2 \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5 +Message.allowDeleteActuals=\u03A4\u03B1 \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF(\u03B1) \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF(\u03B1) \u03AD\u03C7\u03BF\u03C5\u03BD \u03AE\u03B4\u03B7 \u03C0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03AD\u03C2 \u03B1\u03BE\u03AF\u03B5\u03C2. \u0395\u03AF\u03C3\u03C4\u03B5 \u03C3\u03AF\u03B3\u03BF\u03C5\u03C1\u03BF\u03B9 \u03CC\u03C4\u03B9 \u03B5\u03C0\u03B9\u03B8\u03C5\u03BC\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B5\u03C4\u03B5; +Message.allowDistrbutedStartBeforeProjectStart=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03B8\u03B1 \u03C0\u03C1\u03BF\u03BA\u03B1\u03BB\u03AD\u03C3\u03B5\u03B9  \u03C3\u03C4\u03B7\u03BD \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03B9 \u03C0\u03C1\u03B9\u03BD \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03C4\u03BF\u03C5 \u03AD\u03C1\u03B3\u03BF\u03C5. \u0395\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9 \u03B1\u03C5\u03C4\u03CC; +Message.allowDistrbutedStartBeforeTaskStart=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03C1\u03B9\u03BD \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03C4\u03B7\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2. \u0395\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BD\u03C4\u03AC\u03BE\u03B5\u03B9 \u03B1\u03C5\u03C4\u03CC; +Message.allowTaskStartBeforeProjectStart=\u0398\u03B1 \u03BC\u03C0\u03BF\u03C1\u03BF\u03CD\u03C3\u03B5 \u03B1\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BD\u03B1 \u03BE\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03B9 \u03C0\u03C1\u03B9\u03BD \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03C4\u03BF\u03C5 \u03AD\u03C1\u03B3\u03BF\u03C5; +Message.alreadyParentChildHierarchy=\u03A5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03AE\u03B4\u03B7 \u03C5\u03C6\u03B9\u03C3\u03C4\u03AC\u03BC\u03B5\u03BD\u03B7 \u03C3\u03C7\u03AD\u03C3\u03B7 \u03B3\u03BF\u03BD\u03AD\u03B1/\u03C0\u03B1\u03B9\u03B4\u03B9\u03BF\u03CD. +Message.badTimeFormat=\u039A\u03B1\u03BA\u03AE \u03BC\u03BF\u03C1\u03C6\u03AE \u03C7\u03C1\u03CC\u03BD\u03BF\u03C5 +Message.badTimeIntervals=\u039A\u03B1\u03BA\u03AC \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03AC \u03B4\u03B9\u03B1\u03C3\u03C4\u03AE\u03BC\u03B1\u03C4\u03B1 +Message.cannotEnterUnits=  \u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B5\u03C4\u03B5 \u03BC\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF +Message.cannotLinkToSummary=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03C0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03BA\u03B1\u03B9 \u03BC\u03AF\u03B1 \u03B1\u03C0\u03CC \u03C4\u03B9\u03C2 \u03C5\u03C0\u03BF \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C4\u03B7\u03C2. \u0395\u03AC\u03BD \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03B9\u03C2 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03C4\u03B5, \u03B1\u03C6\u03B1\u03B9\u03C1\u03AD\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B9\u03B5\u03C1\u03B1\u03C1\u03C7\u03AF\u03B1 \u03BE\u03B5\u03C0\u03B5\u03C1\u03BD\u03CE\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD \u03C5\u03C0\u03BF \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03CE\u03C3\u03C4\u03B5 \u03BD\u03B1 \u03BC\u03B7\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BB\u03AD\u03BF\u03BD \u03BA\u03AC\u03C4\u03C9 \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03C0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2. +Message.cannotLinkTwice=\u0397 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03AE\u03B4\u03B7 +Message.cantEmptySpreadsheet=\u03A4\u03BF \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03C6\u03CD\u03BB\u03BB\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03C4\u03BF\u03C5\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF\u03BD \u03AD\u03BD\u03B1 \u03C0\u03B5\u03B4\u03AF\u03BF. +Message.cantLinkToClosedSubproject=\u0388\u03BD\u03B1 \u03C5\u03C0\u03CC-\u03AD\u03C1\u03B3\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03BD\u03BF\u03B9\u03C7\u03C4\u03CC \u03BA\u03B1\u03B9 \u03B5\u03B3\u03B3\u03C1\u03AC\u03C8\u03B9\u03BC\u03BF, \u03CE\u03C3\u03C4\u03B5 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BF  \u03C3\u03C4\u03CC\u03C7\u03BF\u03C2 \u03BC\u03B9\u03B1\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2, \u03BA\u03B1\u03B8\u03CE\u03C2 \u03B5\u03C0\u03B7\u03C1\u03B5\u03AC\u03B6\u03B5\u03B9 \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03B5\u03BD\u03CC\u03C2 \u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF\u03C5. +Message.cantLinkToExternal=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B5 \u03BC\u03AF\u03B1 \u03B5\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AE \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1.  +Message.cantLinkToSelf=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03B5 \u03C4\u03BF\u03BD \u03B5\u03B1\u03C5\u03C4\u03CC \u03C4\u03B7\u03C2. +Message.circularDependency=\u0391\u03C5\u03C4\u03AE \u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03BA\u03B1\u03B8\u03CE\u03C2 \u03B8\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03BF\u03CD\u03C3\u03B5 \u03BC\u03B9\u03B1 \u03C3\u03C7\u03AD\u03C3\u03B7 \u03BA\u03C5\u03BA\u03BB\u03B9\u03BA\u03AE\u03C2 \u03B5\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 \u03BC\u03B5 \u03AC\u03BB\u03BB\u03B5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2. +Message.confirmDeleteRows=\u0395\u03AF\u03C3\u03C4\u03B5 \u03C3\u03AF\u03B3\u03BF\u03C5\u03C1\u03BF\u03B9 \u03CC\u03C4\u03B9 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03AD\u03C2 \u03C4\u03B9\u03C2 \u03C3\u03B5\u03B9\u03C1\u03AD\u03C2; +# {0} is the  name of the predecessor task, {1} is the  name of the successor task +Message.crossProjectCircularDependency.mf=\u0388\u03BD\u03B1\u03C2 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03BC\u03BF\u03C2 \u03C0\u03BF\u03BB\u03BB\u03B1\u03C0\u03BB\u03CE\u03BD \u03AD\u03C1\u03B3\u03C9\u03BD \u03B1\u03C0\u03CC {0}  \u03AD\u03C9\u03C2 {1} \u03B8\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03BF\u03CD\u03C3\u03B5 \u03C3\u03C7\u03AD\u03C3\u03B7 \u03BA\u03C5\u03BA\u03BB\u03B9\u03BA\u03AE\u03C2 \u03B5\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7\u03C2 \u03BC\u03B5 \u03AC\u03BB\u03BB\u03B5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2. \u0388\u03C7\u03B5\u03B9 \u03B1\u03C0\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03B9\u03B7\u03B8\u03B5\u03AF \u03BA\u03B1\u03B9 \u03C3\u03B7\u03BC\u03B5\u03B9\u03C9\u03B8\u03B5\u03AF \u03BC\u03B5 \u03B4\u03B9\u03B1\u03BA\u03B5\u03BA\u03BF\u03BC\u03BC\u03AD\u03BD\u03B5\u03C2 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AD\u03C2. + +Message.errorCalendarMustHaveWorkingDay=\u03A4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03C4\u03BF\u03C5\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF\u03BD \u03BC\u03B9\u03B1 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03B7\u03BC\u03AD\u03C1\u03B1 +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03BE\u03B5\u03C0\u03B5\u03C1\u03BD\u03AC {1,number,percent} +# {0,number,percent} is the minimum  percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C4\u03BF\u03C5\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF\u03BD {0,number,percent} + +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BD\u03C4\u03CC\u03C2 \u03C4\u03BF\u03C5 \u03B5\u03CD\u03C1\u03BF\u03C5\u03C2 \u03B1\u03C0\u03CC {0,number} \u03AD\u03C9\u03C2 {1,number} +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03BE\u03B5\u03C0\u03B5\u03C1\u03BD\u03AC {1,number,percent} +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C4\u03BF\u03C5\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF\u03BD  {0,number}. +Message.importCircularLink=\u03A4\u03BF \u03AD\u03C1\u03B3\u03BF \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B5\u03B9\u03C3\u03B1\u03C7\u03B8\u03B5\u03AF \u03BA\u03B1\u03B8\u03CE\u03C2 \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 \u03BC\u03B9\u03B1 \u03BA\u03C5\u03BA\u03BB\u03B9\u03BA\u03AE \u03C3\u03C7\u03AD\u03C3\u03B7 \u03C0\u03C1\u03BF\u03BA\u03B1\u03C4\u03CC\u03C7\u03BF\u03C5 +Message.invalidAssignments=\u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B5\u03C4\u03B5 \u03C5\u03C6\u03B9\u03C3\u03C4\u03AC\u03BC\u03B5\u03BD\u03BF\u03C5\u03C2 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03B1\u03C0\u03CC \u03C4\u03B7 \u03B4\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE \u03C0\u03CC\u03C1\u03C9\u03BD \u03C3\u03B1\u03C2 \u03B4\u03B9\u03B1\u03C7\u03C9\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF\u03C5\u03C2 \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C7\u03B1\u03C1\u03B1\u03BA\u03C4\u03AE\u03C1\u03B1  \u03C4\u03BF\u03C5 \u03B4\u03B9\u03B1\u03C7\u03C9\u03C1\u03B9\u03C3\u03C4\u03B9\u03BA\u03BF\u03CD \u03BB\u03AF\u03C3\u03C4\u03B1\u03C2 ";". \u0391\u03BD \u03B5\u03C0\u03B9\u03B8\u03C5\u03BC\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03BB\u03B9\u03B3\u03CC\u03C4\u03B5\u03C1\u03BF \u03B1\u03C0\u03CC 100%, \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03B5\u03BD\u03C4\u03CC\u03C2 \u03C4\u03C9\u03BD \u03C0\u03B1\u03C1\u03B5\u03BD\u03B8\u03AD\u03C3\u03B5\u03C9\u03BD. +Message.invalidChoice=\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +Message.invalidCost=\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF \u039A\u03CC\u03C3\u03C4\u03BF\u03C2\n. \u03A4\u03BF \u03BA\u03CC\u03C3\u03C4\u03BF\u03C2 \u03B1\u03C5\u03C4\u03CC \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF. \u03A4\u03BF \u03BA\u03CC\u03C3\u03C4\u03BF\u03C2 \u03B8\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03BA\u03C6\u03C1\u03AC\u03B6\u03B5\u03C4\u03B1\u03B9 \u03BC\u03B5 \u03BD\u03BF\u03CD\u03BC\u03B5\u03C1\u03B1. \u03A4\u03BF \u03C3\u03CD\u03BC\u03B2\u03BF\u03BB\u03BF \u03BD\u03BF\u03BC\u03AF\u03C3\u03BC\u03B1\u03C4\u03BF\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03C1\u03BF\u03B1\u03B9\u03C1\u03B5\u03C4\u03B9\u03BA\u03CC. + +Message.invalidDate=\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\n \u0397 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03B1\u03C5\u03C4\u03AE \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7, \u03AE \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03BA\u03C4\u03CC\u03C2 \u03C4\u03BF\u03C5 \u03B5\u03CD\u03C1\u03BF\u03C5\u03C2 \u03C4\u03C9\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03B9\u03CE\u03BD, \u03C4\u03BF \u03BF\u03C0\u03BF\u03AF\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 01 \u0399\u03B1\u03BD\u03BF\u03C5\u03B1\u03C1\u03AF\u03BF\u03C5 1970 \u03AD\u03C9\u03C2 31 \u0394\u03B5\u03BA\u03B5\u03BC\u03B2\u03C1\u03AF\u03BF\u03C5 2049.\n \u0397 \u03BC\u03BF\u03C1\u03C6\u03AE \u03C4\u03B7\u03C2 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B7 \u03BC\u03BF\u03C1\u03C6\u03AE \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1\u03C2 \u03C4\u03BF\u03C5 \u03C3\u03C5\u03C3\u03C4\u03AE\u03BC\u03B1\u03C4\u03CC\u03C2 \u03C3\u03B1\u03C2. \u0393\u03B9\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03B5\u03B9\u03B3\u03BC\u03B1 \: 3/12/06 \u03AE 3 \u039C\u03B1\u03C1 2006 +# {0} is either "predecessor" or "successor" + +Message.invalidDependency.mf=\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF{0}.\n \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B5\u03C2 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD. \n\u00B7 {0} \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u03B5\u03BA\u03C6\u03C1\u03B1\u03B6\u03B5\u03C4\u03B1\u03B9 \u03C9\u03C2\: {0} \u0391\u03C1\u03B9\u03B8\u03BC\u03CC\u03C2 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2, \u03B5\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7, \u03BA\u03B1\u03B9 \u03C7\u03C1\u03CC\u03BD\u03BF\u03C2 \u03C0\u03B1\u03C1\u03AC\u03B4\u03BF\u03C3\u03B7\u03C2 \u03AE \u03BA\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7\u03C2. \n\u00B7 \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03B5\u03C0\u03AF\u03C3\u03B7\u03C2 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF \u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF \u03B4\u03B9\u03B1\u03BB\u03CC\u03B3\u03BF\u03C5 \u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 + +Message.invalidDuration=\u039C\u03B7 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1\n \u0391\u03C5\u03C4\u03AE \u03B7 \u03B4\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7. \n \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B4\u03BF\u03BA\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B1\u03BE\u03AF\u03B1 \u03CC\u03C0\u03C9\u03C2 24 \u03CE\u03C1\u03B5\u03C2 (24h), 3 \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2 (3d) \u03AE 9ed \u03B3\u03B9\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03BF\u03C5\u03BD \u03C0\u03B1\u03C1\u03AD\u03BB\u03B8\u03B5\u03B9. +Message.invalidInput=\u0397 \u03B1\u03BE\u03AF\u03B1 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 + +Message.invalidIntersection=\u0397 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03CE\u03C1\u03B1 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03B5\u03B9 \u03C0\u03C1\u03BF\u03BA\u03CD\u03C8\u03B5\u03B9 \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7.\n\n \u03A5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03BC\u03B9\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B7 \u03BF\u03C0\u03BF\u03AF\u03B1, \u03B4\u03B9\u03B1\u03C3\u03C4\u03B1\u03C5\u03C1\u03C9\u03BC\u03AD\u03BD\u03B7 \u03BC\u03B5 \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03C4\u03C9\u03BD \u03C0\u03CC\u03C1\u03C9\u03BD \u03C4\u03B7\u03C2, \u03B4\u03B5\u03BD \u03AD\u03C7\u03B5\u03B9 \u03B1\u03C1\u03BA\u03B5\u03C4\u03CC \u03C7\u03C1\u03CC\u03BD\u03BF \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03BA\u03C4\u03B5\u03BB\u03B5\u03C3\u03C4\u03B5\u03AF \u03BF\u03C0\u03BF\u03B9\u03B1\u03B4\u03AE\u03C0\u03BF\u03C4\u03B5 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1.\n \u0397 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B8\u03B1 \u03B1\u03B3\u03BD\u03BF\u03AE\u03C3\u03B5\u03B9 \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03C0\u03CC\u03C1\u03C9\u03BD. \n \u0393\u03B9\u03B1 \u03BD\u03B1 \u03C4\u03BF \u03B4\u03B9\u03BF\u03C1\u03B8\u03CE\u03C3\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03CC \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BB\u03BB\u03AC\u03BE\u03B5\u03C4\u03B5 \u03C4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u03C0\u03CC\u03C1\u03C9\u03BD \u03AE \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2, \u03AE \u03BD\u03B1 \u03B5\u03C0\u03B9\u03BB\u03AD\u03BE\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u201C \u03A0\u03B1\u03C1\u03AC\u03B2\u03BB\u03B5\u03C8\u03B7 \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 \u03A0\u03CC\u03C1\u03C9\u03BD\u201D. + +Message.invalidRate=This is not a valid rate.\nFor Work (non-material) resources, type the rate amount followed by a slash (/), and then the abbreviation for the time period. For example, "100/h".\nFor material resources, type the rate amount without a slash and time period\nFor example, "10". If your Material label is "barrel", this would mean "$10/barrel". \u0391\u03C5\u03C4\u03CC \u03C4\u03BF \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF .\n \u0393\u03B9\u03B1 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 (\u03BC\u03B7 \u03C5\u03BB\u03B9\u03BA\u03BF\u03CD\u03C2), \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03BF\u03C3\u03CC \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03BF\u03CD \u03B1\u03BA\u03BF\u03BB\u03BF\u03C5\u03B8\u03BF\u03CD\u03BC\u03B5\u03BD\u03BF \u03B1\u03C0\u03CC \u03B4\u03B5\u03BE\u03B9\u03CC\u03C4\u03C1\u03BF\u03C0\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03BF (/), \u03BA\u03B1\u03B9 \u03C3\u03C4\u03B7\u03BD \u03C3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03C4\u03B7 \u03C3\u03C5\u03BD\u03C4\u03BF\u03BC\u03BF\u03B3\u03C1\u03B1\u03C6\u03AF\u03B1 \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u03C0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF. \u0393\u03B9\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03B5\u03B9\u03B3\u03BC\u03B1 \u201C100/h\u201D.\n \u0393\u03B9\u03B1 \u03C5\u03BB\u03B9\u03BA\u03BF\u03CD\u03C2 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2, \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03BF\u03C3\u03CC \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03BF\u03CD \u03C7\u03C9\u03C1\u03AF\u03C2 \u03B4\u03B5\u03BE\u03B9\u03CC\u03C4\u03C1\u03BF\u03C0\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03BF \u03BA\u03B1\u03B9 \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE \u03C0\u03B5\u03C1\u03AF\u03BF\u03B4\u03BF. \n \u0393\u03B9\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03B5\u03B9\u03B3\u03BC\u03B1, "10". \u0391\u03BD \u03B7 \u03B5\u03C4\u03B9\u03BA\u03AD\u03C4\u03B1 \u03C4\u03BF\u03C5 \u03A5\u03BB\u03B9\u03BA\u03BF\u03CD \u03C3\u03B1\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u201C\u03B2\u03B1\u03C1\u03AD\u03BB\u03B9\u201D, \u03B1\u03C5\u03C4\u03CC \u03B8\u03B1 \u03C3\u03AE\u03BC\u03B1\u03B9\u03BD\u03B5 "$10/\u03B2\u03B1\u03C1\u03AD\u03BB\u03B9".  + +Message.invaliidUnits=This is not a valid Units value\n\nFor Work (non-material) resources , type a number.\n\nMaterial resource assignments can be either fixed or variable.  For a fixed material resource assignment, type the units value alone.  For example, "10" would mean "10 barrels", if your material label was "barrel".\n\nFor a variable material resource assignment, type the units value, followed by a slash(/), and then the  abbreviation for the time period.  For example, "10/M" would mean "12 barrels per month". \u0391\u03C5\u03C4\u03AE \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B9\u03B1 \u03AD\u03B3\u03BA\u03C5\u03C1\u03B7 \u03B1\u03BE\u03AF\u03B1 \u039C\u03BF\u03BD\u03AC\u03B4\u03C9\u03BD. \n\n \u0393\u03B9\u03B1 \u03C0\u03BF\u03C1\u03BF\u03C5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 (\u03BC\u03B7-\u03C5\u03BB\u03B9\u03BA\u03BF\u03CD\u03C2), \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AE\u03C3\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03BD\u03BF\u03CD\u03BC\u03B5\u03C1\u03BF. \n\ \u039F\u03B9 \u03B1\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 \u03C5\u03BB\u03B9\u03BA\u03CE\u03BD \u03C0\u03CC\u03C1\u03C9\u03BD \u03BC\u03C0\u03BF\u03C1\u03BF\u03CD\u03BD \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03AF\u03C4\u03B5 \u03C3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AD\u03C2 \u03B5\u03AF\u03C4\u03B5 \u03BC\u03B5\u03C4\u03B1\u03B2\u03BB\u03B7\u03C4\u03AD\u03C2. \u0393\u03B9\u03B1 \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B1\u03B8\u03B5\u03C1\u03BF\u03CD \u03C5\u03BB\u03B9\u03BA\u03BF\u03CD \u03C0\u03CC\u03C1\u03BF\u03C5, \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AE\u03C3\u03C4\u03B5 \u03BC\u03CC\u03BD\u03BF \u03C4\u03B7\u03BD \u03B1\u03BE\u03AF\u03B1 \u03C4\u03C9\u03BD \u03BC\u03BF\u03BD\u03AC\u03B4\u03C9\u03BD. \u0393\u03B9\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03B5\u03B9\u03B3\u03BC\u03B1, \u201C10\u201D \u03B8\u03B1 \u03C3\u03AE\u03BC\u03B1\u03B9\u03BD\u03B5 \u201C10 \u03B2\u03B1\u03C1\u03AD\u03BB\u03B9\u03B1\u201D, \u03B5\u03AC\u03BD \u03B7 \u03B5\u03C4\u03B9\u03BA\u03AD\u03C4\u03B1 \u03C4\u03BF\u03C5 \u03C5\u03BB\u03B9\u03BA\u03BF\u03CD \u03C3\u03B1\u03C2 \u03AE\u03C4\u03B1\u03BD \u201C\u03B2\u03B1\u03C1\u03AD\u03BB\u03B9\u201D. \n\n \u0393\u03B9\u03B1 \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03BC\u03B5\u03C4\u03B1\u03B2\u03BB\u03B7\u03C4\u03BF\u03CD \u03C5\u03BB\u03B9\u03BA\u03BF\u03CD \u03C0\u03CC\u03C1\u03BF\u03C5 , \u03C0\u03BB\u03B7\u03BA\u03C4\u03C1\u03BF\u03BB\u03BF\u03B3\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B1\u03BE\u03AF\u03B1 \u03BC\u03BF\u03BD\u03AC\u03B4\u03C9\u03BD, \u03B1\u03BA\u03BF\u03BB\u03BF\u03C5\u03B8\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03B1\u03C0\u03CC \u03BC\u03AF\u03B1 \u03B4\u03B5\u03BE\u03B9\u03CC\u03C4\u03C1\u03BF\u03C0\u03B7 \u03BA\u03AC\u03B8\u03B5\u03C4\u03BF (/), \u03BA\u03B1\u03B9 \u03C3\u03C4\u03B7 \u03C3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03C4\u03B7 \u03C3\u03C5\u03BD\u03C4\u03BF\u03BC\u03BF\u03B3\u03C1\u03B1\u03C6\u03AF\u03B1 \u03C4\u03B7\u03C2 \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03AE\u03C2 \u03C0\u03B5\u03C1\u03B9\u03CC\u03B4\u03BF\u03C5. + + +Message.notAResource=\u03A4\u03BF \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03CC\u03C1\u03BF\u03C2 +Message.notATask=\u03A4\u03BF \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Message.onlyReplaceOneResourceAtATime=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03B1\u03C3\u03C4\u03AE\u03C3\u03B5\u03C4\u03B5 \u03BC\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1\u03BD \u03C0\u03CC\u03C1\u03BF \u03C4\u03B7 \u03C6\u03BF\u03C1\u03AC. +Message.onlySelectOneElement=\u0398\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03BB\u03B5\u03C7\u03B8\u03B5\u03AF \u03BC\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03C3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03BF \u03C4\u03B7 \u03C6\u03BF\u03C1\u03AC. +Message.parentConstraintType=\u039F\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03B3\u03BF\u03BD\u03AD\u03B1 \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03CC\u03BD\u03BF \u03BC\u03AF\u03B1 \u03B1\u03C0\u03CC \u03B1\u03C5\u03C4\u03AD\u03C2: \u201C\u038C\u03C3\u03BF \u03C4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03BD \u03A3\u03C5\u03BD\u03C4\u03BF\u03BC\u03CC\u03C4\u03B5\u03C1\u03B1\u201D, \u201C\u039E\u03B5\u03BA\u03AF\u03BD\u03B7\u03BC\u03B1 \u038C\u03C7\u03B9 \u039D\u03C9\u03C1\u03AF\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC\u201D, \u03AE \u201C\u039B\u03AE\u03BE\u03B7 \u038C\u03C7\u03B9 \u0391\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1 \u0391\u03C0\u03CC\u201D. \u0395\u03AC\u03BD \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF\u03C4\u03B5 \u03B1\u03BD\u03C4\u03AF\u03C3\u03C4\u03C1\u03BF\u03C6\u03BF \u03C0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03CC, \u03C4\u03CC\u03C4\u03B5 \u201C \u038C\u03C3\u03BF \u03C4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03BD \u0391\u03C1\u03B3\u03CC\u03C4\u03B5\u03C1\u03B1\u201D \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B9\u03B1 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03B1\u03BD\u03C4\u03AF \u03B3\u03B9\u03B1 \u201C\u038C\u03C3\u03BF \u03C4\u03BF \u0394\u03C5\u03BD\u03B1\u03C4\u03CC\u03BD \u03A3\u03C5\u03BD\u03C4\u03BF\u03BC\u03CC\u03C4\u03B5\u03C1\u03B1\u201D. +Message.parentSuccessorCannotHaveFinishLink=\u039F\u03B9 \u03C0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 \u03BC\u03B9\u03B1\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03B3\u03BF\u03BD\u03AD\u03B1 \u03B8\u03B1 \u03BC\u03C0\u03BF\u03C1\u03BF\u03CD\u03C3\u03B1\u03BD \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03CC\u03BD\u03BF \u03C4\u03BF\u03C5 \u03C4\u03CD\u03C0\u03BF\u03C5 \u039B\u03AE\u03BE\u03B7 - \u2018\u0395\u03BD\u03B1\u03C1\u03BE\u03B7 \u03AE \u2018\u0395\u03BD\u03B1\u03C1\u03BE\u03B7 - \u2018\u0395\u03BD\u03B1\u03C1\u03BE\u03B7 +Message.projectAlreadyExists=\u03A4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C5\u03C6\u03AF\u03C3\u03C4\u03B1\u03C4\u03B1\u03B9 \u03AE\u03B4\u03B7. \u0391\u03C0\u03CC\u03C1\u03C1\u03B9\u03C8\u03B7 \u03C4\u03C1\u03AD\u03C7\u03BF\u03C5\u03C3\u03B1\u03C2 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7\u03C2; +Message.projectMustHaveName=\u03A4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03AD\u03BD\u03B1 \u03CC\u03BD\u03BF\u03BC\u03B1. +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject=\u0388\u03C1\u03B3\u03BF\u201D +Message.renameProject=\u201C\u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03AE\u03B4\u03B7 \u03C3\u03C4\u03BF\u03BD \u03B4\u03B9\u03B1\u03BA\u03BF\u03BC\u03B9\u03C3\u03C4\u03AE. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B5\u03C0\u03B9\u03BB\u03AD\u03BE\u03B5\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03AC\u03BB\u03BB\u03BF \u03CC\u03BD\u03BF\u03BC\u03B1. +Message.saveProjectAs=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5\u201D +Message.saveProjectAs=\u201C \u03C9\u03C2 +Message.saveProjectBeforeClosing=\u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B8\u03B7\u03BA\u03B5\u03CD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AD\u03C2 \u03C3\u03C4\u03BF \u201D +Message.saveProjectBeforeClosing=" ? +Message.subprojectCut=\u03A4\u03B1 \u03C5\u03C0\u03CC-\u03AD\u03C1\u03B3\u03B1 \u03B8\u03B1 \u03BC\u03B5\u03C4\u03B1\u03C4\u03C1\u03B1\u03C0\u03BF\u03CD\u03BD \u03C3\u03B5 \u03BA\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AD\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2. \u0391\u03C5\u03C4\u03AE \u03B7 \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B1\u03BD\u03B1\u03B9\u03C1\u03B5\u03B8\u03B5\u03AF. +Message.synchronizeResources=\u03A3\u03C5\u03B3\u03C7\u03C1\u03BF\u03BD\u03AF\u03C3\u03C4\u03B5 \u03C4\u03BF\u03C5\u03C2 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03BC\u03B5 \u03C4\u03BF\u03BD \u03B4\u03B9\u03B1\u03BA\u03BF\u03BC\u03B9\u03C3\u03C4\u03AE; +Message.tooManyResourcesSelectedToList.mf={0,number} \u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF\u03B9 \u03A0\u03CC\u03C1\u03BF\u03B9 (\u03C0\u03AC\u03C1\u03B1 \u03C0\u03BF\u03BB\u03BB\u03BF\u03AF \u03B3\u03B9\u03B1 \u03B1\u03C0\u03B1\u03C1\u03AF\u03B8\u03BC\u03B7\u03C3\u03B7) +Message.tooManyTasksSelectedToList.mf=\u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 (\u03C0\u03AC\u03C1\u03B1 \u03C0\u03BF\u03BB\u03BB\u03AD\u03C2 \u03B3\u03B9\u03B1 \u03B1\u03C0\u03B1\u03C1\u03AF\u03B8\u03BC\u03B7\u03C3\u03B7) +MicrosoftImporter.ErrorImportingXML=\u0394\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03C5\u03BD\u03B1\u03C4\u03AE \u03B7 \u03B5\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE XML \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5. \u039C\u03CC\u03BD\u03BF XML \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03BF\u03C5\u03BD \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03B7\u03B8\u03B5\u03AF \u03BC\u03B5 \u03C4\u03BF MS Project \u03AE Planner \u03BC\u03C0\u03BF\u03C1\u03BF\u03CD\u03BD \u03BD\u03B1 \u03B5\u03B9\u03C3\u03B1\u03C7\u03B8\u03BF\u03CD\u03BD. +MicrosoftImporter.ImportWithSubprojects=\u03A4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C0\u03B5\u03C1\u03B9\u03AD\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03AD\u03C1\u03B3\u03B1. \u0398\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03B9\u03C3\u03B1\u03C7\u03B8\u03BF\u03CD\u03BD \u03C7\u03B5\u03B9\u03C1\u03BF\u03BA\u03AF\u03BD\u03B7\u03C4\u03B1. \u039F\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C3\u03C4\u03B9\u03C2 \u03BF\u03C0\u03BF\u03AF\u03B5\u03C2 \u03B1\u03BD\u03C4\u03B9\u03C3\u03C4\u03BF\u03B9\u03C7\u03BF\u03CD\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9: +MicrosoftImporter.Importing=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE... +MicrosoftImporter.PrepareResources=\u03A0\u03C1\u03BF\u03B5\u03C4\u03BF\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5 \u03C4\u03BF\u03C5\u03C2 \u03A0\u03CC\u03C1\u03BF\u03C5\u03C2 +Network.Popup.barStylesMenu=\u03A3\u03C4\u03C5\u03BB \u03A1\u03AC\u03B2\u03B4\u03BF\u03C5 +NewBaseCalendarDialog.CreateACopyOfCalendar=\u039A\u03AC\u03BD\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03B1\u03BD\u03C4\u03AF\u03B3\u03C1\u03B1\u03C6\u03BF \u03C4\u03BF\u03C5 \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 +NewBaseCalendarDialog.CreateANewBaseCalendar=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03BD\u03AD\u03BF \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC\u03C2 +NewBaseCalendarDialog.Name=\u038C\u03BD\u03BF\u03BC\u03B1 +NewBaseCalendarDialog.NewBaseCalendar=\u039D\u03AD\u03BF \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF \u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC\u03C2 +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=\u039A\u03BB\u03B5\u03B9\u03B4\u03C9\u03BC\u03AD\u03BD\u03BF \u03B1\u03C0\u03CC +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=\u039A\u03B1\u03BB\u03CE\u03C2 \u03AE\u03C1\u03B8\u03B1\u03C4\u03B5 \u03C3\u03C4\u03BF ProjectLibre +OpenProjectDialog.CreationDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1\u03C2 +OpenProjectDialog.ModificationDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03A4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7\u03C2 +OpenProjectDialog.Name=\u038C\u03BD\u03BF\u03BC\u03B1 +Open_Title.ProjityError=ProjectLibre \u039B\u03AC\u03B8\u03BF\u03C2 +Open_Title.ProjityWarning=ProjectLibre \u0395\u03B9\u03B4\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 +PageSetupDialog.Margins=\u03A0\u03B5\u03C1\u03B9\u03B8\u03CE\u03C1\u03B9\u03B1 +PageSetupDialog.Margins.Left=\u0391\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AC (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC) +PageSetupDialog.Margins.Right=\u0394\u03B5\u03BE\u03B9\u03AC (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC) +PageSetupDialog.Margins.Top=\u03A0\u03AC\u03BD\u03C9 (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC) +PageSetupDialog.Margins.Bottom=\u039A\u03AC\u03C4\u03C9 (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC) +PageSetupDialog.Orientation=\u03A0\u03C1\u03BF\u03C3\u03B1\u03BD\u03B1\u03C4\u03BF\u03BB\u03B9\u03C3\u03BC\u03CC\u03C2 +PageSetupDialog.Orientation.Landscape=\u039F\u03C1\u03B9\u03B6\u03CC\u03BD\u03C4\u03B9\u03BF\u03C2 \u03A0\u03C1\u03BF\u03C3\u03B1\u03BD\u03B1\u03C4\u03BF\u03BB\u03B9\u03C3\u03BC\u03CC\u03C2 +PageSetupDialog.Orientation.Portrait=\u03A0\u03BF\u03C1\u03C4\u03C1\u03AD\u03C4\u03BF +PageSetupDialog.Orientation.ReverseLandscape=\u0391\u03BD\u03C4\u03AF\u03C3\u03C4\u03C1\u03BF\u03C6\u03BF\u03C2 \u03A0\u03C1\u03BF\u03C3\u03B1\u03BD\u03B1\u03C4\u03BF\u03BB\u03B9\u03C3\u03BC\u03CC\u03C2 +PageSetupDialog.Page=\u03A3\u03B5\u03BB\u03AF\u03B4\u03B1 +PageSetupDialog.Paper=\u03A7\u03B1\u03C1\u03C4\u03AF +PageSetupDialog.PaperFormat.Custom=\u0395\u03B9\u03B4\u03B9\u03BA\u03AE \u03B4\u03B9\u03B1\u03BC\u03CC\u03C1\u03C6\u03C9\u03C3\u03B7 +PageSetupDialog.PaperSize=\u039C\u03AD\u03B3\u03B5\u03B8\u03BF\u03C2 \u03A7\u03B1\u03C1\u03C4\u03B9\u03BF\u03CD +PageSetupDialog.PaperSizeSettings.Custom=\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03B5\u03B9\u03B4\u03B9\u03BA\u03AE\u03C2 \u03B4\u03B9\u03B1\u03BC\u03CC\u03C1\u03C6\u03C9\u03C3\u03B7\u03C2 +PageSetupDialog.PaperSizeSettings.Custom.Width=\u03A0\u03BB\u03AC\u03C4\u03BF\u03C2 (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC): +PageSetupDialog.PaperSizeSettings.Custom.Height=\u038E\u03C8\u03BF\u03C2 (\u03C7\u03B9\u03BB\u03B9\u03BF\u03C3\u03C4\u03AC): +PageSetupDialog.PaperSizeSettings.Printer=\u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C4\u03BF\u03C5 \u03B5\u03BA\u03C4\u03C5\u03C0\u03C9\u03C4\u03AE +PageSetupDialog.PaperSizeSettings.SinglePage=\u039C\u03AF\u03B1 \u03BC\u03B5\u03B3\u03AC\u03BB\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 +PageSetupDialog.PaperSizeSettings.SinglePage=(\u039C\u03CC\u03BD\u03BF PDF) +PageSetupDialog.Printers=\u0395\u03BA\u03C4\u03C5\u03C0\u03C9\u03C4\u03AD\u03C2 +PageSetupDialog.PrinterPageSetup=\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03B5\u03BA\u03C4\u03C5\u03C0\u03C9\u03C4\u03AE +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=\u0394\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u03BC\u03CC\u03BD\u03BF \u03C3\u03B5 +PageSetupDialog.PODOnly=\u0388\u03C1\u03B3\u03B1 \u039A\u03B1\u03C4\u03AC \u03A0\u03B1\u03C1\u03B1\u03B3\u03B3\u03B5\u03BB\u03AF\u03B1 +PageSetupDialog.Refresh=\u0391\u03BD\u03B1\u03BD\u03AD\u03C9\u03C3\u03B7 +PageSetupDialog.SaveSettings=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C9\u03C2 \u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +PageSetupDialog.SaveSettings.ToolTip=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C9\u03C2 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03C9\u03BD \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03C9\u03BD \u03B5\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7\u03C2. +PageSetupDialog.SaveWebPDFSettings=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF\u03C5 \u0399\u03C3\u03C4\u03BF\u03CD +PageSetupDialog.SaveWebPDFSettings.ToolTip=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03C9\u03BD \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03C9\u03BD \u03B3\u03B9\u03B1 PDF \u03B5\u03B9\u03BA\u03CC\u03BD\u03B1 \u0399\u03C3\u03C4\u03BF\u03CD +PageSetupDialog.Settings.Label=\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 +PageSetupDialog.Settings.Local=\u03A4\u03BF\u03C0\u03B9\u03BA\u03CC  +PageSetupDialog.Settings.WebPDF=PDF \u0399\u03C3\u03C4\u03BF\u03CD +PageSetupDialog.Scaling=  \u039A\u03BB\u03AF\u03BC\u03B1\u03BA\u03B1 +PageSetupDialog.Scaling.FitTo=\u03A0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03C3\u03B5 +PageSetupDialog.Scaling.FitToHeight=\u03C3\u03B5\u03BB\u03AF\u03B4\u03B5\u03C2 \u03C3\u03B5 \u03CD\u03C8\u03BF\u03C2 +PageSetupDialog.Scaling.FitToWidth=\u03C3\u03B5\u03BB\u03AF\u03B4\u03B5\u03C2 \u03C3\u03B5 \u03C0\u03BB\u03AC\u03C4\u03BF\u03C2 +PageSetupDialog.Scaling.ScaleTo=\u039A\u03BB\u03AF\u03BC\u03B1\u03BA\u03B1 \u03C3\u03B5: +PageSetupDialog.Scaling.ScaleToHeight=\u03CD\u03C8\u03BF\u03C2 +PageSetupDialog.Scaling.ScaleToWidth=\u03C0\u03BB\u03AC\u03C4\u03BF\u03C2 +PageSetupDialog.Scaling.ScaleToProportions=\u03A0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 +PageSetupDialog.Scaling.ScaleToProportions=\u03B1\u03BD\u03B1\u03BB\u03BF\u03B3\u03AF\u03B5\u03C2 +PageSetupDialog.ShowGantt=Gantt +PageSetupDialog.ShowParts=\u0394\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1 +PageSetupDialog.ShowSpreadSheet=\u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC \u03A6\u03CD\u03BB\u03BB\u03BF +PageSetupDialog.Title=\u0394\u03B9\u03B1\u03BC\u03CC\u03C1\u03C6\u03C9\u03C3\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2 +PageSetupDialog.NotPDFPrintServiceForWebDefault +PageSetupDialog.NotValidPrinter=The service selected is a PDF service, please select a printer. +PersonalContour.personal=\u0397 \u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B7 \u03C5\u03C0\u03B7\u03C1\u03B5\u03C3\u03AF\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B9\u03B1 \u03C5\u03C0\u03B7\u03C1\u03B5\u03C3\u03AF\u03B1 PDF, \u03C0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B5\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03AD\u03BD\u03B1\u03BD \u03B5\u03BA\u03C4\u03C5\u03C0\u03C9\u03C4\u03AE. +ProjectStatus.ACTIVE=\u0395\u03BD\u03B5\u03C1\u03B3\u03CC +PreviewPanel.Preview=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7 +PreviewPanelEnd.Preview=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7 +ProjectDialog.AllResourcesExceptCustomerPartner=\u2018\u039F\u03BB\u03BF\u03B9 \u03BF\u03B9 \u03C0\u03CC\u03C1\u03BF\u03B9 (\u03B5\u03BA\u03C4\u03CC\u03C2 \u03B1\u03C0\u03CC \u03A0\u03B5\u03BB\u03AC\u03C4\u03B7/\u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7) +ProjectDialog.Notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2: +ProjectInformationDialog.ProjectInformation=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2 \u0388\u03C1\u03B3\u03BF\u03C5 +ProjectStatus.CANCELLED=\u0386\u03BA\u03C5\u03C1\u03BF\u03C2 +ProjectStatus.COMPLETED=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF\u03C2 +ProjectDialog.NewProject=\u039D\u03AD\u03BF \u0388\u03C1\u03B3\u03BF +ProjectDialog.StartDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2: +ProjectDialog.FinishDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u039B\u03AE\u03BE\u03B7\u03C2: +ProjectStatus.ON_HOLD=\u03A3\u03B5 \u03B1\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE +ProjectDialog.Manager=\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2 +ProjectStatus.PENDING_APPROVAL=\u0395\u03BA\u03BA\u03C1\u03B5\u03BC\u03B5\u03AF \u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 +ProjectStatus.PLANNING=\u03A3\u03C7\u03B5\u03B4\u03B9\u03B1\u03C3\u03BC\u03CC\u03C2  +ProjectType.EVENT_PLANNING=\u03A3\u03C7\u03B5\u03B4\u03B9\u03B1\u03C3\u03BC\u03CC\u03C2 \u0395\u03BA\u03B4\u03AE\u03BB\u03C9\u03C3\u03B7\u03C2 +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=\u0394\u03B9\u03B1\u03C6\u03B7\u03BC\u03B9\u03C3\u03C4\u03B9\u03BA\u03AE \u039A\u03B1\u03BC\u03C0\u03AC\u03BD\u03B9\u03B1 +ProjectInformationDialog.Notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +PrintPreviewFrame.PrintPreview=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7 \u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7\u03C2 +ProjectType.OTHER=\u0386\u03BB\u03BB\u03BF +ProjectType.PRODUCT_DEVELOPMENT=\u0391\u03BD\u03AC\u03C0\u03C4\u03C5\u03BE\u03B7 \u03A0\u03C1\u03BF\u03CA\u03CC\u03BD\u03C4\u03BF\u03C2 +ProjectType.PROFESSIONAL_SERVICES=\u0395\u03C0\u03B1\u03B3\u03B3\u03B5\u03BB\u03BC\u03B1\u03C4\u03B9\u03BA\u03AD\u03C2 \u03A5\u03C0\u03B7\u03C1\u03B5\u03C3\u03AF\u03B5\u03C2 +ProjectInformationDialog.Statistics=\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC \u03A3\u03C4\u03BF\u03B9\u03C7\u03B5\u03AF\u03B1 +ProjectDialog.BasedOnProjectRole=\u0392\u03AC\u03C3\u03B5\u03B9 \u03C4\u03BF\u03C5 \u03A1\u03CC\u03BB\u03BF\u03C5 \u03C4\u03BF\u03C5 \u0388\u03C1\u03B3\u03BF\u03C5 \u03C3\u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD +ProjectInformationDialog.General=\u0393\u03B5\u03BD\u03B9\u03BA\u03AC +ProjectType.SALES_CAMPAIGN=\u03A0\u03C9\u03BB\u03AE\u03C3\u03B5\u03B9\u03C2 \u039A\u03B1\u03BC\u03C0\u03AC\u03BD\u03B9\u03B1\u03C2 +ProjectDialog.ProjectName=\u038C\u03BD\u03BF\u03BC\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5: +ProjectDialog.ProjectTeam=\u038C\u03BD\u03BF\u03BC\u03B1 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2: +ProjectType.TECHNICAL_SUPPORT=\u03A4\u03B5\u03C7\u03BD\u03B9\u03BA\u03AE \u03A5\u03C0\u03BF\u03C3\u03C4\u03AE\u03C1\u03B9\u03BE\u03B7 +RenameDialog.AnotherItemWithThatNameAlreadyExists=\u03A5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03AE\u03B4\u03B7 \u03AD\u03BD\u03B1 \u03AC\u03BB\u03BB\u03BF \u03B1\u03BD\u03C4\u03B9\u03BA\u03B5\u03AF\u03BC\u03B5\u03BD\u03BF \u03BC\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03CC\u03BD\u03BF\u03BC\u03B1  +RenameDialog.NewName=\u039D\u03AD\u03BF \u038C\u03BD\u03BF\u03BC\u03B1 +RenameDialog.Rename=\u039C\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1 +RenameDialog.TheNameCannotBeEmpty=\u03A4\u03BF \u03CC\u03BD\u03BF\u03BC\u03B1 \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BA\u03B5\u03BD\u03CC +RenameProjectDialog.NewProject=\u039D\u03AD\u03BF \u0388\u03C1\u03B3\u03BF +RenameProjectDialog.NewProjectName=\u038C\u03BD\u03BF\u03BC\u03B1 \u039D\u03AD\u03BF\u03C5 \u03AD\u03C1\u03B3\u03BF\u03C5: +RenameProjectDialog.RenameProject=\u039C\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +ReportView.Columns=\u03A3\u03C4\u03AE\u03BB\u03B5\u03C2: +ReportView.Report=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC: +RequestDemandType.Demand=\u0396\u03AE\u03C4\u03B7\u03C3\u03B7 +RenameDialog.CurrentName=\u03A4\u03C1\u03AD\u03C7\u03BF\u03BD \u038C\u03BD\u03BF\u03BC\u03B1 +RequestDemandType.None=- +RequestDemandType.Request=\u0391\u03AF\u03C4\u03B7\u03C3\u03B7 +ResourceAdditionDialog.ResourceMerging=\u03A3\u03C5\u03B3\u03C7\u03CE\u03BD\u03B5\u03C5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +ResourceAdditionDialog.SelectResourcesToAdd=\u0395\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03A0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AE\u03BA\u03B7 +ResourceIndicatorsComponent.Administrator=(\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2) +ResourceIndicatorsComponent.PartnerCustomer=(\u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7\u03C2/\u03A0\u03B5\u03BB\u03AC\u03C4\u03B7\u03C2) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=\u0391\u03C5\u03C4\u03CC\u03C2 \u03BF \u03C0\u03CC\u03C1\u03BF\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C3\u03C4\u03B7\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1 \u03AD\u03C1\u03B3\u03BF\u03C5 +ResourceIndicatorsComponent.UserLicense=\u0386\u03B4\u03B5\u03B9\u03B1 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7 +ResourceInformationDialog.AssignedToTasks=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B9\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +ResourceInformationDialog.Costs=\u039A\u03CC\u03C3\u03C4\u03B7 +ResourceInformationDialog.General=\u0393\u03B5\u03BD\u03B9\u03BA\u03AC +ResourceInformationDialog.Notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +ResourceInformationDialog.ResourceAvailability=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03CC\u03C1\u03C9\u03BD +ResourceInformationDialog.ResourceInformation=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 \u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1\u03C2 +ResourceInformationDialog.Tasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=\u038C\u03BB\u03BF\u03B9 \u03BF\u03B9 \u03A0\u03CC\u03C1\u03BF\u03B9 (\u03B5\u03BA\u03C4\u03CC\u03C2 \u03B1\u03C0\u03CC \u03A0\u03B5\u03BB\u03AC\u03C4\u03B7/ \u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=\u0392\u03AC\u03C3\u03B5\u03B9 \u03C4\u03BF\u03C5 \u03A1\u03CC\u03BB\u03BF\u03C5 \u03C4\u03BF\u03C5 \u0388\u03C1\u03B3\u03BF\u03C5 \u03C3\u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u039C\u03B7\u03BD \u03C3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03CD\u03C3\u03B5\u03C4\u03B5, \u03B1\u03BD\u03BF\u03AF\u03BE\u03C4\u03B5 \u03C4\u03BF \u03AD\u03C1\u03B3\u03BF \u03BC\u03CC\u03BD\u03BF \u03B3\u03B9\u03B1 \u03B1\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7 +ResourceMappingDialog.ImportedResources=\u0395\u03B9\u03C3\u03B1\u03B3\u03CC\u03BC\u03B5\u03BD\u03BF\u03B9 \u03C0\u03CC\u03C1\u03BF\u03B9 +ResourceMappingDialog.MergeResourcesUsingField=\u03A3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03CD\u03C3\u03C4\u03B5 \u03C4\u03BF\u03C5\u03C2 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03C0\u03BF\u03C5 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03BF\u03CD\u03BD \u03C4\u03BF \u03C0\u03B5\u03B4\u03AF\u03BF +ResourceMappingDialog.ProjectTeam=\u039F\u03BC\u03AC\u03B4\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5:  +ResourceMappingDialog.ResourceMerging=\u03A3\u03C5\u03B3\u03C7\u03CE\u03BD\u03B5\u03C5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +ResourceMappingDialog.ServerResources=\u03A0\u03CC\u03C1\u03BF\u03B9 \u03B4\u03B9\u03B1\u03BA\u03BF\u03BC\u03B9\u03C3\u03C4\u03AE +ResourceType.Location=\u03A4\u03BF\u03C0\u03BF\u03B8\u03B5\u03C3\u03AF\u03B1 +ResourceType.Machine=\u039C\u03B7\u03C7\u03B1\u03BD\u03AE +ResourceType.Material=\u03A5\u03BB\u03B9\u03BA\u03CC +ResourceType.Other=\u2018\u0391\u03BB\u03BB\u03BF +ResourceType.Work=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +ResourceView.ThisResourceCurrentlyHasAssignments=\u0391\u03C5\u03C4\u03CC\u03C2 \u03BF \u03C0\u03CC\u03C1\u03BF\u03C2 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7 \u03C3\u03C4\u03B9\u03B3\u03BC\u03AE \u03B1\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2. +ResourceView.ToMoveAProtectedResource=\u0393\u03B9\u03B1 \u03BD\u03B1 \u03BC\u03B5\u03C4\u03B1\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C3\u03C4\u03B7\u03BD \u03B9\u03B5\u03C1\u03B1\u03C1\u03C7\u03AF\u03B1 \u03AD\u03BD\u03B1\u03BD \u03BC\u03B7-\u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B9\u03BC\u03BF \u03C0\u03CC\u03C1\u03BF, \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03BF\u03C5\u03C2 \u03C3\u03C4\u03B7\u03BD RBS \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE +ResourceView.UsersCanOnlyBeRemoved=\u039F\u03B9 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B5\u03C2 \u03BC\u03C0\u03BF\u03C1\u03BF\u03CD\u03BD \u03BD\u03B1 \u03B1\u03C6\u03B1\u03B9\u03C1\u03B5\u03B8\u03BF\u03CD\u03BD \u03AE \u03BD\u03B1 \u03BA\u03B1\u03C4\u03B1\u03C3\u03C4\u03BF\u03CD\u03BD \u03B1\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03AF \u03BC\u03CC\u03BD\u03BF \u03C3\u03C4\u03B7\u03BD \u03B9\u03C3\u03C4\u03BF\u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u0394\u03B9\u03B1\u03C7\u03B5\u03AF\u03C1\u03B9\u03C3\u03B7\u03C2 \u03A7\u03C1\u03B7\u03C3\u03C4\u03CE\u03BD. +ResourceView.YouCannotDeleteTheResource=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C8\u03B5\u03C4\u03B5 \u03C4\u03BF\u03BD \u03C0\u03CC\u03C1\u03BF: +Role.Inactive=\u0391\u03BD\u03B5\u03BD\u03B5\u03C1\u03B3\u03CC +Role.ProjectManager=\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2 \u0388\u03C1\u03B3\u03BF\u03C5 +Role.TeamMember=  \u039C\u03AD\u03BB\u03BF\u03C2 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2 +SchedulingType.FixedDuration=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +ScheduleDialogBox.Percentage=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC +ScheduleDialogBox.FixedDuration=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +ScheduleDialogBox.FixedUnits=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AD\u03C2 \u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +ScheduleDialogBox.FixedWork=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +ScheduleDialogBox.SetAsDefault=\u039F\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C9\u03C2 \u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +ScheduleDialogBox.WorkIsEnteredIn=\u0397 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B5\u03B9\u03C3\u03B1\u03C7\u03B8\u03B5\u03AF +ScheduleDialogBox.DefaultTaskType=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF\u03C2 \u03C4\u03CD\u03C0\u03BF\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +SchedulingType.FixedUnits=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AD\u03C2 \u039C\u03BF\u03BD\u03AC\u03B4\u03B5\u03C2 +ScheduleDialogBox.Schedule=\u03A0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +ScheduleDialogBox.Decimal=\u0394\u03B5\u03BA\u03B1\u03B4\u03B9\u03BA\u03CC\u03C2 +ScheduleDialogBox.Minutes=\u039B\u03B5\u03C0\u03C4\u03AC +ScheduleDialogBox.NewTask=\u039D\u03AD\u03B1 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +SchedulingType.FixedWork=\u03A3\u03C4\u03B1\u03B8\u03B5\u03C1\u03AE \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +ScheduleDialogBox.Hours=\u038F\u03C1\u03B5\u03C2 +ScheduleDialogBox.Days=\u039C\u03AD\u03C1\u03B5\u03C2 +ScheduleDialogBox.Weeks=\u0395\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B5\u03C2 +ScheduleDialogBox.Months=\u039C\u03AE\u03BD\u03B5\u03C2 +Sorter.AssignmentProjectName=\u2018\u039F\u03BD\u03BF\u03BC\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +Sorter.CompleteIncomplete=\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF/\u0397\u03BC\u03B9\u03C4\u03B5\u03BB\u03AD\u03C2 +Sorter.Cost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Sorter.CostOverbudget=\u03A5\u03C0\u03AD\u03C1\u03B2\u03B1\u03C3\u03B7 \u03BA\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Sorter.CostPerUse=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 \u03B1\u03BD\u03AC \u03C7\u03C1\u03AE\u03C3\u03B7 +Sorter.Critical=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03BF +Sorter.Delegated=\u0391\u03BD\u03B1\u03C4\u03AD\u03B8\u03B7\u03BA\u03B5 \u03C3\u03B5 +Sorter.Duration=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 +Sorter.DurationThenCost=\u0394\u03B9\u03AC\u03C1\u03BA\u03B5\u03B9\u03B1 \u03BC\u03B5\u03C4\u03AC \u03BA\u03CC\u03C3\u03C4\u03BF\u03C2 +Sorter.FinishDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BB\u03AE\u03BE\u03B7\u03C2 +Sorter.Name=\u038C\u03BD\u03BF\u03BC\u03B1 +Sorter.None=\u03A7\u03C9\u03C1\u03AF\u03C2 \u03A4\u03B1\u03BE\u03B9\u03BD\u03CC\u03BC\u03B7\u03C3\u03B7 +Sorter.OvertimeRate=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03A5\u03C0\u03B5\u03C1\u03C9\u03C1\u03AF\u03B1\u03C2 +Sorter.ResourceGroup=\u039F\u03BC\u03AC\u03B4\u03B1 +Sorter.ResourceType=\u03A4\u03CD\u03C0\u03BF\u03C2 +Sorter.StandardRate=\u03A4\u03C5\u03C0\u03B9\u03BA\u03AE \u03C4\u03B9\u03BC\u03AE +Sorter.StartDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u0388\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2 +Spreadsheet.Action.collapse=\u039A\u03B1\u03C4\u03AC\u03C1\u03C1\u03B5\u03C5\u03C3\u03B7 +Spreadsheet.Action.copy=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE +Spreadsheet.Action.cut=\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE +Spreadsheet.Action.delete=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE +Spreadsheet.Action.expand=\u0395\u03C0\u03AD\u03BA\u03C4\u03B1\u03C3\u03B7 +Spreadsheet.Action.indent=\u0395\u03C3\u03BF\u03C7\u03AE +Spreadsheet.Action.new=\u039D\u03AD\u03BF +Spreadsheet.Action.outdent=\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE +Spreadsheet.Action.paste=\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 +Spreadsheet.Assignment.resourceUsage=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +Spreadsheet.Assignment.taskUsage=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Spreadsheet.AssignmentEntry.assignResources=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +Spreadsheet.AssignmentEntry.replaceResources=Replace Resources  \u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +Spreadsheet.Dependency.predecessors=\u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 +Spreadsheet.Dependency.successors=\u0394\u03B9\u03AC\u03B4\u03BF\u03C7\u03BF\u03B9 +Spreadsheet.Project.default=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +Spreadsheet.Project.portfolio=\u03A7\u03B1\u03C1\u03C4\u03BF\u03C6\u03C5\u03BB\u03AC\u03BA\u03B9\u03BF +Spreadsheet.Project.properties=\u0399\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B5\u03C2 +Spreadsheet.Resource.earnedValue=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1 +Spreadsheet.Resource.earnedValueCostIndicators=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1 - \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Spreadsheet.Resource.earnedValueScheduleIndicators=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1  - \u03A0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +Spreadsheet.Resource.entryWorkResources=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +Spreadsheet.ResourceAssignment.reportAssignmentResource=\u038C\u03BD\u03BF\u03BC\u03B1 \u03BA\u03B1\u03B9 \u03A4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +Spreadsheet.ResourceAssignment.reportAssignmentTask=\u0392\u03B1\u03C3\u03B9\u03BA\u03AE \u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC +Spreadsheet.ResourceAssignment.resources=\u039A\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03BF\u03B9 \u03A0\u03CC\u03C1\u03BF\u03B9 +Spreadsheet.ResourceAssignment.tasks=\u039A\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Spreadsheet.ResourceTimesheet.status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03BA\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03C7\u03C1\u03CC\u03BD\u03BF\u03C5 +Spreadsheet.ResourceUsage.default=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD (\u03B4\u03B9\u03B1\u03BD\u03BF\u03BC\u03AE) +Spreadsheet.nameOnly=\u038C\u03BD\u03BF\u03BC\u03B1 +Spreadsheet.Task.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 +Spreadsheet.Task.constraintDates=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B5\u03C2 \u03A0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03BF\u03CD +Spreadsheet.Task.cost=\u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Spreadsheet.Task.delay=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 +Spreadsheet.Task.earnedValue=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1 +Spreadsheet.Task.earnedValueCostIndicators=Earned Value - Cost \u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1 - \u039A\u03CC\u03C3\u03C4\u03BF\u03C2 +Spreadsheet.Task.earnedValueScheduleIndicators=\u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7 \u0391\u03BE\u03AF\u03B1 - \u03A0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +Spreadsheet.Task.entry=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE +SpreadSheetColumnMenu.InsertColumn=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u03A3\u03C4\u03AE\u03BB\u03B7\u03C2 +Spreadsheet.Task.schedule=\u03A0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 (CPM) +Spreadsheet.Task.summary=\u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7 +Spreadsheet.Task.tracking=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03CD\u03B8\u03B7\u03C3\u03B7 +Spreadsheet.Task.usage=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1  +Spreadsheet.Task.variance=\u0394\u03B9\u03B1\u03BA\u03CD\u03BC\u03B1\u03BD\u03C3\u03B7 \u03A0\u03C1\u03BF\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03BF\u03C2 +Spreadsheet.TaskAssignment.reportAssignmentResource=\u038C\u03BD\u03BF\u03BC\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +Spreadsheet.TaskAssignment.reportAssignmentTask=\u0392\u03B1\u03C3\u03B9\u03BA\u03AE \u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC +Spreadsheet.TaskAssignment.resources=\u039A\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03BF\u03B9 \u03A0\u03CC\u03C1\u03BF\u03B9 +Spreadsheet.TaskAssignment.tasks=\u039A\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Spreadsheet.TaskTimesheet.status=\u039A\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03BA\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03C7\u03C1\u03CC\u03BD\u03BF\u03C5 +Spreadsheet.TaskUsage.default=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 (\u03B4\u03B9\u03B1\u03BD\u03BF\u03BC\u03AE) +Spreadsheet.Timesheet.Default=\u03A6\u03CD\u03BB\u03BB\u03BF \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 +Spreadsheet.Timesheet.completion=\u039F\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7 +SpreadSheetColumnMenu.HideColumn=\u0391\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03A3\u03C4\u03AE\u03BB\u03B7\u03C2 +Spreadsheet.availability=\u0394\u03B9\u03B1\u03B8\u03B5\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1 +Spreadsheet.costRates=\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03AC \u039A\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Spreadsheet.empty= +StandardContour.backLoaded=\u03A6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03A0\u03AF\u03C3\u03C9 +StandardContour.bell=\u039A\u03BF\u03C5\u03B4\u03BF\u03CD\u03BD\u03B9 +StandardContour.doublePeak=\u0394\u03B9\u03C0\u03BB\u03AE \u039A\u03BF\u03C1\u03C5\u03C6\u03AE +StandardContour.earlyPeak=\u03A0\u03C1\u03CE\u03B9\u03BC\u03B7 \u039A\u03BF\u03C1\u03C5\u03C6\u03AE +StandardContour.flat=\u0395\u03C0\u03AF\u03C0\u03B5\u03B4\u03BF\u03C2 +StandardContour.frontLoaded=\u03A6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u039C\u03C0\u03C1\u03BF\u03C3\u03C4\u03AC +StandardContour.latePeak=\u0391\u03C1\u03B3\u03BF\u03C0\u03BF\u03C1\u03B7\u03BC\u03AD\u03BD\u03B7 \u039A\u03BF\u03C1\u03C5\u03C6\u03AE +StandardContour.plateau=\u039F\u03C1\u03BF\u03C0\u03AD\u03B4\u03B9\u03BF +Styles.Annotation.milestone=\u039F\u03C1\u03CC\u03C3\u03B7\u03BC\u03B1 +Styles.Annotation.normal=\u039A\u03B1\u03BD\u03BF\u03BD\u03B9\u03BA\u03AD\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Styles.Bar.Row.assignment=\u0391\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 - +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 10 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 1 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 2 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 3 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 4 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 5 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 6 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 7 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 8 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 9 +Styles.Bar.Row.baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2  +Styles.Bar.Row.critical=\u039A\u03C1\u03AF\u03C3\u03B9\u03BC\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Styles.Bar.Row.deadline=\u03A0\u03C1\u03BF\u03B8\u03B5\u03C3\u03BC\u03AF\u03B1 +Styles.Bar.Row.external=\u0395\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AD\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Styles.Bar.Row.milestone=\u039F\u03C1\u03CC\u03C3\u03B7\u03BC\u03B1 +Styles.Bar.Row.subproject=\u03A5\u03C0\u03BF-\u03AD\u03C1\u03B3\u03B1 +Styles.Bar.Row.summary=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03A0\u03B5\u03C1\u03AF\u03BB\u03B7\u03C8\u03B7\u03C2 +Styles.Bar.Row.task=\u039C\u03B7-\u03BA\u03C1\u03AF\u03C3\u03B9\u03BC\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Styles.Bar.Row.timesheet=\u03A6\u03CD\u03BB\u03BB\u03BF \u039A\u03B1\u03C4\u03B1\u03BD\u03BF\u03BC\u03AE\u03C2 \u03A7\u03C1\u03CC\u03BD\u03BF\u03C5 +Styles.Bar.Row.totalSlack=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03AE \u0391\u03B4\u03C1\u03AC\u03BD\u03B5\u03B9\u03B1 +Styles.Calendar.nonWorking=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 +Styles.Gantt.showRows=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03A3\u03B5\u03B9\u03C1\u03CE\u03BD +Styles.showLinks=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03A3\u03C5\u03BD\u03B4\u03AD\u03C3\u03BC\u03C9\u03BD +Summary.AND=\u039A\u0391\u0399 +Summary.Average=\u039C\u03AD\u03C3\u03BF\u03C2 \u038C\u03C1\u03BF\u03C2 +Summary.AverageFirstSublevel=\u039C\u03AD\u03C3\u03BF\u03C2 \u038C\u03C1\u03BF\u03C2 \u03A0\u03C1\u03CE\u03C4\u03BF\u03C5 \u03A5\u03C0\u03BF-\u03B5\u03C0\u03B9\u03C0\u03AD\u03B4\u03BF\u03C5 +Summary.CountAll=\u039A\u03B1\u03C4\u03B1\u03BC\u03AD\u03C4\u03C1\u03B7\u03C3\u03B7 \u038C\u03BB\u03C9\u03BD +Summary.CountNonsummaries=\u039A\u03B1\u03C4\u03B1\u03BC\u03AD\u03C4\u03C1\u03B7\u03C3\u03B7 \u03BC\u03B7 \u03C0\u03B5\u03C1\u03B9\u03BB\u03AE\u03C8\u03B5\u03C9\u03BD +Summary.List=\u039B\u03AF\u03C3\u03C4\u03B1  +Summary.Maximum=\u039C\u03AD\u03B3\u03B9\u03C3\u03C4\u03BF +Summary.Minimum=\u0395\u03BB\u03AC\u03C7\u03B9\u03C3\u03C4\u03BF +Summary.None=\u039A\u03B1\u03BD\u03AD\u03BD\u03B1 +Summary.OR=\u0389 +Summary.Sum=\u0386\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1 +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2:  +TaskIndicatorsComponent.TheCalendar=\u03A4\u03BF \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF +TaskIndicatorsComponent.TheIntersection=\u03A4\u03BF \u03C3\u03B7\u03BC\u03B5\u03AF\u03BF \u03C4\u03BF\u03BC\u03AE\u03C2 \u03C4\u03C9\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03C9\u03BD \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03BA\u03B1\u03B9 \u03C0\u03CC\u03C1\u03C9\u03BD \u03B4\u03B5\u03BD \u03AD\u03C7\u03B5\u03B9 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03BF \u03C7\u03C1\u03CC\u03BD\u03BF +TaskIndicatorsComponent.TheTaskWasCompletedOn=\u0397 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5 \u03C3\u03C4\u03B9\u03C2 +TaskIndicatorsComponent.ThisParentTaskHasResources=\u0397 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B3\u03BF\u03BD\u03AD\u03B1\u03C2 \u03AD\u03C7\u03B5\u03B9 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2 \u03BA\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03BF\u03C5\u03C2 \u03B1\u03C0\u03B5\u03C5\u03B8\u03B5\u03AF\u03B1\u03C2 \u03C3\u03B5 \u03B1\u03C5\u03C4\u03AE\u03BD +TaskIndicatorsComponent.ThisSubprojectIsNotValid=\u0391\u03C5\u03C4\u03CC \u03C4\u03BF \u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AD\u03B3\u03BA\u03C5\u03C1\u03BF: \u039C\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B5\u03B9\u03C3\u03B1\u03C7\u03B8\u03B5\u03AF \u03BC\u03CC\u03BD\u03BF \u03BC\u03AF\u03B1 \u03C6\u03BF\u03C1\u03AC \u03C3\u03B5 \u03AD\u03BD\u03B1 \u03AD\u03C1\u03B3\u03BF +TaskIndicatorsComponent.ThisTaskFinishesOn=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03C4\u03B5\u03BB\u03B9\u03CE\u03BD\u03B5\u03B9 \u03C3\u03C4\u03B9\u03C2 +TaskIndicatorsComponent.ThisTaskHasA=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03AD\u03C7\u03B5\u03B9 +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BD\u03B1\u03C4\u03B5\u03B8\u03B5\u03AF +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03BD\u03B1\u03C4\u03B5\u03B8\u03B5\u03AF \u03C3\u03B5 \u03C3\u03AD\u03BD\u03B1 +TaskIndicatorsComponent.ThisTasksRepresentsThe=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B1\u03BD\u03C4\u03B9\u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B5\u03CD\u03B5\u03B9 \u03C4\u03BF +TaskIndicatorsComponent.constraintOn=\u03C0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u03C3\u03B5 +TaskIndicatorsComponent.isAssignedToTheTask=\u03B1\u03BD\u03B1\u03C4\u03B5\u03AF\u03B8\u03B5\u03C4\u03B1\u03B9 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +TaskIndicatorsComponent.opened=\u03B1\u03BD\u03BF\u03B9\u03B3\u03BC\u03AD\u03BD\u03BF +TaskIndicatorsComponent.subproject=\u03C5\u03C0\u03BF\u03AD\u03C1\u03B3\u03BF +TaskIndicatorsComponent.unopened=\u03BC\u03B7 \u03B1\u03BD\u03BF\u03B9\u03B3\u03BC\u03AD\u03BD\u03BF +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ \u03C4\u03BF \u03BF\u03C0\u03BF\u03AF\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B5\u03C4\u03AC \u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B8\u03B5\u03C3\u03BC\u03AF\u03B1 +TaskInformationDialog.Advanced=\u03A0\u03C1\u03BF\u03C7\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03BF\u03C2 +TaskInformationDialog.ConstrainTask=\u03A0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03BF\u03AF +TaskInformationDialog.Dates=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B5\u03C2 +TaskInformationDialog.General=\u0393\u03B5\u03BD\u03B9\u03BA\u03AC +TaskInformationDialog.Notes=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +TaskInformationDialog.Predecessors=\u03A0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03B9 +TaskInformationDialog.Resources=\u03A0\u03CC\u03C1\u03BF\u03B9 +TaskInformationDialog.Successors=\u0394\u03B9\u03AC\u03B4\u03BF\u03C7\u03BF\u03B9 +TaskInformationDialog.TaskInformation=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Text.Allocated=\u039A\u03B1\u03C4\u03B1\u03BD\u03B5\u03BC\u03B7\u03BC\u03AD\u03BD\u03BF +Text.ApplicationTitle=ProjectLibre +Text.Assign=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +Text.AssignResources=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +Text.Baseline=\u0393\u03C1\u03B1\u03BC\u03BC\u03AE \u0392\u03AC\u03C3\u03B7\u03C2 +Text.Cancel=\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7 +Text.ClearBaseline=\u039A\u03B1\u03B8\u03B1\u03C1\u03B9\u03C3\u03BC\u03CC\u03C2 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Text.CostRateTables=\u03A0\u03AF\u03BD\u03B1\u03BA\u03B5\u03C2 \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03BF\u03CD \u03BA\u03CC\u03C3\u03C4\u03BF\u03C5\u03C2 +Text.Cumulative=\u0391\u03B8\u03C1\u03BF\u03B9\u03C3\u03C4\u03B9\u03BA\u03CC +Text.DetectingJavaVersion=\u0391\u03BD\u03AF\u03C7\u03BD\u03B5\u03C5\u03C3\u03B7 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7\u03C2 Java +Text.DisabledExternalTaskDependency=\u0391\u03C0\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03B7 \u0395\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AE \u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Text.EntireProject=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03CC \u0388\u03C1\u03B3\u03BF +Text.ExternalTaskDependency=\u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7 \u0395\u03BE\u03C9\u03C4\u03B5\u03C1\u03B9\u03BA\u03AE\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Text.Field=\u03A0\u03B5\u03B4\u03AF\u03BF +Text.Filter=\u03A6\u03AF\u03BB\u03C4\u03C1\u03BF +Text.From=\u0391\u03C0\u03CC +Text.Group=\u039F\u03BC\u03AC\u03B4\u03B1 +Text.HierarchicalRelation=\u0399\u03B5\u03C1\u03B1\u03C1\u03C7\u03B9\u03BA\u03AE \u03A3\u03C7\u03AD\u03C3\u03B7 +Text.Histogram=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +Text.Lag=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03AD\u03C1\u03B7\u03C3\u03B7 +Text.No=\u038C\u03C7\u03B9 +Text.None=\u039A\u03B1\u03BD\u03AD\u03BD\u03B1 +Text.OtherProjects=  \u0386\u03BB\u03BB\u03B1 \u0388\u03C1\u03B3\u03B1 +Text.Remove=\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 +Text.Replace=\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 +Text.ReplaceResource=\u0391\u03BD\u03C4\u03B9\u03BA\u03B1\u03C4\u03AC\u03C3\u03C4\u03B1\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +Text.Save=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 +Text.SaveBaseline=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +Text.Selected=\u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF +Text.SelectedTasks=\u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Text.ShowSelectedOnTop=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7  \u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF\u03C5 \u03C3\u03C4\u03B7\u03BD \u03BA\u03BF\u03C1\u03C5\u03C6\u03AE +Text.ShowTeamResourcesOnly=\u039C\u03CC\u03BD\u03BF \u03A0\u03CC\u03C1\u03BF\u03B9 \u039F\u03BC\u03AC\u03B4\u03B1\u03C2 +Text.Sort=\u03A4\u03B1\u03BE\u03B9\u03BD\u03CC\u03BC\u03B7\u03C3\u03B7 +Text.Task=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +Text.TaskDependency=\u0395\u03BE\u03AC\u03C1\u03C4\u03B7\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +Text.Tasks=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +Text.ThisProject=\u0391\u03C5\u03C4\u03CC \u03C4\u03BF \u0388\u03C1\u03B3\u03BF +Text.To=\u03A0\u03C1\u03BF\u03C2 +Text.Type=\u0395\u03AF\u03B4\u03BF\u03C2 +Text.Unassigned=\u03A7\u03C9\u03C1\u03AF\u03C2 \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 +Text.Untitled=\u03A7\u03C9\u03C1\u03AF\u03C2 \u03C4\u03AF\u03C4\u03BB\u03BF +Text.UserDefinedInParentheses=(\u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7) +Text.With=\u039C\u03B5 +Text.Yes=\u039D\u03B1\u03B9 +Text.budget=\u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03CC\u03C2 +Text.clickToRename=(\u039A\u03BB\u03AF\u03BA\u03B1\u03C1\u03B5 \u03B3\u03B9\u03B1 \u03BC\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1) +Text.cost=\u03BA\u03CC\u03C3\u03C4\u03BF\u03C2 +Text.createProject=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +Text.forwardScheduled=\u03A0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF \u03C0\u03C1\u03BF\u03C2 \u03C4\u03B1 \u03B5\u03BC\u03C0\u03C1\u03CC\u03C2 +Text.insertProject=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE \u0388\u03C1\u03B3\u03BF\u03C5 +Text.manageResources=\u0394\u03B9\u03B1\u03C7\u03B5\u03AF\u03C1\u03B9\u03C3\u03B7 \u0394\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE\u03C2 \u03A0\u03CC\u03C1\u03C9\u03BD +Text.modifiedInParentheses=(\u03C4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03B9\u03B7\u03BC\u03AD\u03BD\u03BF\u03C2) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=\u0388\u03C1\u03B3\u03BF \u0394\u03B9\u03B1\u03BA\u03BF\u03BC\u03B9\u03C3\u03C4\u03AE +Text.openProject=\u0386\u03BD\u03BF\u03B9\u03BE\u03B5 \u03C4\u03BF \u0388\u03C1\u03B3\u03BF +Text.predecessor=\u03C0\u03C1\u03BF\u03BA\u03AC\u03C4\u03BF\u03C7\u03BF\u03C2 +# {0} is the name of the thing to rename +Text.rename.mf=\u039C\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1 +Text.resetRoles=\u0397 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u201C \u038C\u03BB\u03BF\u03B9 \u03BF\u03B9 \u03A0\u03CC\u03C1\u03BF\u03B9\u201D \u03B4\u03AF\u03BD\u03B5\u03B9 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C3\u03B5 \u03CC\u03BB\u03BF\u03C5\u03C2 \u03C4\u03BF\u03C5\u03C2 \u03C7\u03C1\u03AE\u03C3\u03C4\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BF\u03C1\u03AF\u03C3\u03B5\u03B9 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C4\u03B1\u03B9\u03C1\u03B5\u03B9\u03B1 \u03C3\u03B1\u03C2 \u03B5\u03BA\u03C4\u03CC\u03C2 \u03B1\u03C0\u03CC \u03C4\u03BF\u03C5\u03C2 \u03A7\u03C1\u03AE\u03C3\u03C4\u03B5\u03C2 \u201C\u03A3\u03C5\u03BD\u03B5\u03C1\u03B3\u03AC\u03C4\u03B7/ \u03A0\u03B5\u03BB\u03AC\u03C4\u03B7\u201D . \n \u039F\u03B9 \u03C3\u03C5\u03B3\u03BA\u03B5\u03BA\u03C1\u03B9\u03BC\u03AD\u03BD\u03BF\u03B9 \u03C0\u03B5\u03C1\u03B9\u03BF\u03C1\u03B9\u03C3\u03BC\u03BF\u03AF \u03C4\u03BF\u03C5 \u03AD\u03C1\u03B3\u03BF\u03C5 \u03C0\u03BF\u03C5 \u03B5\u03BD\u03B4\u03AD\u03C7\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B5\u03B9\u03C3\u03B1\u03B3\u03AC\u03B3\u03B5\u03B9 \u03C3\u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD \u03B8\u03B1 \u03B5\u03C0\u03B1\u03BD\u03B1\u03C6\u03B5\u03C1\u03B8\u03BF\u03CD\u03BD. +Text.reverseScheduled=\u0391\u03BD\u03C4\u03AF\u03C3\u03C4\u03C1\u03BF\u03C6\u03B1 \u03A0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03BC\u03AD\u03BD\u03BF +Text.rightClickSelectToSpreadsheet=\u039A\u03BB\u03AF\u03BA\u03B1\u03C1\u03B5 \u03B4\u03B5\u03BE\u03B9\u03AC \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE \u03AE \u03BC\u03B5\u03C4\u03BF\u03BD\u03BF\u03BC\u03B1\u03C3\u03AF\u03B1 \u03C4\u03C9\u03BD \u03C0\u03B9\u03BD\u03AC\u03BA\u03C9\u03BD \u03C4\u03C9\u03BD \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03CE\u03BD \u03C6\u03CD\u03BB\u03BB\u03C9\u03BD +Text.rightClickToInsertRemoveColumns=\u039A\u03BB\u03AF\u03BA\u03B1\u03C1\u03B5 \u03B4\u03B5\u03BE\u03B9\u03AC \u03B3\u03B9\u03B1 \u03B5\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE/\u03B1\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03C3\u03C4\u03B7\u03BB\u03CE\u03BD +Text.successor=\u03B4\u03B9\u03AC\u03B4\u03BF\u03C7\u03BF\u03C2 +Text.taskHierarchy=\u0399\u03B5\u03C1\u03B1\u03C1\u03C7\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD: +Text.welcomeSubject=\u039A\u03B1\u03BB\u03CE\u03C2 \u03AE\u03C1\u03B8\u03B5\u03C2 \u03C3\u03C4\u03B1 \u0388\u03C1\u03B3\u03B1 \u039A\u03B1\u03C4\u03AC \u03A0\u03B1\u03C1\u03B1\u03B3\u03B3\u03B5\u03BB\u03AF\u03B1  +Text.welcomeToPod=\u039A\u03B1\u03BB\u03CE\u03C2 \u03AE\u03C1\u03B8\u03B5\u03C2 \u03C3\u03C4\u03BF ProjectLibre +Text.work=\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +TimeChartPopupMenu.VerticalScrolling=\u039A\u03AC\u03B8\u03B5\u03C4\u03B7 \u03BA\u03CD\u03BB\u03B9\u03C3\u03B7 +TimesheetHelper.Entered=\u0395\u03B9\u03C3\u03B7\u03B3\u03BC\u03AD\u03BD\u03BF +TimesheetHelper.Integrated=\u0395\u03BD\u03C3\u03C9\u03BC\u03B1\u03C4\u03C9\u03BC\u03AD\u03BD\u03BF\u03C2 +TimesheetHelper.Mixed=\u0391\u03BD\u03AC\u03BC\u03B5\u03B9\u03BA\u03C4\u03BF\u03C2 +TimesheetHelper.New=\u039D\u03AD\u03BF +TimesheetHelper.Rejected=\u0391\u03C0\u03BF\u03C1\u03C1\u03AF\u03C6\u03B8\u03B7\u03BA\u03B5 +TimesheetHelper.Saved=\u0391\u03C0\u03BF\u03B8\u03B7\u03BA\u03B5\u03CD\u03C4\u03B7\u03BA\u03B5 +TimesheetHelper.Validated=\u0395\u03C0\u03B9\u03BA\u03C5\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5 +Title.ProjityError=ProjectLibre \u039B\u03B1\u03B8\u03BF\u03C2 +Title.ProjityWarning=  ProjectLibre \u0395\u03B9\u03B4\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 +TransformParameter.FinishDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03BB\u03AE\u03BE\u03B7\u03C2 +TransformParameter.StartDate=\u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7\u03C2 +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=\u03A3\u03C5\u03BD\u03BF\u03BB\u03B9\u03BA\u03CC \u0388\u03C1\u03B3\u03BF +UpdateProjectDialogBox.For=\u0393\u03B9\u03B1 +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\u0395\u03C0\u03B1\u03BD\u03B1\u03C0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03AF\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03C5\u03C0\u03BF\u03BB\u03B5\u03B9\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03B5\u03C4\u03AC +UpdateProjectDialogBox.SelectedTasks=\u0395\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03B5\u03C2 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 +UpdateProjectDialogBox.SetZeroHundred=\u03A0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03CC\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03BF\u03BB\u03BF\u03BA\u03BB\u03AE\u03C1\u03C9\u03C3\u03B7\u03C2 \u03C3\u03CD\u03BC\u03C6\u03C9\u03BD\u03B1 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 +UpdateProjectDialogBox.SetZeroOrHundredOnly=\u03A0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03CC\u03C3\u03C4\u03B5 (\u03BA\u03B1\u03B9 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03C4\u03B5) \u03BC\u03CC\u03BD\u03BF \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03C4\u03B5\u03BB\u03B5\u03B9\u03CE\u03BD\u03BF\u03C5\u03BD \u03BC\u03AD\u03C7\u03C1\u03B9 \u03C4\u03B7\u03BD \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 +UpdateProjectDialogBox.UpdateProject=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5 +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5 \u03C9\u03C2 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03C9\u03BC\u03AD\u03BD\u03BF\u03C5 \u03BC\u03AD\u03C3\u03C9 +UpdateTaskDialog.Actual=\u03A0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC +UpdateTaskDialog.Current=\u03A4\u03C1\u03AD\u03C7\u03BF\u03BD +UpdateTaskDialog.UpdateTask=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03AE\u03B4\u03B7 \u03C3\u03C4\u03BF\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B5\u03C0\u03B9\u03BB\u03AD\u03BE\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03AC\u03BB\u03BB\u03B7 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1. +ValueObjectForIntervalTable.ThisDateMustBeAfter=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B5\u03C4\u03AC \u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03C3\u03C4\u03BF\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1. +ValueObjectForIntervalTable.ThisDateMustBeBefore=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03C1\u03B9\u03BD \u03C4\u03B7\u03BD \u03B5\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03C3\u03C4\u03BF\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03C6\u03B1\u03B9\u03C1\u03AD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03C0\u03C1\u03CE\u03C4\u03B7 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03C3\u03C4\u03BF\u03BD \u03C0\u03AF\u03BD\u03B1\u03BA\u03B1. +WelcomeDialog.WhatWouldYouLikeToDo=\u03A4\u03B9 \u03B8\u03B1 \u03B8\u03AD\u03BB\u03B1\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5: +WorkRangeException.EndMustBeAfterStart=\u039F \u03C7\u03C1\u03CC\u03BD\u03BF\u03C2  \u03BB\u03AE\u03BE\u03B7\u03C2 \u03C4\u03BF\u03C5 \u03B5\u03CD\u03C1\u03BF\u03C5\u03C2 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B5\u03B3\u03B1\u03BB\u03CD\u03C4\u03B5\u03C1\u03BF\u03C2 \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03AD\u03BD\u03B1\u03C1\u03BE\u03AE \u03C4\u03BF\u03C5 +WorkRangeException.RangeIncomplete=\u2018\u0395\u03BD\u03B1 \u03B5\u03CD\u03C1\u03BF\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03B9 \u03BA\u03B1\u03B9 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03BA\u03B1\u03B9 \u03BB\u03AE\u03BE\u03B7 +WorkRangeException.RangesCannotOverlap=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B5\u03C0\u03B9\u03BA\u03B1\u03BB\u03C5\u03C0\u03C4\u03CC\u03BC\u03B5\u03BD\u03B1 \u03B5\u03CD\u03C1\u03B7 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +WorkRangeException.RangesMustBeOrdered=\u0397 \u03AD\u03BD\u03B1\u03C1\u03BE\u03B7 \u03B5\u03BD\u03CC\u03C2 \u03B5\u03CD\u03C1\u03BF\u03C5\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BC\u03B5\u03C4\u03AC \u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 +tip.1.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B3\u03AF\u03BD\u03B5\u03C4\u03B5 \u03BC\u03AD\u03BB\u03BF\u03C2 \u03C4\u03B7\u03C2 \u03BA\u03BF\u03B9\u03BD\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2 \u03C4\u03BF\u03C5 ProjectLibre \u03C3\u03C4\u03BF http://www.projectlibre.org \u0398\u03B1 \u03AD\u03C7\u03BF\u03C5\u03BC\u03B5 \u03B5\u03BD\u03B7\u03BC\u03B5\u03C1\u03CE\u03C3\u03B5\u03B9\u03C2, \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2 \u03BA\u03B1\u03B9 \u03B5\u03BA\u03B4\u03B7\u03BB\u03CE\u03C3\u03B5\u03B9\u03C2 \u03C4\u03B7\u03C2 \u03BA\u03BF\u03B9\u03BD\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2 +tip.1.name=ProjectLibre \u03BA\u03BF\u03B9\u03BD\u03CC\u03C4\u03B7\u03C4\u03B1 \u0393\u03AF\u03BD\u03B5\u03C4\u03B5 \u03BC\u03AD\u03BB\u03BF\u03C2 tip.2.description= You can right-click on the Gantt Chart, Spreadsheet Cells, Spreadsheet Headers, and the upper left corner of the Spreadsheet to get context-sensitive menus for modifying the view. = \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5 \u03B4\u03B5\u03BE\u03AF \u03BA\u03BB\u03B9\u03BA \u03C3\u03C4\u03BF \u0393\u03C1\u03AC\u03C6\u03B7\u03BC\u03B1 Gantt, \u03C3\u03C4\u03B1 \u039A\u03B5\u03BB\u03B9\u03AC \u03C4\u03BF\u03C5 \u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03BF\u03CD \u03A6\u03CD\u03BB\u03BF\u03C5, \u03C3\u03C4\u03B9\u03C2 \u039A\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B5\u03C2 \u03C4\u03BF\u03C5 \u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03BF\u03CD \u03A6\u03CD\u03BB\u03BF\u03C5, \u03BA\u03B1\u03B9 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C0\u03AC\u03BD\u03C9 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03AE \u03B3\u03C9\u03BD\u03AF\u03B1 \u03C4\u03BF\u03C5 \u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03BF\u03CD \u03A6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03B3\u03B9\u03B1 \u03C4\u03B7\u03BD \u03BB\u03AE\u03C8\u03B7 \u03BC\u03B5\u03BD\u03BF\u03CD \u03B5\u03C5\u03B1\u03AF\u03C3\u03B8\u03B7\u03C4\u03C9\u03BD \u03C3\u03C4\u03BF \u03C0\u03B5\u03C1\u03B9\u03B2\u03AC\u03BB\u03BB\u03BF\u03BD \u03B3\u03B9\u03B1 \u03C4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03C4\u03B7\u03C2 \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE  +tip.2.name=\u03A4\u03C1\u03BF\u03C0\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03CE\u03BD +tip.3.description=You can contribute to ProjectLibre! We're looking for translators and developers to make ProjectLibre better and better.  Contact partners@projectlibre.org. +tip.3.name=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B5\u03B9\u03C3\u03C6\u03AD\u03C1\u03B5\u03C4\u03B5 \u03C3\u03C4\u03BF ProjectLibre!  \u0391\u03BD\u03B1\u03B6\u03B7\u03C4\u03BF\u03CD\u03BC\u03B5 \u03BC\u03B5\u03C4\u03B1\u03C6\u03C1\u03B1\u03C3\u03C4\u03AD\u03C2 \u03BA\u03B1\u03B9 \u03C0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1\u03C4\u03B9\u03C3\u03C4\u03AD\u03C2 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03BF\u03C5\u03BC\u03B5 \u03C4\u03BF ProjectLibre \u03CC\u03BB\u03BF \u03BA\u03B1\u03B9 \u03BA\u03B1\u03BB\u03CD\u03C4\u03B5\u03C1\u03BF. \u0395\u03C0\u03B9\u03BA\u03BF\u03B9\u03BD\u03C9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C3\u03C4\u03BF partners@projectlibre.org. + +tip.4.description=\u03A4\u03BF \u03B9\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03B1 \u03B3\u03C1\u03B1\u03C6\u03AE\u03BC\u03B1\u03C4\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03C5\u03BD\u03B1\u03BC\u03B9\u03BA\u03AC \u03BA\u03B1\u03B9 \u03B5\u03BE\u03B1\u03C1\u03C4\u03CE\u03BD\u03C4\u03B1\u03B9 \u03B1\u03C0\u03CC \u03C4\u03B9\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B5\u03C0\u03B9\u03BB\u03AD\u03BE\u03B5\u03B9 \u03C0\u03B1\u03C1\u03B1\u03C0\u03AC\u03BD\u03C9. +tip.4.name=\u0394\u03C5\u03BD\u03B1\u03BC\u03B9\u03BA\u03AC \u03B3\u03C1\u03B1\u03C6\u03AE\u03BC\u03B1\u03C4\u03B1 +tip.5.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5 \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03B1\u03C0\u03B5\u03C5\u03B8\u03B5\u03AF\u03B1\u03C2 \u03C3\u03C4\u03BF \u0394\u03B9\u03AC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u0394\u03B9\u03BA\u03C4\u03CD\u03BF\u03C5 (\u03B3\u03C1\u03AC\u03C6\u03B7\u03BC\u03B1 PERT) +tip.5.name=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 \u03BC\u03C0\u03BB\u03BF\u03BA \u03B4\u03B9\u03BA\u03C4\u03CD\u03BF\u03C5 +tip.6.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B5\u03B9\u03C3\u03AC\u03B3\u03B5\u03C4\u03B5 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03BC\u03B5 \u03B5\u03C3\u03BF\u03C7\u03AE \u03BA\u03B1\u03B9 \u03C0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE  \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B9\u03B5\u03C1\u03B1\u03C1\u03C7\u03AF\u03B1 \u03B3\u03B9\u03B1 \u03C4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C3\u03B1\u03C2. \u0391\u03C5\u03C4\u03CC \u03B8\u03B1 \u03B1\u03C0\u03BF\u03C4\u03C5\u03C0\u03C9\u03B8\u03B5\u03AF \u03B5\u03C0\u03AF\u03C3\u03B7\u03C2 \u03C3\u03C4\u03B7\u03BD \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE WBS. +tip.6.name=\u0394\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B9\u03B5\u03C1\u03B1\u03C1\u03C7\u03AF\u03B1 \u03AD\u03C1\u03B3\u03BF\u03C5 +tip.7.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03BF\u03BD\u03C4\u03AF\u03BA\u03B9 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03C4\u03B5 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2, \u03BD\u03B1 \u03C4\u03B9\u03C2 \u03B5\u03C0\u03B5\u03BA\u03C4\u03B5\u03AF\u03BD\u03B5\u03C4\u03B5, \u03BD\u03B1 \u03C4\u03B9\u03C2 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03B5\u03C4\u03B5, \u03BD\u03B1 \u03C4\u03B9\u03C2 \u03BC\u03B5\u03C4\u03B1\u03BA\u03B9\u03BD\u03AE\u03C3\u03B5\u03C4\u03B5, \u03BD\u03B1 \u03C4\u03B9\u03C2 \u03BE\u03B5\u03C7\u03C9\u03C1\u03AF\u03C3\u03B5\u03C4\u03B5. +tip.7.name=\u039B\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B5\u03C2 \u03C0\u03BF\u03BD\u03C4\u03B9\u03BA\u03B9\u03BF\u03CD +tip.8.description=\u03A3\u03C5\u03BD\u03AE\u03B8\u03C9\u03C2 \u03B8\u03B1 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B4\u03B9\u03B1\u03C4\u03B7\u03C1\u03AE\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03B7\u03C2 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AE\u03C2 FS (\u039B\u03AE\u03BE\u03B7 - \u0388\u03BD\u03B1\u03C1\u03BE\u03B7) \u03BC\u03B5\u03C4\u03B1\u03BE\u03CD \u03C4\u03C9\u03BD \u03B5\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD. \u03A0\u03B5\u03C1\u03B9\u03C3\u03C4\u03B1\u03C3\u03B9\u03B1\u03BA\u03AC \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD  SS \u03BA\u03B1\u03B9 FF, \u03B1\u03BB\u03BB\u03AC \u03B7 SF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03C0\u03BF\u03BB\u03CD \u03C3\u03C0\u03AC\u03BD\u03B1. +tip.8.name=  \u03A4\u03CD\u03C0\u03BF\u03B9 \u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\u03C2 +tip.9.description=\u0395\u03AF\u03BD\u03B1\u03B9 \u03C0\u03AC\u03BD\u03C4\u03BF\u03C4\u03B5 \u03BA\u03B1\u03BB\u03AE \u03B9\u03B4\u03AD\u03B1 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B8\u03B7\u03BA\u03B5\u03CD\u03C3\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B2\u03AC\u03C3\u03B7\u03C2 \u03B3\u03B9\u03B1 \u03C4\u03BF \u03AD\u03C1\u03B3\u03BF \u03C3\u03B1\u03C2. \u03A4\u03BF ProjectLibre \u03C3\u03B1\u03C2 \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B8\u03B7\u03BA\u03B5\u03CD\u03C3\u03B5\u03C4\u03B5 \u03AD\u03C9\u03C2 \u03BA\u03B1\u03B9 11 \u03B1\u03C0\u03CC \u03B1\u03C5\u03C4\u03AC \u03C4\u03B1 \u03BF\u03C0\u03BF\u03AF\u03B1 \u03B8\u03B1 \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03B1 \u03B5\u03BC\u03C6\u03B1\u03BD\u03AF\u03C3\u03B5\u03C4\u03B5 \u03C3\u03C4\u03BF Gantt \u03BA\u03B1\u03B9 \u03BD\u03B1 \u03C4\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C4\u03B5 \u03B3\u03B9\u03B1 \u0391\u03BD\u03AC\u03BB\u03C5\u03C3\u03B7 \u039A\u03B5\u03C1\u03B4\u03B9\u03C3\u03BC\u03AD\u03BD\u03B7\u03C2 \u0391\u03BE\u03AF\u03B1\u03C2 +tip.9.name=\u0393\u03C1\u03B1\u03BC\u03BC\u03AD\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +tip.10.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B1\u03C1\u03BC\u03CC\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 \u03C3\u03B5 \u03BC\u03B9\u03B1 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03BC\u03B5 \u03BC\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7 / \u03C3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7  \u03C3\u03C4\u03BF gantt \u03BA\u03B1\u03B9 \u03B1\u03BB\u03BB\u03B1\u03B3\u03AE \u03BC\u03B5\u03B3\u03AD\u03B8\u03BF\u03C5\u03C2 \u03AE  \u03B1\u03C0\u03CC\u03BA\u03C1\u03C5\u03C8\u03B7 \u03C3\u03C4\u03AE\u03BB\u03B7\u03C2. +tip.10.name=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 \u03C3\u03B5 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 +tip.11.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03BF\u03AF\u03BE\u03B5\u03C4\u03B5 \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1 \u03C0\u03BF\u03C5 \u03AD\u03C7\u03BF\u03C5\u03BD \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03B7\u03B8\u03B5\u03AF \u03B1\u03C0\u03CC \u03C4\u03BF Microsoft Project \u03C3\u03C4\u03BF ProjectLibre, \u03BA\u03B1\u03B9 \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03B5\u03C0\u03AF\u03C3\u03B7\u03C2 \u03BD\u03B1 \u03C4\u03B1 \u03B1\u03C0\u03BF\u03B8\u03B7\u03BA\u03B5\u03CD\u03C3\u03B5\u03C4\u03B5 \u03BE\u03B1\u03BD\u03AC \u03C3\u03B5 \u03BC\u03BF\u03C1\u03C6\u03AE Microsoft XML +tip.11.name=MS Project \u03C3\u03C5\u03BC\u03B2\u03B1\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1 +tip.12.description=\u03A4\u03BF ProjectLibre \u03AD\u03C7\u03B5\u03B9 \u03C3\u03C4\u03B7 \u03B4\u03B9\u03AC\u03B8\u03B5\u03C3\u03AE \u03C3\u03B1\u03C2 \u03C0\u03BF\u03BB\u03BB\u03AC \u03C0\u03B5\u03B4\u03AF\u03B1 \u03BA\u03B1\u03B8\u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7. \u0394\u03BF\u03BA\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03C4\u03B5 \u03B4\u03B5\u03BE\u03AF \u03BA\u03BB\u03B9\u03BA \u03C3\u03C4\u03B7\u03BD \u03BA\u03B5\u03C6\u03B1\u03BB\u03AF\u03B4\u03B1 \u03B5\u03BD\u03CC\u03C2 \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03B9\u03BA\u03BF\u03CD \u03C6\u03CD\u03BB\u03BB\u03BF\u03C5 \u03BA\u03B1\u03B9 \u03B4\u03B5\u03AF\u03C4\u03B5. +tip.12.name=\u03A0\u03B5\u03B4\u03AF\u03B1 \u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1 \u03B1\u03C0\u03CC \u03C4\u03BF\u03BD \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7 +tip.13.description=\u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03B1\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03B7\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03B1 \u03C3\u03C4\u03B9\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2, \u03C3\u03C4\u03BF\u03C5\u03C2 \u03C0\u03CC\u03C1\u03BF\u03C5\u03C2, \u03BA\u03B1\u03B9 \u03C3\u03C4\u03B1 \u03AD\u03C1\u03B3\u03B1 \u03CE\u03C3\u03C4\u03B5 \u03BD\u03B1 \u03BB\u03B7\u03C6\u03B8\u03BF\u03CD\u03BD \u03C5\u03C0\u03CC\u03C8\u03B7 \u03BF\u03B9 \u03B1\u03C1\u03B3\u03AF\u03B5\u03C2.  +tip.13.name=\u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03B1 +tip.14.description=  +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name=  + +Text.badJavaVersion=H \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7 Java \u03B5\u03AF\u03BD\u03B1\u03B9 "{0}". \u0393\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03BA\u03C4\u03B5\u03BB\u03AD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF ProjectLibre, \u03C7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD Java 1.6 \u03AE \u03BC\u03B5\u03C4\u03B1\u03B3\u03B5\u03BD\u03AD\u03C3\u03C4\u03B5\u03C1\u03B7 +Text.badJavaVendor=\u039F Java \u03C0\u03C1\u03BF\u03BC\u03B7\u03B8\u03B5\u03C5\u03C4\u03AE\u03C2 \u03C3\u03B1\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 "{0}". \u0393\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03BA\u03C4\u03B5\u03BB\u03AD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF ProjectLibre, \u03C7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C3\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE Sun Java.  +Text.javaExecutable=\u0397 \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B1 \u03B1\u03BD\u03B9\u03C7\u03BD\u03B5\u03CD\u03C3\u03B9\u03BC\u03B7  Java Runtime \u03C0\u03BF\u03C5 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF\u03C4\u03B1\u03B9 \u03B5\u03AF\u03BD\u03B1\u03B9 {0}.\n \u0395\u03AC\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BC\u03B9\u03B1 \u03BD\u03B5\u03CC\u03C4\u03B5\u03C1\u03B7 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7 \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03B7\u03BD \u03B1\u03BB\u03BB\u03AC\u03BE\u03B5\u03C4\u03B5 \u03C7\u03B5\u03B9\u03C1\u03BF\u03BA\u03AF\u03BD\u03B7\u03C4\u03B1 \u03B4\u03B9\u03B1\u03B3\u03C1\u03AC\u03C6\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7\u03BD n"{1}" \u03B9\u03B4\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1 \u03C3\u03C4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7\u03C2 \u03B1\u03BD\u03AF\u03C7\u03BD\u03B5\u03C5\u03C3\u03B7\u03C2 "{2}".\n \u0394\u03B9\u03B1\u03C6\u03BF\u03C1\u03B5\u03C4\u03B9\u03BA\u03AC, \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03BE\u03B1\u03BD\u03B1\u03B3\u03BA\u03AC\u03C3\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B7-\u03B1\u03BD\u03AF\u03C7\u03BD\u03B5\u03C5\u03C3\u03B7 \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03C6\u03B1\u03B9\u03C1\u03AD\u03C3\u03B5\u03C4\u03B5"{2}". + +Text.newVersion=\u03A5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B7 \u03BC\u03B9\u03B1 \u03BD\u03B5\u03CC\u03C4\u03B5\u03C1\u03B7 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7  {0} \u03C4\u03BF\u03C5 ProjectLibre.\n \u0397 \u03C4\u03C1\u03AD\u03C7\u03BF\u03C5\u03C3\u03B1 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7 \u03B5\u03AF\u03BD\u03B1\u03B9 {1}.\n \u0398\u03B1 \u03B8\u03AD\u03BB\u03B1\u03C4\u03B5 \u03BD\u03B1 \u03BC\u03B5\u03C4\u03B1\u03B2\u03B5\u03AF\u03C4\u03B5 \u03C3\u03C4\u03B7\u03BD \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 \u03BB\u03AE\u03C8\u03B7\u03C2 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03C4\u03B7\u03BD \u03BB\u03AC\u03B2\u03B5\u03C4\u03B5 \u03C4\u03CE\u03C1\u03B1; + +TipOfTheDay.dialogTitle=\u03A3\u03C5\u03BC\u03B2\u03BF\u03C5\u03BB\u03AE \u03C4\u03B7\u03C2 \u0397\u03BC\u03AD\u03C1\u03B1\u03C2 +TipOfTheDay.didYouKnowText=\u0393\u03BD\u03CE\u03C1\u03B9\u03B6\u03B5\u03C2 +TipOfTheDay.showOnStartupText=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03C3\u03C5\u03BC\u03B2\u03BF\u03C5\u03BB\u03CE\u03BD \u03C3\u03C4\u03B7\u03BD \u03B5\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7 +TipOfTheDay.previousTipText=\u03A0\u03AF\u03C3\u03C9 +TipOfTheDay.nextTipText=\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03BF +TipOfTheDay.closeText=Close - \u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF + + +Warn.lockMessage=\u03A4\u03BF \u03AD\u03C1\u03B3\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AE\u03B4\u03B7 \u03BA\u03BB\u03B5\u03B9\u03B4\u03C9\u03BC\u03AD\u03BD\u03BF \u03B1\u03C0\u03CC {0}. \u0398\u03B1 \u03B8\u03AD\u03BB\u03B1\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03BF \u03B1\u03BD\u03BF\u03AF\u03BE\u03B5\u03C4\u03B5 \u03BC\u03CC\u03BD\u03BF \u03B3\u03B9\u03B1 \u03B1\u03BD\u03AC\u03B3\u03BD\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE + +#added 14/2/08 +Filter.StartingWithinWeek=\u0395\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7  \u03B5\u03BD\u03C4\u03CC\u03C2 \u03BC\u03B9\u03B1\u03C2 \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1\u03C2 +Filter.StartingWithinTwoWeeks=\u0395\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7 \u03B5\u03BD\u03C4\u03CC\u03C2 \u03B4\u03CD\u03BF \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03C9\u03BD +Filter.LateStarting=\u039A\u03B1\u03B8\u03C5\u03C3\u03C4\u03B5\u03C1\u03B7\u03BC\u03AD\u03BD\u03B7 \u03B5\u03BA\u03BA\u03AF\u03BD\u03B7\u03C3\u03B7 + +Warn.resourcePoolOpen=\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03BF\u03AF\u03BE\u03B5\u03C4\u03B5 \u03AC\u03BB\u03BB\u03BF \u03AD\u03C1\u03B3\u03BF \u03B5\u03BD\u03CE \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03BD\u03BF\u03B9\u03C7\u03C4\u03AE \u03B7 \u0394\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE \u03A0\u03CC\u03C1\u03C9\u03BD +Warn.resourcePoolCannotOpen="red">Y\u0394\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03BD\u03BF\u03AF\u03BE\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B4\u03B5\u03BE\u03B1\u03BC\u03B5\u03BD\u03AE \u03C0\u03CC\u03C1\u03C9\u03BD \u03CC\u03C4\u03B1\u03BD \u03AD\u03BD\u03B1 \u03AC\u03BB\u03BB\u03BF \u03AD\u03C1\u03B3\u03BF \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03BD\u03BF\u03B9\u03C7\u03C4\u03CC. +Warn.fileNotFound=\u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B5 \u03C4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF + +Text.donateMessage=To ProjectLibre \u03B4\u03B9\u03B1\u03C4\u03AF\u03B8\u03B5\u03C4\u03B1\u03B9 \u03B4\u03C9\u03C1\u03B5\u03AC\u03BD. \u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B5\u03C3\u03BC\u03B5\u03CD\u03C3\u03B5\u03B9\u03C2, \u03BA\u03B1\u03B9 \u03C3\u03B1\u03C2 \u03B5\u03BE\u03BF\u03B9\u03BA\u03BF\u03BD\u03BF\u03BC\u03B5\u03AF \u03C4\u03B7\u03BD \u03C4\u03B9\u03BC\u03AE \u03BA\u03B1\u03C4\u03B1\u03BB\u03CC\u03B3\u03BF\u03C5 $999.99 \u03C4\u03BF\u03C5 \u03B5\u03BC\u03C0\u03BF\u03C1\u03B9\u03BA\u03BF\u03CD \u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03B9\u03BA\u03BF\u03CD \u03B4\u03B9\u03B1\u03C7\u03B5\u03AF\u03C1\u03B9\u03C3\u03B7\u03C2 \u03AD\u03C1\u03B3\u03C9\u03BD. +Text.donateTitle=\u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03C5\u03C0\u03BF\u03C3\u03C4\u03B7\u03C1\u03AF\u03BE\u03C4\u03B5 \u03C4\u03BF ProjectLibre +Text.runsSinceMessage= \u0388\u03C7\u03B5\u03C4\u03B5 \u03B5\u03BA\u03C4\u03B5\u03BB\u03AD\u03C3\u03B5\u03B9 \u03C4\u03BF ProjectLibre {0,number} \u03C6\u03BF\u03C1\u03AD\u03C2 \u03B1\u03C0\u03CC {1,date,short} +Text.tryPODTitle=\u0394\u03BF\u03BA\u03B9\u03BC\u03AC\u03C3\u03C4\u03B5 \u03C4\u03B1 \u0388\u03C1\u03B3\u03B1 \u039A\u03B1\u03C4\u03AC \u03A0\u03B1\u03C1\u03B1\u03B3\u03B3\u03B5\u03BB\u03AF\u03B1  + + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=\u039C\u03B7\u03BD \u03B5\u03BC\u03C6\u03B1\u03BD\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C0\u03AC\u03BB\u03B9 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03BC\u03AE\u03BD\u03C5\u03BC\u03B1 + +Warn.saveXML=\u0398\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03B5\u03AF\u03C4\u03B5 \u03BC\u03CC\u03BD\u03BF \u03C4\u03B7\u03BD XML \u03BC\u03BF\u03C1\u03C6\u03AE \u03BA\u03B1\u03C4\u03AC \u03C4\u03B7\u03BD \u03B1\u03BD\u03C4\u03B1\u03BB\u03BB\u03B1\u03B3\u03AE \u03BC\u03B5 \u03BC\u03B9\u03B1 \u03AC\u03BB\u03BB\u03B7 \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03BA\u03B1\u03B8\u03CE\u03C2 \u03BF\u03C1\u03B9\u03C3\u03BC\u03AD\u03BD\u03B1 \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1 \u03B5\u03BD\u03B4\u03AD\u03C7\u03B5\u03C4\u03B1\u03B9 \u03BD\u03B1 \u03C7\u03B1\u03B8\u03BF\u03CD\u03BD. \n \u0398\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03C3\u03C5\u03BD\u03B5\u03C7\u03AF\u03C3\u03B5\u03C4\u03B5; + +Text.rightClickForOptions=\u039A\u03AC\u03BD\u03C4\u03B5 \u03B4\u03B5\u03BE\u03AF \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03AD\u03C2 diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_fr.properties b/projectlibre_core/src/com/projectlibre1/strings/client_fr.properties index 436d949..056ff93 100755 --- a/projectlibre_core/src/com/projectlibre1/strings/client_fr.properties +++ b/projectlibre_core/src/com/projectlibre1/strings/client_fr.properties @@ -1044,7 +1044,7 @@ Text.modifiedInParentheses=(modifi Text.thousandsAbbreviation=K Text.millionsAbbreviation=M Text.newServerProject=Projet de serveur -Text.openProject=Projet ouvert +Text.openProject=Ouvrir le projet Text.predecessor=prdcesseur # {0} is the name of the thing to rename Text.rename.mf=Renommer {0} @@ -1234,3 +1234,7 @@ T_CANCEL=Annuler T_SAVE=Sauvegarder T_REFRESH=Rafra\u00eechir T_VIEW=Vue + + +Message.languageChange=Language change will take effect at restart\nApply change? + diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_it.properties b/projectlibre_core/src/com/projectlibre1/strings/client_it.properties index 33aae87..93c7186 100644 --- a/projectlibre_core/src/com/projectlibre1/strings/client_it.properties +++ b/projectlibre_core/src/com/projectlibre1/strings/client_it.properties @@ -1,1238 +1,1245 @@ -############################################################################### -# The contents of this file are subject to the Common Public Attribution License -# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public -# License Version 1.1 but Sections 14 and 15 have been added to cover use of -# software over a computer network and provide for limited attribution for the -# Original Developer. In addition, Exhibit A has been modified to be consistent -# with Exhibit B. -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the -# specific language governing rights and limitations under the License. The -# Original Code is ProjectLibre. The Original Developer is the Initial Developer -# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are -# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by -# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor -# ProjectLibre, Inc. -# -# Alternatively, the contents of this file may be used under the terms of the -# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case -# the provisions of the ProjectLibre License are applicable instead of those above. -# If you wish to allow use of your version of this file only under the terms of the -# ProjectLibre License and not to allow others to use your version of this file -# under the CPAL, indicate your decision by deleting the provisions above and -# replace them with the notice and other provisions required by the ProjectLibre -# License. If you do not delete the provisions above, a recipient may use your -# version of this file under either the CPAL or the ProjectLibre Licenses. -# -# -# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices -# in the Source Code files of the Original Code. You should use the text of this -# Exhibit A rather than the text found in the Original Code Source Code for Your -# Modifications.] -# -# EXHIBIT B. Attribution Information for ProjectLibre required -# -# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. -# Attribution Phrase (not exceeding 10 words): -# ProjectLibre, open source project management software. -# Attribution URL: http://www.projectlibre.com -# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with -# alternatives listed on http://www.projectlibre.com/logo -# -# Display of Attribution Information is required in Larger Works which are defined -# in the CPAL as a work which combines Covered Code or portions thereof with code -# not governed by the terms of the CPAL. However, in addition to the other notice -# obligations, all copies of the Covered Code in Executable and Source Code form -# distributed must, as a form of attribution of the original author, include on -# each user interface screen the "ProjectLibre" logo visible to all users. -# The ProjectLibre logo should be located horizontally aligned with the menu bar -# and left justified on the top left of the screen adjacent to the File menu. The -# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" -# logo it must direct them back to http://www.projectlibre.com. -############################################################################### - - -#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. - -#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. -#The # gets replaced by a number for each one -#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example -#Anything within the {} symbols must not be translated - -# The strings whose keys have the .mf suffix must be formated with the rules described in -# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html -# For extense the quotes ' must be doubled and replaced by '' . - -# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. -# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces -# Some strings contain spaces at the end. Be careful to conserve them -# Strings with colons at the end should retain the colons at the end - - -# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages -# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help -#ACWP = Actual Cost of Work Performed -#BAC = Budget at Completion -#BCWP = Budgeted Cost of Work Performed -#BCWS = Budgeted Cost of Work Scheduled -#CPI = Cost Peformance Index -#CSI = Cost Schedule Index -#CV = Cost Variance -#CV = Cost Variance Percent -#EAC = Estimate at Complete -#SPI = Schedule Peformance Index -#SV = Schedule Variance -#SV = Schedule Variance Percent -#TCPI = To Complete Performance Index -#VAC = Value at Completion -#WBS = Work Breakdown Structure -#RBS = Resource Breakdown Structure - - - - -AboutDialog.About=About -AboutDialog.copyright=Copyright 2012-2020 ProjectLibre Inc. Tutti i diritti riservati. -AccessControlPolicy.PUBLIC=Tutte le risorse (eccetto clienti/partner) -AccessControlPolicy.RESTRICTED=Based on Project Role in resources view -AccrualType.End=Fine -AccrualType.Prorated=Prorated -AccrualType.Start=Inizia -AssignmentDialog.ShowingAllResources=Mostra tutte le risorse -AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=Mostra solo le risorse del team di progetto -AssignmentDialog.none=(vuoto) -Bar.assignment=assignment -Bar.baseline10=baseline10 -Bar.baseline1=baseline1 -Bar.baseline2=baseline2 -Bar.baseline3=baseline3 -Bar.baseline4=baseline4 -Bar.baseline5=baseline5 -Bar.baseline6=baseline6 -Bar.baseline7=baseline7 -Bar.baseline8=baseline8 -Bar.baseline9=baseline9 -Bar.baseline=baseline -Bar.critical=critica -Bar.deadline=scadenza -Bar.external=esterna -Bar.milestone=milestone -Bar.subproject=sottoprogetto -Bar.summary=sommario -Bar.task=task -Bar.timesheet=Scheda dei task -Bar.totalSlack=Slittamento complessivo -BarPanel.Shape=Forma: -BaselineDialog.Baseline=Baseline: -BaselineDialog.For=Per: -BookingType.Committed=Impegnato -BookingType.Proposed=Proposto -ButtonText.Cancel=Cancella -ButtonText.Close=Chiudi -ButtonText.IAccept=Accetto -ButtonText.OK=OK -ButtonText.Open=Apri -ButtonText.OpenCopy=Apri in sola lettura -Calendar.24Hours=24 Ore -Calendar.EditedWorkingHours=Modifiche orario di lavoro -CalendarDialogBox.Wednesday=Mercoled -CalendarDialogBox.September=Settembre -CalendarDialogBox.Seventeen=17:00 -CalculationDialogBox.Manual=\ Manuale -Calendar.EditsToADayOfTheWeek=Modifiche ad un giorno settimanale -CalendarDialogBox.HoursPerday=Ore al giorno : -CalculationDialogBox.Prorated=Ripartito -Calendar.EditsToAnIndividualDay=Modifiche ad un singolo giorno -CalendarDialogBox.DurationSettings=Impostazioni sulla durata -CalendarDialogBox.SetAsDefault=Imposta come predefinito -CalendarDialogBox.HoursPerWeek=Ore a settimana : -CalendarDialogBox.DaysPerMonth=Giorni al mese : -Calendar.ExceptionCircular=Non possibile utilizzare questo calendario come calendario di base in quanto dipende da lui stesso. -CalendarDialogBox.Monday=Luned -CalendarDialogBox.Tuesday=Marted -CalendarDialogBox.Thursday=Gioved -CalendarDialogBox.Friday=Venerd -CalendarDialogBox.Saturday=Sabato -CalendarDialogBox.Sunday=Domenica -CalendarDialogBox.January=Gennaio -CalendarDialogBox.February=Febbraio -CalendarDialogBox.March=Marzo -CalendarDialogBox.April=Aprile -CalendarDialogBox.August=Agosto -CalendarDialogBox.October=Ottobre -CalendarDialogBox.November=Novembre -CalendarDialogBox.December=Dicembre -CalendarDialogBox.EightAM=\ 8\:00 AM -CalendarDialogBox.SixPM=\ 6\:00 PM -CalendarDialogBox.Eight=08:00 -CalculationDialogBox.Start=Inizia -Calendar.NightShift=Turno di notte -Calendar.Nonworking=Non lavorativo -Calendar.Standard=Standard -Calendar.Unmodified=Non modificato -CalendarDialogBox.May=Maggio -CalendarDialogBox.June=Giugno -CalendarDialogBox.July=Luglio -# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation -Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 -CalendarDialogBox.UserStartingYearForFVNumbering=Utilizza l'anno di partenza per la numerazione FV -CalendarDialogBox.TheseSettingsOnlyApplyToDuration=Queste impostazioni vengono applicate esclusivamentealle durate -CalculationDialogBox.AndMoveStartOfRemaining=And move start of remaining work back to status date -CalculationDialogBox.AndMoveEndOfCompleted=And move end of completed work forward to status date -CalculationDialogBox.MoveEndOfCompleteParts=Move end of complete work that is after status date back to status date -Calendar.Working=Lavorativo -Category.assignmentEntrySpreadsheet=Tabella dei lavori in entrata -Category.assignmentSpreadsheet=Tabella dei lavori -Category.availabilitySpreadsheet=Tabella delle disponibilit -Category.costRates=Tariffe di costo -Category.dependencySpreadsheet=Tabella delle dipendenze -CalculationDialogBox.Automatic=\ Automatico -CalculationDialogBox.Calculate=Calcola: -Category.distributionSpreadsheet=Tabella degli utilizzi -CalculationDialogBox.Calculation=Calcolo -CalculationDialogBox.EarnedValue=Earned value -Category.projectSpreadsheet=Tabella di progetto -Category.resourceAssignmentSpreadsheet=Tabella delle risorse assegnate -Category.resourceSpreadsheet=Tabella delle risorse -Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=Tabelle delle risorse -Category.taskAssignmentSpreadsheet=Tabella dei task assegnati -Category.taskSpreadsheet=Tabella dei task -Category.taskSpreadsheet;projectSpreadsheet=Tabella dei task e di progetto -CalculationDialogBox.End=Fine -Category.timesheetSpreadsheet=Tabella dei tempi -ChangeWorkingTimeDialogBox.BasedOn=Base -ChangeWorkingTimeDialogBox.ChangeWorkingTime=Cambia il calendario di lavoro -ChangeWorkingTimeDialogBox.For=Per: -ChangeWorkingTimeDialogBox.From=Da: -ChangeWorkingTimeDialogBox.ModificationMessage=Le modifiche di questo calendario influiranno su tutti i progetti che lo utilizzano. -ChangeWorkingTimeDialogBox.New=Nuovo... -ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Non-default working time -ChangeWorkingTimeDialogBox.NonWorkingTime=Non-working time -ChangeWorkingTimeDialogBox.NotEdiableMessage=This calendar is only editable when editing the Master Project (Resource Pool). -ChangeWorkingTimeDialogBox.Options=Opzioni... -ChangeWorkingTimeDialogBox.To=\ Per\: -ChangeWorkingTimeDialogBox.UseDefault=Utilizza come predefinito -ChartLegend.ResourceFilter=Fltra risorse per: -ClientRole.Inactive=- -ClientRole.ProjectManager=Project Manager -ClientRole.TeamMember=Membro del team -ClientRole.TeamResource=Team Resource -ColumnDialog.InsertColumn=Inserisci nuova colonna -Command.UpateProject=Aggiorna progetto -Command.UpdateTasks=Aggiorna le attivit -ConstraintType.ALAP=Pi tardi possibile -ConstraintType.ASAP=Prima possibile -ConstraintType.FNET=Non terminare prima di -ConstraintType.FNLT=Non terminare dopo il -ConstraintType.HAMM=Hammock -ConstraintType.MFO=Deve terminare il -ConstraintType.MSO=Deve iniziare il -ConstraintType.SNET=Non iniziare prima di -ConstraintType.SNLT=Non iniziare dopo il -#The CostRateIndex letters do not need translation for latin alphabets -CostRateIndex.A=Tasso A -CostRateIndex.B=Tasso B -CostRateIndex.C=Tasso C -CostRateIndex.D=Tasso D -CostRateIndex.E=Tasso E -Date.NoEnd=Poi -# NA = Non applicabile -Date.NoStart=NA -Date.Quarter1=Q1 -Date.Half1=H -Date.Quarter2=Q2 -Date.Half2=Half -DefaultFrameManager.Project=Progetto -DelegateTaskDialog.DelegateTask=Delega l'attivit -#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example -DependencyType.FF=FF -DependencyType.FS=FS -DependencyType.SF=SF -DependencyType.SS=SS -DependencyType.longFF=Finish To Finish -DependencyType.longFS=Finish To Start -DependencyType.longSF=Start To Finish -DependencyType.longSS=Start To Start -EarnedValueCalculator.SPI=SPI -EarnedValueCalculator.CPI=CPI -EarnedValueCalculator.CSI=CSI -EarnedValueMethodType.PercentComplete=% Completato -EarnedValueMethodType.PhysicalPercentComplete=% Fisicamente completato -ExpenseType.CAPITALIZE=Capitalizza -ExpenseType.DIRECT=Diretto -ExpenseType.EXPENSE=Costo -ExpenseType.INDIRECT=Indiretto -ExpenseType.NONE=Nessuno -ExpenseType.OVERHEAD=Overhead -Field.accessControlPolicy=Team di progetto -Field.accrueAt=Maturano al -Field.actualCost=Costo attuale -Field.actualDuration=Durata attuale -Field.actualFinish=Termine attuale -Field.actualFixedCost=Costi fissi attuali -Field.actualOvertimeCost=Costi attuali straordinari -Field.actualOvertimeWork=Lavori attuali straordinari -Field.actualOvertimeWorkProtected=Lavoro straordinario effettivo protetto -Field.actualStart=Inizio attuale -Field.actualWork=Lavoro attuale -Field.actualWorkProtected=Lavoro attuale protetto -Field.acwp=ACWP -Field.assignedRate=Tasso di assegnazione -Field.assignment=Assegnazione -Field.assignmentEntryAssigned=Assegnato -Field.assignmentEntryName=Nome -Field.assignmentEntryRate=Unit -Field.assignmentProjectName=Progetto -Field.assignmentResourceId=ID Risorsa -Field.assignmentResourceName=Risorsa -Field.assignmentTaskId=ID Attivit -Field.assignmentTaskName=Attivit -Field.assignmentUnits=Assignment Units -Field.availableFrom=Disponibile dal -Field.availableTo=Disponibile a -Field.bac=BAC -Field.baseCalendar=Calendario di base -#the # will be replaced by a number or by nothing -Field.baseline#Cost=Baseline# dei costi -Field.baseline#Duration=Baseline# delle durate -Field.baseline#Finish=Baseline# delle scadenze -Field.baseline#Start=Baseline# degli avvii -Field.baseline#Work=Baseline# del lavoro -Field.bcwp=BCWP -Field.bcws=BCWS -Field.benefit=Benefit -Field.bookingType=Tipo di prenotazione -Field.budgetStatusIndicator=Status del budget -Field.cachedEnd=Fine -Field.cachedStart=Avvio -Field.canLevel=Can Level -Field.code=Codice -Field.complete=Completa -Field.completeThrough=Completa attraverso -Field.completedThrough=Completato attraverso -Field.confirmed=Confermato -Field.constraintDate=Vincolo di data -Field.constraintType=Tipologia di vincolo -Field.contact=Contatto -Field.cost=Costo -Field.costPerUse=Costo per utilizzo -Field.costRateTable=Tabella dei tassi di costo -Field.costVariance=Varianza dei costi -Field.cpi=CPI -Field.created=Creato -Field.creationDate=Data di creazione -Field.critical=Critica -Field.csi=CSI -Field.cumulativeCost=Costo Cumulato -Field.cumulativePercentComplete=Percentuale di completamento cumulata -FieldDialog.ResourceInformation=Informazioni risorsa -Field.cumulativeWork=Lavoro cumulato -Field.currentDate=Data corrente -Field.customCost#=Costo# -Field.customDate#=Data# -Field.customDuration#=Durata# -Field.customFinish#=Termine# -Field.customFlag#=Flag# -Field.customNumber#=Numero# -Field.customOutlineCode#=Schema codice# -Field.customStart#=Inizio# -Field.customText#=Testo# -Field.cv=CV -Field.cvPercent=CV Percentuale -Field.deadline=Scadenza -Field.debugDependencyOrder=Ordine di dipendenza -Field.delay=Ritardo nell'assegnazione -Field.delegatedTo=Delegato a -Field.dependencyDate=Data di dipendenza -Field.dependencyStart=Inizio di dipendenza -Field.dependencyType=Tipo -Field.dirty=Sporco -Field.duration=Durata -Field.durationVariance=Varianza della durata -Field.eac=EAC -Field.earliestStartingTask=Avvio al pi presto dell'attivit -Field.earlyFinish=Termine al pi presto -Field.earlyStart=Avvio al pi presto -Field.earnedValueMethod=Metodo dell'Earned Value -Field.effectiveDate=Data effettiva -Field.effortDriven=Impegno guidato -Field.elapsedDuration=Durata trascorsa -Field.emailAddress=Indirizzo E-mail -Field.estimated=Previsto -Field.expectedDuration=Durata prevista -Field.expectedFinish=Termine previsto -Field.expectedStart=Avvio previsto -Field.expenseType=Tipologia di spesa -Field.externalId=ID esterno -Field.externalTask=Attivit esterna -Field.finish=Termine -Field.finishDate=Termine -Field.finishOffset=Differenza finale -Field.finishSlack=Ritardo finale -Field.finishVariance=Varianza finale -Field.fixedCost=Costo fisso -Field.fixedCostAccrual=Costo fisso per competenza -Field.forward=Anticipo programmato -Field.freeSlack=Free Slack -Field.ganttSnapshot=Gantt -Field.generic=Generico -Field.group=Gruppo -Field.groupBySummary=Group By Summary -Field.hideBar=Nascondi la barra -Field.hyperlink=Collegamento -Field.hyperlinkAddress=Indirizzo collegamento -Field.hyperlinkHref=Indirizzo Href -Field.hyperlinkSubAddress=Indirizzo -# ID = Identifier -Field.id=ID -Field.ignoreResourceCalendar=Ignora calendario risorse -Field.inactive=Inattivo -Field.indicators=Indicatori -Field.initials=Initiali -Field.justModified=Appena modificato -Field.lag=Ritardo -Field.lastModificationDate=Ultima modifica -Field.lastTimesheetUpdate=Ultimo aggiornamento tabella -Field.lateFinish=Ritardo sul termine -Field.lateStart=Ritardo all'avvio -Field.latestFinishingTask=Latest Finishing Task -Field.levelAssignments=Level Assignments -Field.levelingCanSplit=LevelingCanSplit -Field.levelingDelay=Leveling Delay -Field.linkedFields=Campi collegati -Field.manager=Manager -Field.markTaskAsMilestone=Visualizza attivit come milestone -Field.marked=Contrassegnato -Field.materialLabel=Etichetta materiale -Field.maximumUnits=Unit massime -Field.milestone=Milestone -Field.name=Nome -Field.negativeSlack=Slittamento negativo -Field.netPresentValue=Valore attuale netto -Field.networkSnapshot=Network -Field.notes=Note -Field.objects=Ogetto -Field.optimisticDuration=Durata ottimista -Field.optimisticFinish=Termine ottimistico -Field.optimisticStart=Avvio ottimistico -Field.outlineLevel=Livello struttura -Field.outlineNumber=Numero struttura -Field.overallocated=Sovrallocata -Field.overallocation=Sovrallocazione -Field.overtimeCost=Costi straordinari -Field.overtimeRate=Tasso straordinari -Field.overtimeWork=Lavoro straordinario -Field.parentId#=ID Genitore# -Field.partner=partner -Field.peak=Picco -Field.peakUnits=Unit picco -Field.pendingTimesheetUpdate=La tabella necessita di un aggiornamento -Field.percentAllocation=Percentuale di allocazione -Field.percentComplete=Precentuale di completamento -Field.percentWorkComplete=Percentuale di completamento del lavoro -Field.pessimisticDuration=Durata pessimistica -Field.pessimisticFinish=Termine pessimistico -Field.pessimisticStart=Avvio pessimistico -Field.phonetics=Fonetica -Field.physicalPercentComplete=Percentuale fisica completata -Field.predecessorId=ID Predecessore -Field.predecessorName=Predecessore -Field.predecessors=Predecessori -Field.preleveledFinish=Preleveled Finish -Field.preleveledStart=Preleveled Start -Field.priority=Priorit -Field.project=Progetto -Field.projectDivision=Ripartizione -Field.projectGroup=Gruppo -Field.projectId=ID Progetto -Field.projectStatus=Stato del progetto -Field.projectType=Tipologia di progetto -Field.rate=Unit -Field.rbsCode=RBS -Field.readOnlyDuration=Durata -Field.recurring=Periodico -Field.referringSubprojectTaskDependencyDate=Data di dipendenza sottoprogetto -Field.regularWork=Lavoro regolare -Field.remainingAvailability=Disponibilit rimanente -Field.remainingCost=Costi rimanenti -Field.remainingDuration=Durata rimanente -Field.remainingOvertimeCost=Costi straordinari rimanenti -Field.remainingOvertimeWork=Lavoro straordinario rimanente -FieldDialog.TaskInformation=Informazioni attivit -Field.remainingWork=Lavoro rimanente -# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded -Field.requestDemandType=R/D -Field.resourceAvailability=Disponibilit risorsa -Field.resourceGroup=Gruppo risorsa -Field.resourceId=ID Risorsa -Field.resourceInitials=Iniziali risorsa -Field.resourceNames=Nome risorsa -Field.resourcePhonetics=Fonetica risorsa -Field.resourcePool=Pool di risorsa -Field.resourceType=Tipo -Field.responsePending=Attesa risposta -Field.resume=Indietro -Field.risk=Rischio -Field.rollup=Rollup -Field.scheduleStatusIndicator=Schedule Status -Field.schedulingMethod=Metodo di Scheduling -Field.showProjectResourcesOnly=Mostra solo le risorse del progetto -Field.spi=SPI -Field.standardRate=Tasso standard -Field.start=Avvio -Field.startDate=Avvio -Field.startOffset=Start Offset -Field.startSlack=Start Slack -Field.startVariance=Start Variance -Field.status=Status -Field.statusDate=Status Data -Field.statusIndicator=Overall Status -Field.statusTaskIndicator=StatusTask Indicator -Field.stop=Termina -Field.subprojectFile=File sottoprogetto -Field.subprojectOf=Sottoprogetto di -Field.subprojectReadOnly=Sottoprogetto in sola lettura -Field.successorId=Id Successore -Field.successorName=Successore -Field.successors=Successori -Field.summary=Sommario -Field.summaryProgress=Progresso sommario -Field.suprojectReadOnly=Sottoprogetto in sola lettura -Field.sv=SV -Field.svPercent=Percentuale SV -Field.taskCalendar=Calendario attivit -Field.taskId=ID Attivit -Field.taskName=Nome attivit -Field.taskOutlineNumber=Task Outline Number -Field.taskSummaryName=Nome sommario attivit -Field.taskType=Tipo -Field.tcpi=TCPI -Field.teamStatusPending=TeamStatus Pending -Field.textAbove=Testo precedente -Field.timesheetFinish=Timesheet Finish -Field.timesheetStart=Timesheet Start -FieldDialog.document=documento: -Field.timesheetStatus=Timesheet Status -Field.timesheetStatusName=Stato -Field.totalSlack=Slittamento totale -Field.totalSlackEnd=Slittamento totale al termine -Field.totalSlackStart=Slittamento totale all'avvio -Field.uniqueId=ID Unico -Field.uniqueIdPredecessors=ID Unico predecessori -Field.uniqueIdSuccessors=ID Unico successori -Field.unitAvailability=Disponibilit unit -Field.updateNeeded=Aggiornamento necessario -Field.userAccount=Account utente -Field.userRole=Ruolo nel progetto -Field.vac=VAC -Field.wbs=WBS -Field.wbsParent=E' parente WBS -Field.wbsParentName=Parente WBS -Field.wbsPredecessors=Predecessori WBS -Field.wbsSuccessors=Successori WBS -Field.work=Lavoro -Field.workAvailability=Disponibilit lavoro -Field.workContour=Profilo del lavoro -Field.workVariance=Varianza lavoro -File.microsoft=Microsoft Project -File.microsoftXML=Microsoft Project XML -File.planner=Gnome Planner -File.projects=Progetti -File.ProjectLibre=ProjectLibre -Filter.CompletedTasks=Attivit completate -Filter.CostOverbudgetTasks=Costo attivit extra-budget -Filter.CriticalTasks=Attivit critiche -Filter.DateRange=Intervallo date -Filter.Flag1=Flag 1 -Filter.Flag2=Flag 2 -Filter.Flag3=Flag 3 -Filter.InProgressAssignments=Assegnazioni in avanzamento -Filter.InProgressTasks=Attivit in avanzamento -Filter.IncompleteTasks=Attivit incomplete -Filter.LateOrOverbudgetTasks=Attivit in ritardo/fuori budget -Filter.Milestones=Milestones -Filter.MyDelegatedTasks=Le mie attivit delegate -Filter.MyTasks=i attivits -Filter.None=No filtri -Filter.NormalTasks=Attivit normali -Filter.ResourcesMaterial=Risorse materiali -Filter.ResourcesMe=Io -Filter.ResourcesWork=Risorse del lavoro -Filter.SlippedTasks=Attivit slittate -Filter.SummaryTasks=Sommario attivit -Filter.TasksWithEstimatedDurations=Stima dur. attivit... -Filter.UnstartedAssignments=Assegnazioni non avviate -FixedDuration.FixedDuration=Durata fissata -Filter.UnstartedTasks=Attivit non avviate -Filter.WorkComplete=Lavoro completo -FixedWork.FixedWork=Lavoro fissato -FixedUnits.FixedUnits=Unit fissate -FixedDuration.TheDurationMessage=Questo task a durata-fissata deve cambiare la propria durata per questo compito -FooterRenderer.page=\ - pagina -Gantt.Popup.annotationStylesMenu=Stili annotazione -Gantt.Popup.barStylesMenu=Stili barra -Gantt.Popup.showAssignments=Mostra compiti -Gantt.Popup.showCalendar=Mostra calendario -Gantt.Popup.showRows=Mostra righe -Gantt.Popup.splitMode=Dividi -Gantt.tooltip.Assignment=Assegnazione -Gantt.tooltip.Resource=Risorsa -Gantt.tooltip.Task=Attivit -Gantt.tooltip.from=Da -Gantt.tooltip.lag=Ritardo -Gantt.tooltip.link=Collegamento -Gantt.tooltip.to=Per -GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Il progetto selezionato gi aperto come sottoprogetto di un altro progetto consolidato. -GraphicManager.SelectedProjectAlreadySubproject=Il progetto selezionato gi aperto come sottoprogetto di questo progetto consolidato. -Grouper.AssignmentProjectName=Nome progetto -Grouper.CompleteIncomplete=Completo/incompleto -Grouper.Critical=Critica -Grouper.CriticalThenDuration=Critico per durata -Grouper.Delegated=Delegato a -Grouper.Duration=Durata -Grouper.None=No gruppo -Grouper.ResourceGroup=Gruppo -Grouper.ResourceType=Tipo -HelpDialog.About=Aiuto -HelpDialog.GoToOnlineHelp=Vai all'aiuto online -HelpDialog.ShowLicense=Mostra licenza -HelpDialog.ShowTipsOfTheDay=Mostra i consigli del giorno -HelpDialog.WatchHowToVideos=Mostra i video "How-To" -HyperLinkToolTip.SeeOnlineDemo=">Guarda la Demo online -HyperLinkToolTip.SeeOnlineHelp=">Guarda l'Aiuto online -InformationDialog.AssignResources=Assegna risorse -InformationDialog.ChangeWorkingTime=Cambia l'orario lavorativo -License.Inactive=Inattivo -License.LiteUser=Lite User -License.PowerUser=Utente esperto -LicenseDialog.CouldNotLoadLater=Non stato possibile caricare la licenza. Per favore riprovare pi tardi. -LicenseDialog.CouldNotLoadExiting=Non possibile caricare la licenza. Per favore riprovare pi tardi. Il programma sar terminato. -LicenseDialog.Email=Per favore registra la tua compia di ProjectLibre per rimanere informato sulle novit e sugli aggiornamenti del prodotto. -LicenseDialog.EmailLabel=Indirizzo E-mail -LicenseDialog.License=Licenza -LicenseDialog.ThirdParty=Parte terza -LicenseOption.Administrator=Amministratore -LicenseOption.External=Partner/Cliente -LicenseOption.Inactive=- -LocalFileImporter.Exporting=Esportando... -LocalFileImporter.Importing=Importanto... -LoginDialog.Login=Login: -LoginDialog.Password=Password: -LoginDialog.RememberMe=Ricordami su questo computer -LoginDialog.UseOfficeLook=Utilizza Office Look and Feel -LookupDialog.EnterPartOfTheName=Inserisci una parte del nome che stai cercando -LookupDialog.Find=Trova -LookupDialog.LookupAnObject=Ricerca diretta dell'oggetto -LookupDialog.NoMatchesFound=Nessuna corrisponenza trovata -LookupDialog.Results=Risultati -LookupDialog.Type=Tipo: -LookupDialog.UnableToContactServer=Impossibile contattare il server. -LookupField.LookupAValue=Ricerca diretta del valore -Message.ImportError=Impossibile leggere il file -Message.allowDeleteActuals=L'elemento/i selezionato/i hanno gi questi valori. Sei sicuro di volerli cancellare? -Message.allowDistrbutedStartBeforeProjectStart=Il valore provocher l'avvio dell'attivit prima dell'avvio del progetto. Procedere comunque? -Message.allowDistrbutedStartBeforeTaskStart=Il valore precedente all'avvio dell'attivit. Procedere comunque? -Message.allowTaskStartBeforeProjectStart=Questa attivit si pu avviare prima dell'avvio dell'intero progetto? -Message.alreadyParentChildHierarchy=E' gi presente una relazione di tipo padre/figlio. -Message.badTimeFormat=Formato orario non consentito -Message.badTimeIntervals=Intervallo orario non consentito -Message.cannotEnterUnits=Non possibile inserire unit in questo campo -Message.cannotLinkToSummary=You cannot link a summary task and one of its subtasks.\nIf you want to link them, remove the hierarchy by outdenting the subtask so it is no longer under the summary task. -Message.cannotLinkTwice=Questo collegamento gi presente. -Message.cantEmptySpreadsheet=Questa tabella deve contenere almeno un campo. -Message.cantLinkToClosedSubproject=A subproject must be open and writable in order to be the target of a link as it affects the subproject's start date. -Message.cantLinkToExternal=Non possibile creare collegamenti con attivit esterne. -Message.cantLinkToSelf=Non possibile collegare un'attivit a se stessa. -Message.circularDependency=This link is invalid as it would a create a circular dependency relationship with other tasks. -Message.confirmDeleteRows=Si sicuri di voler cancellare queste righe? -# {0} is the name of the predecessor task, {1} is the name of the successor task -Message.crossProjectCircularDependency.mf=A cross project link from {0} to {1} would cause a circular dependency relationship with other tasks. It is disabled and marked in dotted lines. -Message.errorCalendarMustHaveWorkingDay=Il calendario deve contenere almeno un giorno lavorativo. -# {1,number,percent} is the maximum percentage value that has been exceeded -Message.errorPercentRangeMaximum.mf=Il valore non pu essere superiore a {1,number,percent}. -# {0,number,percent} is the minimum percentage value that has been exceeded -Message.errorPercentRangeMinimum.mf=Il valore deve essere superiore a {0,number,percent}. -# {0,number} is the range minimum, {1,number} is the range maximum -Message.errorRange.mf=Il valore deve essere compreso tra {0,number} e {1,number}. -# {1,number} is the maximum value that has been exceeded -Message.errorRangeMaximum.mf=Il valore non pu essere superiore a {1,number}. -# {0,number} is the minimum value that has been exceeded -Message.errorRangeMinimum.mf=Il valore deve essere superiore a {0,number}. -Message.importCircularLink=Il progetto non pu essere importato perch contiene una relazione circolare con il predecessore. -Message.invalidAssignments=Si devono inserire risorse gi esistenti nel pool di risorse separate dal carattere ";". Se si desidera assegnare meno del 100%, possibile specificare una percentuale tra parentesi: e.g. Clark Kent[50%];Lois Lane -Message.invalidChoice=Scelta non valida -Message.invalidCost=Costo non valido\nQuesto costo non valido. Il costo deve essere espresso in numeri. Il simbolo corrente opzionale.\nIl simbolo corrente predefinito nel tuo sistema. -Message.invalidDate=Data non valida\nQuesta data non valida o al di fuori dei valori ammissibili. La data deve essere compresa tra il 01 Gennaio 1970 e il 31 Dicembre 2049.\nIl formato data quello predefinito del sistema. Esempio\: 3/12/06 o 3 Mar 2006. -# {0} is either "predecessor" or "successor" -Message.invalidDependency.mf={0} non valido.\nPer favore usa un ID dell'attivit valido.\n\u00B7 L'informazione di {0} espressa come\: {0} numero ID, dipendenza, e anticipo/ritardo.\n\u00B7 E' anche possibile utilizzare il riquadro Infromazioni delle attivit. -Message.invalidDuration=Durata non valida\nQuesto valore della durata non valido.\nPer favore trova un valore come 24 ore (24h), 3 giorni (3d), o 9ed per giorni mancanti. -Message.invalidInput=Il valore non valido. -Message.invalidIntersection=Resulting working time is invalid\n\nThere is a task which, intersected with its resource calendar, does not have enough working time for any work to be performed.\nThe task will ignore the resource calendar. \nTo remedy this, you can change the task or resource calendar, or choose the "Ignore Resource Calendar" option for the task. -Message.invalidRate=This is not a valid rate.\nFor Work (non-material) resources, type the rate amount followed by a slash (/), and then the abbreviation for the time period. For example, "100/h".\nFor material resources, type the rate amount without a slash and time period\nFor example, "10". If your Material label is "barrel", this would mean "$10/barrel". -Message.invaliidUnits=This is not a valid Units value\n\nFor Work (non-material) resources , type a number.\n\nMaterial resource assignments can be either fixed or variable. For a fixed material resource assignment, type the units value alone. For example, "10" would mean "10 barrels", if your material label was "barrel".\n\nFor a variable material resource assignment, type the units value, followed by a slash(/), and then the abbreviation for the time period. For example, "10/M" would mean "12 barrels per month". -Message.notAResource=L'elemento selezionato non una risorsa -Message.notATask=L'elemento selezionato non un task -Message.onlyReplaceOneResourceAtATime=E' possibile sostituire solo una risorsa per volta. -Message.onlySelectOneElement=Pu essere selezionato solo un elemento per volta. -Message.parentConstraintType=Parent tasks may only be one of: "As Soon As Possible", "Start No Earlier Than" or "Finish No Later Than". If you are using reverse scheduling, then "As Late As Possible" is an option instead of "As Soon as Possible". -Message.parentSuccessorCannotHaveFinishLink=Predecessors of a parent task may only be of types Finish-Start or Start-Start -Message.projectAlreadyExists=Esiste gi questo progetto. Eliminare la versione corrente? -Message.projectMustHaveName=Il progeto deve avere un nome. -#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions -Message.renameProject1=Progetto " -Message.renameProject2=" gi presente sul server. Per favore si scelga un altro nome. -Message.saveProjectAs1=Salva progetto " -Message.saveProjectAs2=" come -Message.saveProjectBeforeClosing1=Vuoi salvare le modifiche di " -Message.saveProjectBeforeClosing2=" ? -Message.subprojectCut=I sottoprogetti saranno convertiti in attivit normali. Questa attivit non potr essere annullata. Continuare comunque? -Message.synchronizeResources=Si desidera sincronizzare le risorse con il server? -Message.tooManyResourcesSelectedToList.mf={0,number} Risorse selezionate (troppe per essere mostrate) -Message.tooManyTasksSelectedToList.mf={0,number} Attivit selezionate (troppe per essere mostrate) -MicrosoftImporter.ErrorImportingXML=Non possibile importare il file XML. Solo i file XML creati con MS Project o Planner possono essere importati. -MicrosoftImporter.ImportWithSubprojects=Il progetto contiene sottoprogetti. E' necessario importali manualmente. Le attivit corrispondenti sono: -MicrosoftImporter.Importing=Importando... -MicrosoftImporter.PrepareResources=Preparare le risorse -Network.Popup.barStylesMenu=Stili della barra -NewBaseCalendarDialog.CreateACopyOfCalendar=Esegui una copia del calendario -NewBaseCalendarDialog.CreateANewBaseCalendar=Crea un nuovo calendario di base -NewBaseCalendarDialog.Name=Nome -NewBaseCalendarDialog.NewBaseCalendar=\ Nuovo calendario di base -Open_Text.ApplicationTitle=ProjectLibre -OpenProjectDialog.LockedBy=Blocato da -Open_Text.ShortTitle=ProjectLibre -Open_Text.welcomeToPod=Benvenuti in ProjectLibre -OpenProjectDialog.CreationDate=Data di creazione -OpenProjectDialog.ModificationDate=Data di modifica -OpenProjectDialog.Name=Nome -Open_Title.ProjectLibreError=Errore ProjectLibre -Open_Title.ProjectLibreWarning=Allert ProjectLibre -PageSetupDialog.Margins=Margini -PageSetupDialog.Margins.Left=Sinistra (mm) -PageSetupDialog.Margins.Right=Destra (mm) -PageSetupDialog.Margins.Top=In alto (mm) -PageSetupDialog.Margins.Bottom=In basso (mm) -PageSetupDialog.Orientation=Orientazione -PageSetupDialog.Orientation.Landscape=Orizzontale -PageSetupDialog.Orientation.Portrait=Verticale -PageSetupDialog.Orientation.ReverseLandscape=Orizzontale invertito -PageSetupDialog.Page=Pagina -PageSetupDialog.Paper=Foglio -PageSetupDialog.PaperFormat.Custom=Aspetto -PageSetupDialog.PaperSize=Dimensioni del foglio -PageSetupDialog.PaperSizeSettings.Custom=Impostazioni aspetto -PageSetupDialog.PaperSizeSettings.Custom.Width=Larghezza (mm): -PageSetupDialog.PaperSizeSettings.Custom.Height=Altezza (mm): -PageSetupDialog.PaperSizeSettings.Printer=Utilizza impostazioni di stampa -PageSetupDialog.PaperSizeSettings.SinglePage=Pagina unica grande -PageSetupDialog.PaperSizeSettings.SinglePage2=(Solo PDF) -PageSetupDialog.Printers=Stampanti -PageSetupDialog.PrinterPageSetup=Impostazioni stampante -PageSetupDialog.PrinterPDFService=ProjectLibre PDF -PageSetupDialog.PODOnly=Disponibile solo in -PageSetupDialog.PODOnly2=Projects On Demand -PageSetupDialog.Refresh=Aggiorna -PageSetupDialog.SaveSettings=Utilizza come predefinito -PageSetupDialog.SaveSettings.ToolTip=Salva impostazioni di stampa come predefinite. -PageSetupDialog.SaveWebPDFSettings=Utilizza web come predefinito -PageSetupDialog.SaveWebPDFSettings.ToolTip=Salva impostazioni predefinite per immagini del web in PDF. -PageSetupDialog.Settings.Label=Impostazioni -PageSetupDialog.Settings.Local=Locale -PageSetupDialog.Settings.WebPDF=Web PDF -PageSetupDialog.Scaling=Scala -PageSetupDialog.Scaling.FitTo=Adatta a: -PageSetupDialog.Scaling.FitToHeight=altezza pagina -PageSetupDialog.Scaling.FitToWidth=larghezza pagina -PageSetupDialog.Scaling.ScaleTo=Scala in: -PageSetupDialog.Scaling.ScaleToHeight=altezza -PageSetupDialog.Scaling.ScaleToWidth=larghezza -PageSetupDialog.Scaling.ScaleToProportions=Vincola -PageSetupDialog.Scaling.ScaleToProportions2=proporzioni -PageSetupDialog.ShowGantt=Gantt -PageSetupDialog.ShowParts=Diagrammi -PageSetupDialog.ShowSpreadSheet=Tabella -PageSetupDialog.Title=Setup pagina -PageSetupDialog.NotPDFPrintServiceForWebDefault= -PageSetupDialog.NotValidPrinter=Il servizio selezionato un servizio PDF, per favore si selezioni una stampante. -PersonalContour.personal=Personale -ProjectStatus.ACTIVE=Attiva -PreviewPanel.Preview=Anteprima -PreviewPanelEnd.Preview=Anteprima -ProjectDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Clienti/Partner) -ProjectDialog.Notes=Note: -ProjectInformationDialog.ProjectInformation=Informazioni progetto -ProjectStatus.CANCELLED=Cancellato -ProjectStatus.COMPLETED=Completato -ProjectDialog.NewProject=Nuovo progetto -ProjectDialog.StartDate=Data di avvio: -ProjectDialog.FinishDate=Data di chiusura: -ProjectStatus.ON_HOLD=In attesa -ProjectDialog.Manager=Responsabile: -ProjectStatus.PENDING_APPROVAL=In attesa di approvazione -ProjectStatus.PLANNING=In pianificazione -ProjectType.EVENT_PLANNING=Pianificazione evento -ProjectType.IT=I.T. -ProjectType.MARKETING_CAMPAIGN=Campagna di Marketing -ProjectInformationDialog.Notes=Note -PrintPreviewFrame.PrintPreview=Anteprima di stampa -ProjectType.OTHER=Altro -ProjectType.PRODUCT_DEVELOPMENT=Sviluppo di prodotto -ProjectType.PROFESSIONAL_SERVICES=Servizi professionali -ProjectInformationDialog.Statistics=Statistiche -ProjectDialog.BasedOnProjectRole=Basato sul ruolo di progetto nella scheda Risorse -ProjectInformationDialog.General=Generale -ProjectType.SALES_CAMPAIGN=Campagna di vendita -ProjectDialog.ProjectName=Nome progetto: -ProjectDialog.ProjectTeam=Team di progetto: -ProjectType.TECHNICAL_SUPPORT=Supporto tecnico -RenameDialog.AnotherItemWithThatNameAlreadyExists=Esiste gi un altro elemento con qesto nome. -RenameDialog.NewName=Nuovo nome -RenameDialog.Rename=Rinomina -RenameDialog.TheNameCannotBeEmpty=Il nome non pu essere vuoto -RenameProjectDialog.NewProject=Nuovo progetto -RenameProjectDialog.NewProjectName=Nuovo progetto con nome: -RenameProjectDialog.RenameProject=Rinomina progetto -ReportView.Columns=Colonne: -ReportView.Report=Report: -RequestDemandType.Demand=Domanda -RenameDialog.CurrentName=Nome attuale -RequestDemandType.None=- -RequestDemandType.Request=Richiesta -ResourceAdditionDialog.ResourceMerging=Unisci risorse -ResourceAdditionDialog.SelectResourcesToAdd=Seleziona risorse da aggiungere -ResourceIndicatorsComponent.Administrator=\ (Amministratore) -ResourceIndicatorsComponent.PartnerCustomer=\ (Partner/Cliente) -ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=Questa risorsa fa parte del team di progetto
-ResourceIndicatorsComponent.UserLicense=Licenza utente: -ResourceInformationDialog.AssignedToTasks=Assegnato alle attivit: -ResourceInformationDialog.Costs=Costi -ResourceInformationDialog.General=Generale -ResourceInformationDialog.Notes=Note -ResourceInformationDialog.ResourceAvailability=Disponibilit risorsa -ResourceInformationDialog.ResourceInformation=Informazioni risorsa -ResourceInformationDialog.Tasks=Attivit -ResourceMappingDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Cliente/Partner) -ResourceMappingDialog.BasedOnProjectRoleInResourcesView=Basato sul ruolo di progetto nella scheda Risorse -ResourceMappingDialog.DontMergeOpenProjectReadOnly=Non unire, apri progetto in sola-lettura -ResourceMappingDialog.ImportedResources=Risorse importate -ResourceMappingDialog.MergeResourcesUsingField=Unisci le risorse utilizzando i campi -ResourceMappingDialog.ProjectTeam=Team di progetto: -ResourceMappingDialog.ResourceMerging=Unisci risorse -ResourceMappingDialog.ServerResources=Risorse (server) -ResourceType.Location=Luogo -ResourceType.Machine=Macchina -ResourceType.Material=Materiale -ResourceType.Other=Altro -ResourceType.Work=Lavoro -ResourceView.ThisResourceCurrentlyHasAssignments=. Questa risorsa ha gi dei compiti. -ResourceView.ToMoveAProtectedResource=Per modificare la gerarchia di una risorsa non modificabile possibile creare un collegamento nella vista RBS. -ResourceView.UsersCanOnlyBeRemoved=. Gli utenti possono essere rimossi o resi inattivi solo dalla pagina web di gestione degli utenti. -ResourceView.YouCannotDeleteTheResource=Non possibile eliminare la risorsa: -Role.Inactive=Inattivo -Role.ProjectManager=Project Manager -Role.TeamMember=Membro del team -SchedulingType.FixedDuration=Dura fissa -ScheduleDialogBox.Percentage=Percentuale -ScheduleDialogBox.FixedDuration=Durata fissa -ScheduleDialogBox.FixedUnits=Unit fissa -ScheduleDialogBox.FixedWork=Lavoro fisso -ScheduleDialogBox.SetAsDefault=Usa come predefinito -ScheduleDialogBox.WorkIsEnteredIn=\ Il lavoro stato inserito in -ScheduleDialogBox.DefaultTaskType=\ Tipologia di attivit predefinita -SchedulingType.FixedUnits=Unit fissa -ScheduleDialogBox.Schedule=Ordine -ScheduleDialogBox.Decimal=Decimale -ScheduleDialogBox.Minutes=Minuti -ScheduleDialogBox.NewTask=\ Nuova attivit -SchedulingType.FixedWork=Lavoro fisso -ScheduleDialogBox.Hours=Ore -ScheduleDialogBox.Days=Giorni -ScheduleDialogBox.Weeks=Settimane -ScheduleDialogBox.Months=Mesi -Sorter.AssignmentProjectName=Nome progetto -Sorter.CompleteIncomplete=Completo/incompleto -Sorter.Cost=Costo -Sorter.CostOverbudget=Costo extra -Sorter.CostPerUse=Costo per utilizzo -Sorter.Critical=Criticit -Sorter.Delegated=Delegato a -Sorter.Duration=Durata -Sorter.DurationThenCost=Durata poi costi -Sorter.FinishDate=Data di chiusura -Sorter.Name=Nome -Sorter.None=Nessun ordinamento -Sorter.OvertimeRate=Overtime rate -Sorter.ResourceGroup=Gruppo -Sorter.ResourceType=Tipo -Sorter.StandardRate=Tasso standard -Sorter.StartDate=Data di avvio -Spreadsheet.Action.collapse=Collassa -Spreadsheet.Action.copy=Copia -Spreadsheet.Action.cut=Taglia -Spreadsheet.Action.delete=Cancella -Spreadsheet.Action.expand=Espandi -Spreadsheet.Action.indent=Aumenta rientro -Spreadsheet.Action.new=Nuovo -Spreadsheet.Action.outdent=Diminuisci rientro -Spreadsheet.Action.paste=Incolla -Spreadsheet.Assignment.resourceUsage=Utilizzo risorsa -Spreadsheet.Assignment.taskUsage=Task Usage -Spreadsheet.AssignmentEntry.assignResources=Assegna risorse -Spreadsheet.AssignmentEntry.replaceResources=Rimpiazza risorse -Spreadsheet.Dependency.predecessors=Predecessori -Spreadsheet.Dependency.successors=Successori -Spreadsheet.Project.default=Default -Spreadsheet.Project.portfolio=Portfolio -Spreadsheet.Project.properties=Propriet -Spreadsheet.Resource.earnedValue=Earned Value -Spreadsheet.Resource.earnedValueCostIndicators=Earned Value - Costi -Spreadsheet.Resource.earnedValueScheduleIndicators=Earned Value - Tempi -Spreadsheet.Resource.entryWorkResources=Default -Spreadsheet.ResourceAssignment.reportAssignmentResource=Nome e ID -Spreadsheet.ResourceAssignment.reportAssignmentTask=Report di base -Spreadsheet.ResourceAssignment.resources=Risorse assegnate -Spreadsheet.ResourceAssignment.tasks=Attivit assegnate -Spreadsheet.ResourceTimesheet.status=Stato tabella dei tempi -Spreadsheet.ResourceUsage.default=Utilizzo risorsa (distribuzione) -Spreadsheet.nameOnly=Nome -Spreadsheet.Task.baseline=Baseline -Spreadsheet.Task.constraintDates=Date di scadenza -Spreadsheet.Task.cost=Costo -Spreadsheet.Task.delay=Ritardo -Spreadsheet.Task.earnedValue=Earned Value -Spreadsheet.Task.earnedValueCostIndicators=Earned Value - Costi -Spreadsheet.Task.earnedValueScheduleIndicators=Earned Value - Tempi -Spreadsheet.Task.entry=Default -SpreadSheetColumnMenu.InsertColumn=Inserisci colonna... -Spreadsheet.Task.schedule=Schedule (CPM) -Spreadsheet.Task.summary=Sommario -Spreadsheet.Task.tracking=Tracking -Spreadsheet.Task.usage=Lavoro -Spreadsheet.Task.variance=Varianza sui tempi -Spreadsheet.TaskAssignment.reportAssignmentResource=Nome e ID -Spreadsheet.TaskAssignment.reportAssignmentTask=Report di base -Spreadsheet.TaskAssignment.resources=Risorse assegnate -Spreadsheet.TaskAssignment.tasks=Attivit assegnate -Spreadsheet.TaskTimesheet.status=Stato tabella dei tempi -Spreadsheet.TaskUsage.default=Utilizzo risorsa (distribuzione) -Spreadsheet.Timesheet.Default=Tabella -Spreadsheet.Timesheet.completion=Completion -SpreadSheetColumnMenu.HideColumn=Nascondi colonna -Spreadsheet.availability=Disponibilit -Spreadsheet.costRates=Tassi di costo -Spreadsheet.empty= -StandardContour.backLoaded=Back Loaded -StandardContour.bell=Bell -StandardContour.doublePeak=Double Peak -StandardContour.earlyPeak=Early Peak -StandardContour.flat=Piatto -StandardContour.frontLoaded=Front Loaded -StandardContour.latePeak=Late Peak -StandardContour.plateau=Plateau -Styles.Annotation.milestone=Milestone -Styles.Annotation.normal=Attivit normale -Styles.Bar.Row.assignment=Assegnazioni -Styles.Bar.Row.baseline10=Baseline 10 -Styles.Bar.Row.baseline1=Baseline 1 -Styles.Bar.Row.baseline2=Baseline 2 -Styles.Bar.Row.baseline3=Baseline 3 -Styles.Bar.Row.baseline4=Baseline 4 -Styles.Bar.Row.baseline5=Baseline 5 -Styles.Bar.Row.baseline6=Baseline 6 -Styles.Bar.Row.baseline7=Baseline 7 -Styles.Bar.Row.baseline8=Baseline 8 -Styles.Bar.Row.baseline9=Baseline 9 -Styles.Bar.Row.baseline=Baseline -Styles.Bar.Row.critical=Attivit critiche -Styles.Bar.Row.deadline=Scadenza -Styles.Bar.Row.external=Attivit esterne -Styles.Bar.Row.milestone=Milestones -Styles.Bar.Row.subproject=Sottoprogetti -Styles.Bar.Row.summary=Sommario attivit -Styles.Bar.Row.task=Attivit non critiche -Styles.Bar.Row.timesheet=tabella dei tempi -Styles.Bar.Row.totalSlack=Slittamento complessivo -Styles.Calendar.nonWorking=Mostra calendario -Styles.Gantt.showRows=Mostra colonne -Styles.showLinks=Mostra collegamenti -Summary.AND=E -Summary.Average=Media -Summary.AverageFirstSublevel=Media primo sottolivello -Summary.CountAll=COnta tutto -Summary.CountNonsummaries=Count Nonsummaries -Summary.List=Lista -Summary.Maximum=Massimo -Summary.Minimum=Minimo -Summary.None=Nessuno -Summary.OR=O -Summary.Sum=Somma -#The symbols should not be translated for most latin languages -Symbol.ellipsis=... -Symbol.leftBracket=[ -Symbol.leftBracketRegex=\\[ -Symbol.listSeparator=; -Symbol.multipleValues=-- -Symbol.percent=% -Symbol.rightBracket=] -Symbol.rightBracketRegex=\\] -Symbol.slash=/ -TaskIndicatorsComponent.Notes=Note: ' -TaskIndicatorsComponent.TheCalendar=Il calendario ' -TaskIndicatorsComponent.TheIntersection=L'intersezione dei calendari dell'attivit e della risorsa non fornisce tempo lavorativo.
-TaskIndicatorsComponent.TheTaskWasCompletedOn=L'attivit stata completata il -TaskIndicatorsComponent.ThisParentTaskHasResources=Questa attivit parente ha assegnato risorse direttamente a: -TaskIndicatorsComponent.ThisSubprojectIsNotValid=QUesto sottoprogetto non valido: pu essere inserito solo una volta nel progetto. -TaskIndicatorsComponent.ThisTaskFinishesOn=Questa attivit finisce il -TaskIndicatorsComponent.ThisTaskHasA=Questa attivit ha un ' -TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Questa attivit stata delegata a -TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Questa attivit stata delegata a te -TaskIndicatorsComponent.ThisTasksRepresentsThe=Questa attivit rappresenta il -TaskIndicatorsComponent.constraintOn=' vincolato a -TaskIndicatorsComponent.isAssignedToTheTask=' assegnato all'attivit.
-TaskIndicatorsComponent.opened=aperto -TaskIndicatorsComponent.subproject=\ sottoprogetto\: -TaskIndicatorsComponent.unopened=non aperto -TaskIndicatorsComponent.whichIsAfterItsDeadline=\ che oltre la sua scadenza di -TaskInformationDialog.Advanced=Avanzato -TaskInformationDialog.ConstrainTask=Vincoli -TaskInformationDialog.Dates=Date -TaskInformationDialog.General=Generale -TaskInformationDialog.Notes=Note -TaskInformationDialog.Predecessors=Predecessori -TaskInformationDialog.Resources=Risorse -TaskInformationDialog.Successors=Successori -TaskInformationDialog.TaskInformation=Informazioni attivit -Text.Allocated=Allocato -Text.ApplicationTitle=ProjectLibre -Text.Assign=Assegna -Text.AssignResources=Assegna risorse -Text.Baseline=Baseline -Text.Cancel=Cancella -Text.ClearBaseline=Cancella Baseline -Text.CostRateTables=Tabella dei tassi di costo -Text.Cumulative=Cumulativo -Text.DetectingJavaVersion=Ricercando la versione di Java... -Text.DisabledExternalTaskDependency=Dipendenza da attivit esterne disattivata -Text.EntireProject=Intero Project -Text.ExternalTaskDependency=Dipendenza da attivit esterne -Text.Field=Campo -Text.Filter=Filtro -Text.From=Da -Text.Group=Gruppo -Text.HierarchicalRelation=Relazione gerarchica -Text.Histogram=Istogramma -Text.Lag=Ritardo -Text.No=No -Text.None=Nessuno -Text.OtherProjects=Altri progetti -Text.Remove=Rimuovi -Text.Replace=Rimpiazza -Text.ReplaceResource=Rimpiazza risorsa -Text.Save=Salva -Text.SaveBaseline=Salva Baseline -Text.Selected=Selezionato -Text.SelectedTasks=Attivit selezionate -Text.ShowSelectedOnTop=Mostra i selezionati in alto -Text.ShowTeamResourcesOnly=Solo le risorse del team di progetto -Text.Sort=Ordina -Text.Task=Attivit -Text.TaskDependency=Dipendenza attivit -Text.Tasks=Attivit -Text.ThisProject=Questo progetto -Text.To=A -Text.Type=Tipo -Text.Unassigned=Non assegnato -Text.Untitled=Senza titolo -Text.UserDefinedInParentheses=(utente definito) -Text.With=Con -Text.Yes=Si -Text.budget=Budget -Text.clickToRename=(Clicca per rinominare) -Text.cost=costo -Text.createProject=Crea progetto -Text.forwardScheduled=Pianifica in avanti -Text.insertProject=Inserisci progetto -Text.manageResources=Gestisci pool di risorse -Text.modifiedInParentheses=(modificato) -Text.thousandsAbbreviation=K -Text.millionsAbbreviation=M -Text.newServerProject=Progetto (server) -Text.openProject=Apri progetto -Text.predecessor=predecessore -# {0} is the name of the thing to rename -Text.rename.mf=Rinomina {0} -Text.resetRoles=L'opzione "Tutte le risorse" consente l'accesso a tutte le risorse definite in questo progetto, eccetto gli utenti "Partner/Clienti".\nLe restrizioni specifiche di progetto inserite in "Risorse" saranno resettate. -Text.reverseScheduled=Pianificazione inversa -Text.rightClickSelectToSpreadsheet=Tasto destro per selezionare o rinominare le tabelle die tempi -Text.rightClickToInsertRemoveColumns=Tasto destro per inserire o nascondere le colonne -Text.successor=successore -Text.taskHierarchy=Gerarchia attivit: -Text.welcomeSubject=Benvenuti in Projects On Demand -Text.welcomeToPod=Benvenuti in ProjectLibre -Text.work=lavoro -TimeChartPopupMenu.VerticalScrolling=Scorri verticalmente -TimesheetHelper.Entered=Inserito -TimesheetHelper.Integrated=Integrato -TimesheetHelper.Mixed=Misto -TimesheetHelper.New=Nuovo -TimesheetHelper.Rejected=Rifiutato -TimesheetHelper.Saved=Salvato -TimesheetHelper.Validated=Validato -Title.ProjectLibreError=Errore ProjectLibre -Title.ProjectLibreWarning=Allert ProjectLibre -TransformParameter.FinishDate=Data di chiusura -TransformParameter.StartDate=Data di avvio -# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways -# For each line, there must be four values separated by a |. No spaces are allowed -# The lines are of the form: ||| -# The user will be able to choose which format he wants to use -Units.day.plural=d|dys|giorni|d -Units.day.singular=d|dy|giorno|d -Units.eday.plural=ed|edys|edays|ed -Units.eday.singular=ed|edy|eday|ed -Units.ehour.plural=eh|ehrs|ehours|eh -Units.ehour.singular=eh|ehr|ehour|eh -Units.eminute.plural=em|emins|eminutes|em -Units.eminute.singular=em|emin|eminute|em -Units.emonth.plural=emo|emons|emonths|eM -Units.emonth.singular=emo|emon|emonth|eM -Units.epercent.plural=e%|e%|e%|e% -Units.epercent.singular=e%|e%|e%|e% -# the two estimated symbol strings do not need translation -Units.estimatedSymbol=? -Units.estimatedSymbolRegex=\\? -Units.eweek.plural=ew|ewks|eweeks|ew -Units.eweek.singular=ew|ewk|eweek|ew -Units.eyear.plural=ey|eyrs|eyears|ey -Units.eyear.singular=ey|eyr|eyear|ey -Units.hour.plural=h|hrs|ore|h -Units.hour.singular=h|hr|ora|h -Units.minute.plural=m|mins|minuti|m -Units.minute.singular=m|min|minuto|m -Units.month.plural=mo|mons|mesi|M -Units.month.singular=mo|mon|mese|M -Units.percent.plural=%|%|%|% -Units.percent.singular=%|%|%|% -Units.week.plural=w|wks|settimane|w -Units.week.singular=w|wk|setimana|w -Units.year.plural=y|yrs|anni|y -Units.year.singular=y|yr|anno|y -UpdateProjectDialogBox.EntireProject=Intero progetti -UpdateProjectDialogBox.For=Per: -UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Ripianifica il lavoro rimanente dopo -UpdateProjectDialogBox.SelectedTasks=\ Attivit selezionate -UpdateProjectDialogBox.SetZeroHundred=Aggiusta la percentuale di completamento in accordo con le date di scadenza -UpdateProjectDialogBox.SetZeroOrHundredOnly=E' possibile aggiustare e completare esclusivamente le attivit che finiscono con una data -UpdateProjectDialogBox.UpdateProject=Aggiorna progetto -UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Aggiorna lavoro come completato -UpdateTaskDialog.Actual=Atuale -UpdateTaskDialog.Current=Corente -UpdateTaskDialog.UpdateTask=Aggiorna attivit -ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Questa data gi presente nella tabella. Per favore si scelga una data differente. -ValueObjectForIntervalTable.ThisDateMustBeAfter=Questa data deve essere successiva a quella inserita in precedenza. -ValueObjectForIntervalTable.ThisDateMustBeBefore=QUesta data deve essere precedente a quella inserita successivamente. -ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Nn possibile rimuovere la prima data in tabella. -WelcomeDialog.WhatWouldYouLikeToDo=Cosa si preferisce fare: -WorkRangeException.EndMustBeAfterStart=La fine dell'intervallo deve essere superiore all'inizio -WorkRangeException.RangeIncomplete=Un intervallo di lavoro deve includere un inizio e una fine -WorkRangeException.RangesCannotOverlap=You cannot have overlapping work ranges. -WorkRangeException.RangesMustBeOrdered=L?avvio di un intervallo di lavoro deve essere successivo al precedente -tip.1.description= E' possibile diventare un membro della community ProjectLibre a http://www.projectlibre.org e si avr accesso ad aggiornamenti, informazioni ed eventi.. -tip.1.name=ENtra nella community ProjectLibre -tip.2.description= E' possibile utilizzare il tasto destro sul Gannt, sulle celle, sulle intestazioni, e sull'angolo superiore sinistro della tabella per accedere al menu dove si potranno cambiare le viste. -tip.2.name=Modifica Viste -tip.3.description=E' possibile contribuire allo sviluppo di ProjectLibre! Stiamo cercando traduttori e sviluppatori per rendere ProjectLibre sempre migliore. Contatta partners@projectlibre.org. -tip.3.name=Contribuisci a ProjectLibre -tip.4.description=L'istogramma e il grafico sono dinamici e dipendono dalle attivit selezionate. -tip.4.name=rafici dinamici -tip.5.description=E' possibile apportare modifiche direttamente sul Diagramma Network (PERT). -tip.5.name=Modifica le sezioni del Network -tip.6.description=E' possibile indentare le attivit per creare una gerarchia nel progetto. Questo sar riscontrabile anche sulla vista WBS. -tip.6.name=Costruisci una gerarchia nel progetto -tip.7.description=E' possibile utilizzare il mouse per collegare le attivit, estenderle, completarle, muoverle e dividerle. -tip.7.name=Funzionalit del mouse -tip.8.description=Generalmente si utilizzer il predefinito FS (Finish-Start) collegamento tra le attivit. Qualche volta si potrebbe utilizzare SS e FF, ma il collegamento SF molto raro. E' possibile modificare il tipo di collegamento cliccandoci sopra. E' anche possibile impostare un ritardo. -tip.8.name=Tipologie di collegamento -tip.9.description=E' sempre un'ottima idea salvare una baseline di progetto. ProjectLibre consente di salvarne fino ad 11, le quali si potranno facilmente osservare sul Gantt e utilizzare per l'analisi dell'Earned Value. -tip.9.name=Baseline -tip.10.description=E' possibile aggiustare la stampa in una sola pagina zoommando (avvicinando/allontanando) il Gannt e ridimensionando o nascondendo le colonne. Utilizzare l'anteprima di stampa per verificare. -tip.10.name=Stampa -tip.11.description=E' possibile aprire in ProjectLibre anche file creati in MS Project ed possibile salvarli in formato di compatibilit XML. -tip.11.name=Compatibilit con MS Project -tip.12.description=Projectlibre dispone di molti campi definiti dall'utente. Si provi ad utilizzare il tasto destro sull'intestazione delle tabelle... -tip.12.name=Campi definiti dall'utente -tip.13.description=E' possibile assegnare un calendario ai tasks, alle risorse e ai progetti per tener conto delle diverse festivit. -tip.13.name=Calendari -tip.14.description= -tip.14.name= -tip.15.description= -tip.15.name= -tip.16.description= -tip.16.name= -tip.17.description= -tip.17.name= -tip.18.description= -tip.18.name= - -Text.badJavaVersion=La corrente versione di Java la "{0}". Per utilizzare ProjectLibre necessario Java 1.6 o successivo. -Text.badJavaVendor=Il distributore Java "{0}". Per utilizzare ProjectLibre necessario avere Sun Java. -Text.javaExecutable=La versione di Java Runtime attualmente in uso {0}.\nSe non si dispone di una versione pi recente, possibile modificarla manualmente modificando la propriet\n"{1}" nel file auto-detection, "{2}".\nAltrimenti, per eseguire nuovamente l'individuzione automatica possibile rimuovere "{2}". - -Text.newVersion=Una nuova versione {0} di ProjectLibre disponibile.\nLa versione corrente la {1}.\nSi desidera collegarsi adesso alla pagina di download per aggiornarla? - -TipOfTheDay.dialogTitle=Suggerimento del giorno -TipOfTheDay.didYouKnowText=Sapevi che... -TipOfTheDay.showOnStartupText=Mostra suggerimenti all'avvio -TipOfTheDay.previousTipText=< Precedente -TipOfTheDay.nextTipText=Successivo > -TipOfTheDay.closeText=Close - - -Warn.lockMessage = Il progetto stato bloccato da {0}. Si vuole ugualmente aprire il file in modalit sola-lettura? - -#added 14/2/08 -Filter.StartingWithinWeek=Partenza entro una settimana -Filter.StartingWithinTwoWeeks=Partenza entro due settimane -Filter.LateStarting=Partenza in ritardo - -Warn.resourcePoolOpen=Non possibile aprire un altro progetto mentre aperto il pool delle risorse. -Warn.resourcePoolCannotOpen=Non possibile aprire il pool delle risorse mentre aperto un altro progetto. -Warn.fileNotFound=File non trovato - -Text.donateMessage=ProjectLibre is provided free of charge. There are no strings attached, and it saves you the $999.99 list price of commercial project management software. We do ask our users to consider voluntary contributions via PayPal. -Text.donateTitle=Per favore, sostieni Projectlibre -Text.runsSinceMessage=Hai utilizzato ProjectLibre {0,number} volte dal {1,date,short} -Text.tryPODTitle=Try Projects On Demand - - -Text.notAvailableInProjectLibre= -Text.ShortTitle=ProjectLibre - -Text.doNotShowAgain=Non mostrare nuovamente questo messaggio - -Warn.saveXML=E' consigliato utilizzare sempre il formato XML per evitare perdite di dati nella portabilit con altre applicazioni.\nSi desidera procedere comunque? - -Text.rightClickForOptions=Tasto destro per le opzioni -T_OPEN_TXT=Apri -T_LOOK_IN=Guarda in: -T_FILE_NAME=Nome file: -T_FILES_OF_TYPE=File di tipo: -T_SAVE_IN=Salva in: -T_UP_FOLDER=Su -T_HOME=Home -T_NEW_FOLDER=Nuova cartella -T_LIST_VIEW=Elenco -T_DETAILS_VIEW=Dettagli -T_NAME=Nome -T_FILE_SIZE=Dimensione -T_FILE_TYPE=Tipo -T_FILE_DATE=Modificato -T_FILE_ATTR=Attributi -T_ALL_FILES=Tutti i file -T_CANCEL=Annulla -T_SAVE=Salva -T_REFRESH=Aggiorna -T_VIEW=Visualizza +############################################################################### +# The contents of this file are subject to the Common Public Attribution License +# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# software over a computer network and provide for limited attribution for the +# Original Developer. In addition, Exhibit A has been modified to be consistent +# with Exhibit B. +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# specific language governing rights and limitations under the License. The +# Original Code is ProjectLibre. The Original Developer is the Initial Developer +# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are +# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by +# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor +# ProjectLibre, Inc. +# +# Alternatively, the contents of this file may be used under the terms of the +# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +# the provisions of the ProjectLibre License are applicable instead of those above. +# If you wish to allow use of your version of this file only under the terms of the +# ProjectLibre License and not to allow others to use your version of this file +# under the CPAL, indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by the ProjectLibre +# License. If you do not delete the provisions above, a recipient may use your +# version of this file under either the CPAL or the ProjectLibre Licenses. +# +# +# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices +# in the Source Code files of the Original Code. You should use the text of this +# Exhibit A rather than the text found in the Original Code Source Code for Your +# Modifications.] +# +# EXHIBIT B. Attribution Information for ProjectLibre required +# +# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. +# Attribution Phrase (not exceeding 10 words): +# ProjectLibre, open source project management software. +# Attribution URL: http://www.projectlibre.com +# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +# alternatives listed on http://www.projectlibre.com/logo +# +# Display of Attribution Information is required in Larger Works which are defined +# in the CPAL as a work which combines Covered Code or portions thereof with code +# not governed by the terms of the CPAL. However, in addition to the other notice +# obligations, all copies of the Covered Code in Executable and Source Code form +# distributed must, as a form of attribution of the original author, include on +# each user interface screen the "ProjectLibre" logo visible to all users. +# The ProjectLibre logo should be located horizontally aligned with the menu bar +# and left justified on the top left of the screen adjacent to the File menu. The +# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" +# logo it must direct them back to http://www.projectlibre.com. +############################################################################### + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + +Legend: +Correction proposed +General suggestion +Some of the following denomination are not present in Project Libre. Maybe they are present in the cloud version + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV Percentage = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV Percentage = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Variance at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + +AboutDialog.About=About +AboutDialog.copyright=Copyright 2012-2020 ProjectLibre Inc. Tutti i diritti riservati. +AccessControlPolicy.PUBLIC=Tutte le risorse (eccetto clienti/partner) +AccessControlPolicy.RESTRICTED=Based on Project Role in resources view + +AccrualType.End=Fine +AccrualType.Prorated=Prorated +AccrualType.Start=Inizio +AssignmentDialog.ShowingAllResources=Mostra tutte le risorse +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=Mostra solo le risorse del team di progetto +AssignmentDialog.none=(vuoto) +Bar.assignment=assignment Assegnazione +Bar.baseline10=baseline10 +Bar.baseline1=baseline1 +Bar.baseline2=baseline2 +Bar.baseline3=baseline3 +Bar.baseline4=baseline4 +Bar.baseline5=baseline5 +Bar.baseline6=baseline6 +Bar.baseline7=baseline7 +Bar.baseline8=baseline8 +Bar.baseline9=baseline9 +Bar.baseline=baseline +Bar.critical=Attività critiche +Bar.deadline=scadenza +Bar.external=esterna +Bar.milestone=milestone +Bar.subproject=sottoprogetto +Bar.summary=Attività di riepilogo +Bar.task=Attività +Bar.timesheet=Informazioni attività +Bar.totalSlack=Slittamento complessivo +BarPanel.Shape=Forma: +BaselineDialog.Baseline=Baseline: +BaselineDialog.For=Per: +BookingType.Committed=Assegnato +BookingType.Proposed=Proposto +ButtonText.Cancel=Cancella +ButtonText.Close=Chiudi +ButtonText.IAccept=Accetta +ButtonText.OK=OK +ButtonText.Open=Apri +ButtonText.OpenCopy=Apri in sola lettura +Calendar.24Hours=24 Ore +Calendar.EditedWorkingHours=Modifiche orario di lavoro +CalendarDialogBox.Wednesday=Mercoledì +CalendarDialogBox.September=Settembre +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ Manuale +Calendar.EditsToADayOfTheWeek=Modifiche ad un giorno settimanale +CalendarDialogBox.HoursPerday=Ore al giorno : +CalculationDialogBox.Prorated=Ripartito +Calendar.EditsToAnIndividualDay=Modifiche ad un singolo giorno +CalendarDialogBox.DurationSettings=Impostazioni sulla durata +CalendarDialogBox.SetAsDefault=Imposta come predefinito +CalendarDialogBox.HoursPerWeek=Ore a settimana : +CalendarDialogBox.DaysPerMonth=Giorni al mese : +Calendar.ExceptionCircular=Non è possibile utilizzare questo calendario come calendario di progetto in quanto dipende da se stesso. +CalendarDialogBox.Monday=Lunedì +CalendarDialogBox.Tuesday=Martedì +CalendarDialogBox.Thursday=Giovedì +CalendarDialogBox.Friday=Venerdì +CalendarDialogBox.Saturday=Sabato +CalendarDialogBox.Sunday=Domenica +CalendarDialogBox.January=Gennaio +CalendarDialogBox.February=Febbraio +CalendarDialogBox.March=Marzo +CalendarDialogBox.April=Aprile +CalendarDialogBox.August=Agosto +CalendarDialogBox.October=Ottobre +CalendarDialogBox.November=Novembre +CalendarDialogBox.December=Dicembre +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=Inizia +Calendar.NightShift=Turno di notte +Calendar.Nonworking=Non lavorativo +Calendar.Standard=Standard +Calendar.Unmodified=Non modificato +CalendarDialogBox.May=Maggio +CalendarDialogBox.June=Giugno +CalendarDialogBox.July=Luglio +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=Utilizza l'anno di partenza per la numerazione FV +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=Queste impostazioni vengono applicate esclusivamente alle durate +CalculationDialogBox.AndMoveStartOfRemaining=And move start of remaining work back to status date +CalculationDialogBox.AndMoveEndOfCompleted=And move end of completed work forward to status date +CalculationDialogBox.MoveEndOfCompleteParts=Move end of complete work that is after status date back to status date +Calendar.Working=Lavorativo +Category.assignmentEntrySpreadsheet=Tabella dei lavori in entrata +Category.assignmentSpreadsheet=Tabella dei lavori +Category.availabilitySpreadsheet=Tabella delle disponibilità +Category.costRates=Tariffe di costo +Category.dependencySpreadsheet=Tabella delle dipendenze +CalculationDialogBox.Automatic=Automatico +CalculationDialogBox.Calculate=Calcola: +Category.distributionSpreadsheet=Tabella degli utilizzi +CalculationDialogBox.Calculation=Calcolo +CalculationDialogBox.EarnedValue=Earned value +Category.projectSpreadsheet=Tabella di progetto +Category.resourceAssignmentSpreadsheet=Tabella delle risorse assegnate +Category.resourceSpreadsheet=Tabella delle risorse +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=Tabelle delle risorse +Category.taskAssignmentSpreadsheet=Tabella dei task assegnati +Category.taskSpreadsheet=Tabella dei task +Category.taskSpreadsheet;projectSpreadsheet=Tabella dei task e di progetto +CalculationDialogBox.End=Fine +Category.timesheetSpreadsheet=Tabella dei tempi +ChangeWorkingTimeDialogBox.BasedOn=Base +ChangeWorkingTimeDialogBox.ChangeWorkingTime=Modifica il calendario di progetto +ChangeWorkingTimeDialogBox.For=Per: +ChangeWorkingTimeDialogBox.From=Da: +ChangeWorkingTimeDialogBox.ModificationMessage=Le modifiche di questo calendario influiranno su tutti i progetti che lo utilizzano. +ChangeWorkingTimeDialogBox.New=Nuovo... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Orario di lavoro personalizzato +ChangeWorkingTimeDialogBox.NonWorkingTime=Orario non lavorativo +ChangeWorkingTimeDialogBox.NotEdiableMessage=This calendar is only editable when editing the Master Project (Resource Pool). +ChangeWorkingTimeDialogBox.Options=Opzioni... +ChangeWorkingTimeDialogBox.To=\ Per\: +ChangeWorkingTimeDialogBox.UseDefault=Utilizza come predefinito +ChartLegend.ResourceFilter=Fltra risorse per: +ClientRole.Inactive=- +ClientRole.ProjectManager=Project Manager +ClientRole.TeamMember=Membro del team +ClientRole.TeamResource=Team Resource +ColumnDialog.InsertColumn=Inserisci nuova colonna +Command.UpateProject=Aggiorna progetto +Command.UpdateTasks=Aggiorna le attività +ConstraintType.ALAP=Più tardi possibile +ConstraintType.ASAP=Prima possibile +ConstraintType.FNET=Non terminare prima di +ConstraintType.FNLT=Non terminare dopo il +ConstraintType.HAMM=Hammock +ConstraintType.MFO=Deve terminare il +ConstraintType.MSO=Deve iniziare il +ConstraintType.SNET=Non iniziare prima di +ConstraintType.SNLT=Non iniziare dopo il +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=Tariffa A +CostRateIndex.B=Tariffa B +CostRateIndex.C=Tariffa C +CostRateIndex.D=Tariffa D +CostRateIndex.E=Tariffa E +Date.NoEnd=Poi +# NA = Non applicabile +Date.NoStart=NA +Date.Quarter1=Q1 +Date.Half1=H +Date.Quarter2=Q2 +Date.Half2=Half +DefaultFrameManager.Project=Progetto +DelegateTaskDialog.DelegateTask=Delega l'attività +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=Finish To Finish +DependencyType.longFS=Finish To Start +DependencyType.longSF=Start To Finish +DependencyType.longSS=Start To Start +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% di completamento +EarnedValueMethodType.PhysicalPercentComplete=% fisica di completamento +ExpenseType.CAPITALIZE=Capitalizza +ExpenseType.DIRECT=Diretto +ExpenseType.EXPENSE=Costo +ExpenseType.INDIRECT=Indiretto +ExpenseType.NONE=Nessuno +ExpenseType.OVERHEAD=Overhead +Field.accessControlPolicy=Team di progetto +Field.accrueAt=Maturano al +Field.actualCost=Costo effettivo +Field.actualDuration=Durata effettiva +Field.actualFinish=Data chiusura effettiva +Field.actualFixedCost=Costi fissi attuali +Field.actualOvertimeCost=Costi attuali straordinari +Field.actualOvertimeWork=Lavori attuali straordinari +Field.actualOvertimeWorkProtected=Lavoro straordinario effettivo protetto +Field.actualStart=Data avvio effettiva +Field.actualWork=Lavoro effettivo +Field.actualWorkProtected=Lavoro attuale protetto +Field.acwp=ACWP +Field.assignedRate=Tasso di assegnazione +Field.assignment=Assegnazione +Field.assignmentEntryAssigned=Assegnato +Field.assignmentEntryName=Nome +Field.assignmentEntryRate=Unità +Field.assignmentProjectName=Progetto +Field.assignmentResourceId=ID Risorsa +Field.assignmentResourceName=Risorsa +Field.assignmentTaskId=ID Attività +Field.assignmentTaskName=Attività +Field.assignmentUnits=Assignment Units +Field.availableFrom=Disponibile dal +Field.availableTo=Disponibile a +Field.bac=BAC +Field.baseCalendar=Calendario di progetto +#the # will be replaced by a number or by nothing +Field.baseline#Cost=Baseline# dei costi +Field.baseline#Duration=Baseline# delle durate +Field.baseline#Finish=Baseline# delle scadenze +Field.baseline#Start=Baseline# degli avvii +Field.baseline#Work=Baseline# del lavoro +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=Benefit +Field.bookingType=Tipo di prenotazione +Field.budgetStatusIndicator=Status del budget +Field.cachedEnd=Fine +Field.cachedStart=Data di Avvio +Field.canLevel=Can Level +Field.code=Codice +Field.complete=Completa +Field.completeThrough=Completa attraverso +Field.completedThrough=Completato attraverso +Field.confirmed=Confermato +Field.constraintDate=Vincolo di data +Field.constraintType=Tipologia di vincolo +Field.contact=Contatto +Field.cost=Costo +Field.costPerUse=Costo per utilizzo +Field.costRateTable=tabella tariffe +Field.costVariance=Varianza dei costi +Field.cpi=CPI +Field.created=Creato +Field.creationDate=Data di creazione +Field.critical=Critica +Field.csi=CSI +Field.cumulativeCost=Costo Cumulato +Field.cumulativePercentComplete=Percentuale di completamento cumulata +FieldDialog.ResourceInformation=Informazioni risorsa +Field.cumulativeWork=Lavoro cumulato +Field.currentDate=Data corrente +Field.customCost#=Costo# +Field.customDate#=Data# +Field.customDuration#=Durata# +Field.customFinish#=Termine# +Field.customFlag#=Flag# +Field.customNumber#=Numero# +Field.customOutlineCode#=Schema codice# +Field.customStart#=Inizio# +Field.customText#=Testo# +Field.cv=CV +Field.cvPercent=CV Percentuale +Field.deadline=Scadenza +Field.debugDependencyOrder=Ordine di dipendenza +Field.delay=Ritardo nell'assegnazione +Field.delegatedTo=Delegato a +Field.dependencyDate=Data di dipendenza +Field.dependencyStart=Inizio di dipendenza +Field.dependencyType=Tipo +Field.dirty=Sporco +Field.duration=Durata +Field.durationVariance=Varianza della durata +Field.eac=EAC +Field.earliestStartingTask=Avvio al più presto dell'attività +Field.earlyFinish=Termine al più presto +Field.earlyStart=Avvio al più presto +Field.earnedValueMethod=Metodo dell'Earned Value +Field.effectiveDate=Data effettiva +Field.effortDriven=Basato sulle risorse +Field.elapsedDuration=Durata trascorsa +Field.emailAddress=Indirizzo E-mail +Field.estimated=Stimata +Field.expectedDuration=Durata prevista +Field.expectedFinish=Termine previsto +Field.expectedStart=Avvio previsto +Field.expenseType=Tipologia di spesa +Field.externalId=ID esterno +Field.externalTask=Attività esterna +Field.finish=Data di chiusura +Field.finishDate=Data avvio effettiva +Data di chiusura +Field.finishOffset=Differenza finale +Field.finishSlack=Ritardo finale +Field.finishVariance=Varianza finale +Field.fixedCost=Costo fisso +Field.fixedCostAccrual=Costo fisso per competenza +Field.forward=Programma dalla data di avvio +Field.freeSlack=Free Slack +Field.ganttSnapshot=Gantt +Field.generic=Generico +Field.group=Gruppo +Field.groupBySummary=Group By Summary +Field.hideBar=Nascondi la barra +Field.hyperlink=Collegamento +Field.hyperlinkAddress=Indirizzo collegamento +Field.hyperlinkHref=Indirizzo Href +Field.hyperlinkSubAddress=Indirizzo +# ID = Identifier +Field.id=ID +Field.ignoreResourceCalendar=Ignora calendario risorse +Field.inactive=Inattivo +Field.indicators=Indicatori +Field.initials=Initiali +Field.justModified=Appena modificato +Field.lag=Ritardo +Field.lastModificationDate=Ultima modifica +Field.lastTimesheetUpdate=Ultimo aggiornamento tabella +Field.lateFinish=Ritardo sul termine +Field.lateStart=Ritardo all'avvio +Field.latestFinishingTask=Latest Finishing Task +Field.levelAssignments=Level Assignments +Field.levelingCanSplit=LevelingCanSplit +Field.levelingDelay=Ritardo dovuto al livellamento +Field.linkedFields=Campi collegati +Field.manager=Manager +Field.markTaskAsMilestone=Visualizza attività come milestone +Field.marked=Contrassegnato +Field.materialLabel=Etichetta materiale +Field.maximumUnits=Unità massime +Field.milestone=Milestone +Field.name=Nome +Field.negativeSlack=Slittamento negativo +Field.netPresentValue=Valore attuale netto +Field.networkSnapshot=Reticolo logico +Field.notes=Note +Field.objects=Ogetto +Field.optimisticDuration=Durata ottimista +Field.optimisticFinish=Termine ottimistico +Field.optimisticStart=Avvio ottimistico +Field.outlineLevel=Livello struttura +Field.outlineNumber=Numero struttura +Field.overallocated=Sovrallocata +Field.overallocation=Sovrallocazione +Field.overtimeCost=Costi straordinari +Field.overtimeRate=Tariffa straordinaria +Field.overtimeWork=Lavoro straordinario +Field.parentId#=ID Genitore# +Field.partner=partner +Field.peak=Picco +Field.peakUnits=Unità picco +Field.pendingTimesheetUpdate=La tabella necessita di un aggiornamento +Field.percentAllocation=Percentuale di allocazione +Field.percentComplete=Precentuale di completamento +Field.percentWorkComplete=Percentuale di completamento del lavoro +Field.pessimisticDuration=Durata pessimistica +Field.pessimisticFinish=Termine pessimistico +Field.pessimisticStart=Avvio pessimistico +Field.phonetics=Fonetica +Field.physicalPercentComplete=Percentuale fisica completata +Field.predecessorId=ID Predecessore +Field.predecessorName=Predecessore +Field.predecessors=Predecessori +Field.preleveledFinish=Preleveled Finish +Field.preleveledStart=Preleveled Start +Field.priority=Priorità +Field.project=Progetto +Field.projectDivision=Ripartizione +Field.projectGroup=Gruppo +Field.projectId=ID Progetto +Field.projectStatus=Stato del progetto +Field.projectType=Tipologia di progetto +Field.rate=Unità +Field.rbsCode=RBS +Field.readOnlyDuration=Durata +Field.recurring=Periodico +Field.referringSubprojectTaskDependencyDate=Data di dipendenza sottoprogetto +Field.regularWork=Lavoro regolare +Field.remainingAvailability=Disponibilità rimanente +Field.remainingCost=Costi rimanenti +Field.remainingDuration=Durata rimanente +Field.remainingOvertimeCost=Costi straordinari rimanenti +Field.remainingOvertimeWork=Lavoro straordinario rimanente +FieldDialog.TaskInformation=Informazioni attività +Field.remainingWork=Lavoro rimanente +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=Disponibilità risorsa +Field.resourceGroup=Gruppo risorsa +Field.resourceId=ID Risorsa +Field.resourceInitials=Iniziali risorsa +Field.resourceNames=Nome risorsa +Field.resourcePhonetics=Fonetica risorsa +Field.resourcePool=Pool di risorsa +Field.resourceType=Tipo +Field.responsePending=Attesa risposta +Field.resume=Indietro +Field.risk=Rischio +Field.rollup=Rollup +Field.scheduleStatusIndicator=Schedule Status +Field.schedulingMethod=Metodo di Scheduling +Field.showProjectResourcesOnly=Mostra solo le risorse del progetto +Field.spi=SPI +Field.standardRate=Tariffa standard +Field.start=Data di Avvio +Field.startDate=Data di Avvio +Field.startOffset=Start Offset +Field.startSlack=Start Slack +Field.startVariance=Start Variance +Field.status=Status +Field.statusDate=Data stato +Field.statusIndicator=Overall Status +Field.statusTaskIndicator=StatusTask Indicator +Field.stop=Termina +Field.subprojectFile=File sottoprogetto +Field.subprojectOf=Sottoprogetto di +Field.subprojectReadOnly=Sottoprogetto in sola lettura +Field.successorId=Id Successore +Field.successorName=Successore +Field.successors=Successori +Field.summary=Sommario +Field.summaryProgress=Progresso sommario +Field.suprojectReadOnly=Sottoprogetto in sola lettura +Field.sv=SV +Field.svPercent=Percentuale SV +Field.taskCalendar=Calendario attività +Field.taskId=ID Attività +Field.taskName=Nome attività +Field.taskOutlineNumber=Task Outline Number +Field.taskSummaryName=Nome sommario attività +Field.taskType=Tipologia legame +Field.tcpi=TCPI +Field.teamStatusPending=TeamStatus Pending +Field.textAbove=Testo precedente +Field.timesheetFinish=Timesheet Finish +Field.timesheetStart=Timesheet Start +FieldDialog.document=documento: +Field.timesheetStatus=Timesheet Status +Field.timesheetStatusName=Stato +Field.totalSlack=Slittamento totale +Field.totalSlackEnd=Slittamento totale al termine +Field.totalSlackStart=Slittamento totale all'avvio +Field.uniqueId=ID Unico +Field.uniqueIdPredecessors=ID Unico predecessori +Field.uniqueIdSuccessors=ID Unico successori +Field.unitAvailability=Disponibilità unità +Field.updateNeeded=Aggiornamento necessario +Field.userAccount=Account utente +Field.userRole=Ruolo nel progetto +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=E' parente WBS +Field.wbsParentName=Parente WBS +Field.wbsPredecessors=Predecessori WBS +Field.wbsSuccessors=Successori WBS +Field.work=Lavoro +Field.workAvailability=Disponibilità lavoro +Field.workContour=Profilo del lavoro +Field.workVariance=Varianza lavoro +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Progetti +File.ProjectLibre=ProjectLibre +Filter.CompletedTasks=Attività completate +Filter.CostOverbudgetTasks=Costo attività extra-budget +Filter.CriticalTasks=Attività critiche +Filter.DateRange=Intervallo date +Filter.Flag1=Flag 1 +Filter.Flag2=Flag 2 +Filter.Flag3=Flag 3 +Filter.InProgressAssignments=Assegnazioni in avanzamento +Filter.InProgressTasks=Attività in avanzamento +Filter.IncompleteTasks=Attività incomplete +Filter.LateOrOverbudgetTasks=Attività in ritardo/fuori budget +Filter.Milestones=Milestones +Filter.MyDelegatedTasks=Le mie attività delegate +Filter.MyTasks=i attivitàs +Filter.None=No filtri +Filter.NormalTasks=Attività normali +Filter.ResourcesMaterial=Risorse materiali +Filter.ResourcesMe=Io +Filter.ResourcesWork=Risorse del lavoro +Filter.SlippedTasks=Attività slittate +Filter.SummaryTasks=Sommario attività +Filter.TasksWithEstimatedDurations=Stima dur. attività... +Filter.UnstartedAssignments=Assegnazioni non avviate +FixedDuration.FixedDuration=Durata fissata +Filter.UnstartedTasks=Attività non avviate +Filter.WorkComplete=Lavoro completo +FixedWork.FixedWork=Lavoro fissato +FixedUnits.FixedUnits=Unità fissate +FixedDuration.TheDurationMessage=Questo task a durata-fissata deve cambiare la propria durata per questo compito +FooterRenderer.page=\ - pagina +Gantt.Popup.annotationStylesMenu=Stili annotazione +Gantt.Popup.barStylesMenu=Stili barra +Gantt.Popup.showAssignments=Mostra compiti +Gantt.Popup.showCalendar=Mostra calendario +Gantt.Popup.showRows=Mostra righe +Gantt.Popup.splitMode=Dividi +Gantt.tooltip.Assignment=Assegnazione +Gantt.tooltip.Resource=Risorsa +Gantt.tooltip.Task=Attività +Gantt.tooltip.from=Da +Gantt.tooltip.lag=Ritardo +Gantt.tooltip.link=Collegamento +Gantt.tooltip.to=Per +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Il progetto selezionato è già aperto come sottoprogetto di un altro progetto consolidato. +GraphicManager.SelectedProjectAlreadySubproject=Il progetto selezionato è già aperto come sottoprogetto di questo progetto consolidato. +Grouper.AssignmentProjectName=Nome progetto +Grouper.CompleteIncomplete=Completo/incompleto +Grouper.Critical=Critica +Grouper.CriticalThenDuration=Critico per durata +Grouper.Delegated=Delegato a +Grouper.Duration=Durata +Grouper.None=No gruppo +Grouper.ResourceGroup=Gruppo +Grouper.ResourceType=Tipo +HelpDialog.About=Aiuto +HelpDialog.GoToOnlineHelp=Vai all'aiuto online +HelpDialog.ShowLicense=Mostra licenza +HelpDialog.ShowTipsOfTheDay=Mostra i consigli del giorno +HelpDialog.WatchHowToVideos=Mostra i video "How-To" +HyperLinkToolTip.SeeOnlineDemo=">Guarda la Demo online +HyperLinkToolTip.SeeOnlineHelp=">Guarda l'Aiuto online +InformationDialog.AssignResources=Assegna risorse +InformationDialog.ChangeWorkingTime=Cambia l'orario lavorativo +License.Inactive=Inattivo +License.LiteUser=Lite User +License.PowerUser=Utente esperto +LicenseDialog.CouldNotLoadLater=Non è stato possibile caricare la licenza. Per favore riprovare più tardi. +LicenseDialog.CouldNotLoadExiting=Non è possibile caricare la licenza. Per favore riprovare più tardi. Il programma sarà terminato. +LicenseDialog.Email=Per favore registra la tua compia di ProjectLibre per rimanere informato sulle novità e sugli aggiornamenti del prodotto. +LicenseDialog.EmailLabel=Indirizzo E-mail +LicenseDialog.License=Licenza +LicenseDialog.ThirdParty=Parte terza +LicenseOption.Administrator=Amministratore +LicenseOption.External=Partner/Cliente +LicenseOption.Inactive=- +LocalFileImporter.Exporting=Esportando... +LocalFileImporter.Importing=Importanto... +LoginDialog.Login=Login: +LoginDialog.Password=Password: +LoginDialog.RememberMe=Ricordami su questo computer +LoginDialog.UseOfficeLook=Utilizza Office Look and Feel +LookupDialog.EnterPartOfTheName=Inserisci una parte del nome che stai cercando +LookupDialog.Find=Trova +LookupDialog.LookupAnObject=Ricerca diretta dell'oggetto +LookupDialog.NoMatchesFound=Nessuna corrisponenza trovata +LookupDialog.Results=Risultati +LookupDialog.Type=Tipo: +LookupDialog.UnableToContactServer=Impossibile contattare il server. +LookupField.LookupAValue=Ricerca diretta del valore +Message.ImportError=Impossibile leggere il file +Message.allowDeleteActuals=L'elemento/i selezionato/i hanno già questi valori. Sei sicuro di volerli cancellare? +Message.allowDistrbutedStartBeforeProjectStart=Il valore provocherà l'avvio dell'attività prima dell'avvio del progetto. Procedere comunque? +Message.allowDistrbutedStartBeforeTaskStart=Il valore è precedente all'avvio dell'attività. Procedere comunque? +Message.allowTaskStartBeforeProjectStart=Questa attività si può avviare prima dell'avvio dell'intero progetto? +Message.alreadyParentChildHierarchy=E' già presente una relazione di tipo padre/figlio. +Message.badTimeFormat=Formato orario non consentito +Message.badTimeIntervals=Intervallo orario non consentito +Message.cannotEnterUnits=Non è possibile inserire unità in questo campo +Message.cannotLinkToSummary=You cannot link a summary task and one of its subtasks.\nIf you want to link them, remove the hierarchy by outdenting the subtask so it is no longer under the summary task. +Message.cannotLinkTwice=Questo collegamento è già presente. +Message.cantEmptySpreadsheet=Questa tabella deve contenere almeno un campo. +Message.cantLinkToClosedSubproject=A subproject must be open and writable in order to be the target of a link as it affects the subproject's start date. +Message.cantLinkToExternal=Non è possibile creare collegamenti con attività esterne. +Message.cantLinkToSelf=Non è possibile collegare un'attività a se stessa. +Message.circularDependency=This link is invalid as it would a create a circular dependency relationship with other tasks. +Message.confirmDeleteRows=Si è sicuri di voler cancellare queste righe? +# {0} is the name of the predecessor task, {1} is the name of the successor task +Message.crossProjectCircularDependency.mf=A cross project link from {0} to {1} would cause a circular dependency relationship with other tasks. It is disabled and marked in dotted lines. +Message.errorCalendarMustHaveWorkingDay=Il calendario deve contenere almeno un giorno lavorativo. +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=Il valore non può essere superiore a {1,number,percent}. +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=Il valore deve essere superiore a {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=Il valore deve essere compreso tra {0,number} e {1,number}. +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=Il valore non può essere superiore a {1,number}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=Il valore deve essere superiore a {0,number}. +Message.importCircularLink=Il progetto non può essere importato perchè contiene una relazione circolare con il predecessore. +Message.invalidAssignments=Si devono inserire risorse già esistenti nel pool di risorse separate dal carattere ";". Se si desidera assegnare meno del 100%, è possibile specificare una percentuale tra parentesi: e.g. Clark Kent[50%];Lois Lane +Message.invalidChoice=Scelta non valida +Message.invalidCost=Costo non valido\nQuesto costo non è valido. Il costo deve essere espresso in numeri. Il simbolo corrente è opzionale.\nIl simbolo corrente è predefinito nel tuo sistema. +Message.invalidDate=Data non valida\nQuesta data non è valida o è al di fuori dei valori ammissibili. La data deve essere compresa tra il 01 Gennaio 1970 e il 31 Dicembre 2049.\nIl formato data è quello predefinito del sistema. Esempio\: 3/12/06 o 3 Mar 2006. +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf={0} è non valido.\nPer favore usa un ID dell'attività valido.\n\u00B7 L'informazione di {0} è espressa come\: {0} numero ID, dipendenza, e anticipo/ritardo.\n\u00B7 E' anche possibile utilizzare il riquadro Infromazioni delle attività. +Message.invalidDuration=Durata non valida\nQuesto valore della durata non è valido.\nPer favore trova un valore come 24 ore (24h), 3 giorni (3d), o 9ed per giorni mancanti. +Message.invalidInput=Il valore non è valido. +Message.invalidIntersection=Resulting working time is invalid\n\nThere is a task which, intersected with its resource calendar, does not have enough working time for any work to be performed.\nThe task will ignore the resource calendar. \nTo remedy this, you can change the task or resource calendar, or choose the "Ignore Resource Calendar" option for the task. +Message.invalidRate=This is not a valid rate.\nFor Work (non-material) resources, type the rate amount followed by a slash (/), and then the abbreviation for the time period. For example, "100/h".\nFor material resources, type the rate amount without a slash and time period\nFor example, "10". If your Material label is "barrel", this would mean "$10/barrel". +Message.invaliidUnits=This is not a valid Units value\n\nFor Work (non-material) resources , type a number.\n\nMaterial resource assignments can be either fixed or variable. For a fixed material resource assignment, type the units value alone. For example, "10" would mean "10 barrels", if your material label was "barrel".\n\nFor a variable material resource assignment, type the units value, followed by a slash(/), and then the abbreviation for the time period. For example, "10/M" would mean "12 barrels per month". +Message.notAResource=L'elemento selezionato non è una risorsa +Message.notATask=L'elemento selezionato non è un task +Message.onlyReplaceOneResourceAtATime=E' possibile sostituire solo una risorsa per volta. +Message.onlySelectOneElement=Può essere selezionato solo un elemento per volta. +Message.parentConstraintType=Parent tasks may only be one of: "As Soon As Possible", "Start No Earlier Than" or "Finish No Later Than". If you are using reverse scheduling, then "As Late As Possible" is an option instead of "As Soon as Possible". +Message.parentSuccessorCannotHaveFinishLink=Predecessors of a parent task may only be of types Finish-Start or Start-Start +Message.projectAlreadyExists=Esiste già questo progetto. Eliminare la versione corrente? +Message.projectMustHaveName=Il progeto deve avere un nome. +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=Progetto " +Message.renameProject2=" è già presente sul server. Per favore si scelga un altro nome. +Message.saveProjectAs1=Salva progetto " +Message.saveProjectAs2=" come +Message.saveProjectBeforeClosing1=Vuoi salvare le modifiche di " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=I sottoprogetti saranno convertiti in attività normali. Questa attività non potrà essere annullata. Continuare comunque? +Message.synchronizeResources=Si desidera sincronizzare le risorse con il server? +Message.tooManyResourcesSelectedToList.mf={0,number} Risorse selezionate (troppe per essere mostrate) +Message.tooManyTasksSelectedToList.mf={0,number} Attività selezionate (troppe per essere mostrate) +MicrosoftImporter.ErrorImportingXML=Non è possibile importare il file XML. Solo i file XML creati con MS Project o Planner possono essere importati. +MicrosoftImporter.ImportWithSubprojects=Il progetto contiene sottoprogetti. E' necessario importali manualmente. Le attività corrispondenti sono: +MicrosoftImporter.Importing=Importando... +MicrosoftImporter.PrepareResources=Preparare le risorse +Network.Popup.barStylesMenu=Stili della barra +NewBaseCalendarDialog.CreateACopyOfCalendar=Crea una copia del calendario +NewBaseCalendarDialog.CreateANewBaseCalendar=Crea nuovo Calendario di progetto +NewBaseCalendarDialog.Name=Nome +NewBaseCalendarDialog.NewBaseCalendar=\ Nuovo Calendario di progetto +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=Blocato da +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=Benvenuti in ProjectLibre +OpenProjectDialog.CreationDate=Data di creazione +OpenProjectDialog.ModificationDate=Data di modifica +OpenProjectDialog.Name=Nome progetto +Open_Title.ProjectLibreError=Errore ProjectLibre +Open_Title.ProjectLibreWarning=Allert ProjectLibre +PageSetupDialog.Margins=Margini +PageSetupDialog.Margins.Left=Sinistra (mm) +PageSetupDialog.Margins.Right=Destra (mm) +PageSetupDialog.Margins.Top=In alto (mm) +PageSetupDialog.Margins.Bottom=In basso (mm) +PageSetupDialog.Orientation=Orientazione +PageSetupDialog.Orientation.Landscape=Orizzontale +PageSetupDialog.Orientation.Portrait=Verticale +PageSetupDialog.Orientation.ReverseLandscape=Orizzontale invertito +PageSetupDialog.Page=Pagina +PageSetupDialog.Paper=Foglio +PageSetupDialog.PaperFormat.Custom=Aspetto +PageSetupDialog.PaperSize=Dimensioni del foglio +PageSetupDialog.PaperSizeSettings.Custom=Impostazioni aspetto +PageSetupDialog.PaperSizeSettings.Custom.Width=Larghezza (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=Altezza (mm): +PageSetupDialog.PaperSizeSettings.Printer=Utilizza impostazioni di stampa +PageSetupDialog.PaperSizeSettings.SinglePage=Pagina unica grande +PageSetupDialog.PaperSizeSettings.SinglePage2=(Solo PDF) +PageSetupDialog.Printers=Stampanti +PageSetupDialog.PrinterPageSetup=Impostazioni stampante +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=Disponibile solo in +PageSetupDialog.PODOnly2=Projects On Demand +PageSetupDialog.Refresh=Aggiorna +PageSetupDialog.SaveSettings=Utilizza come predefinito +PageSetupDialog.SaveSettings.ToolTip=Salva impostazioni di stampa come predefinite. +PageSetupDialog.SaveWebPDFSettings=Utilizza web come predefinito +PageSetupDialog.SaveWebPDFSettings.ToolTip=Salva impostazioni predefinite per immagini del web in PDF. +PageSetupDialog.Settings.Label=Impostazioni +PageSetupDialog.Settings.Local=Locale +PageSetupDialog.Settings.WebPDF=Web PDF +PageSetupDialog.Scaling=Scala +PageSetupDialog.Scaling.FitTo=Adatta a: +PageSetupDialog.Scaling.FitToHeight=altezza pagina +PageSetupDialog.Scaling.FitToWidth=larghezza pagina +PageSetupDialog.Scaling.ScaleTo=Scala in: +PageSetupDialog.Scaling.ScaleToHeight=altezza +PageSetupDialog.Scaling.ScaleToWidth=larghezza +PageSetupDialog.Scaling.ScaleToProportions=Vincola +PageSetupDialog.Scaling.ScaleToProportions2=proporzioni +PageSetupDialog.ShowGantt=Gantt +PageSetupDialog.ShowParts=Diagrammi +PageSetupDialog.ShowSpreadSheet=Tabella +PageSetupDialog.Title=Setup pagina +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=Il servizio selezionato è un servizio PDF, per favore si selezioni una stampante. +PersonalContour.personal=Personale +ProjectStatus.ACTIVE=Attiva +PreviewPanel.Preview=Anteprima +PreviewPanelEnd.Preview=Anteprima +ProjectDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Clienti/Partner) +ProjectDialog.Notes=Note: +ProjectInformationDialog.ProjectInformation=Informazioni progetto +ProjectStatus.CANCELLED=Cancellato +ProjectStatus.COMPLETED=Completato +ProjectDialog.NewProject=Nuovo progetto +ProjectDialog.StartDate=Data di avvio: +ProjectDialog.FinishDate=Data di chiusura: +ProjectStatus.ON_HOLD=In attesa +ProjectDialog.Manager=Responsabile: +ProjectStatus.PENDING_APPROVAL=In attesa di approvazione +ProjectStatus.PLANNING=In pianificazione +ProjectType.EVENT_PLANNING=Pianificazione evento +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=Campagna di Marketing +ProjectInformationDialog.Notes=Note +PrintPreviewFrame.PrintPreview=Anteprima di stampa +ProjectType.OTHER=Altro +ProjectType.PRODUCT_DEVELOPMENT=Sviluppo di prodotto +ProjectType.PROFESSIONAL_SERVICES=Servizi professionali +ProjectInformationDialog.Statistics=Statistiche +ProjectDialog.BasedOnProjectRole=Basato sul ruolo di progetto nella scheda Risorse +ProjectInformationDialog.General=Generale +ProjectType.SALES_CAMPAIGN=Campagna di vendita +ProjectDialog.ProjectName=Nome progetto: +ProjectDialog.ProjectTeam=Team di progetto: +ProjectType.TECHNICAL_SUPPORT=Supporto tecnico +RenameDialog.AnotherItemWithThatNameAlreadyExists=Esiste già un altro elemento con questo nome. +RenameDialog.NewName=Nuovo nome +RenameDialog.Rename=Rinomina +RenameDialog.TheNameCannotBeEmpty=Il nome non può essere vuoto +RenameProjectDialog.NewProject=Nuovo progetto +RenameProjectDialog.NewProjectName=Nuovo progetto con nome: +RenameProjectDialog.RenameProject=Rinomina progetto +ReportView.Columns=Colonne: +ReportView.Report=Report: +RequestDemandType.Demand=Domanda +RenameDialog.CurrentName=Nome attuale +RequestDemandType.None=- +RequestDemandType.Request=Richiesta +ResourceAdditionDialog.ResourceMerging=Unisci risorse +ResourceAdditionDialog.SelectResourcesToAdd=Seleziona risorse da aggiungere +ResourceIndicatorsComponent.Administrator=\ (Amministratore) +ResourceIndicatorsComponent.PartnerCustomer=\ (Partner/Cliente) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=Questa risorsa fa parte del team di progetto
+ResourceIndicatorsComponent.UserLicense=Licenza utente: +ResourceInformationDialog.AssignedToTasks=Assegnato alle attività: +ResourceInformationDialog.Costs=Costi +ResourceInformationDialog.General=Generale +ResourceInformationDialog.Notes=Note +ResourceInformationDialog.ResourceAvailability=Disponibilità risorsa +ResourceInformationDialog.ResourceInformation=Informazioni risorsa +ResourceInformationDialog.Tasks=Attività +ResourceMappingDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Cliente/Partner) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=Basato sul ruolo di progetto nella scheda Risorse +ResourceMappingDialog.DontMergeOpenProjectReadOnly=Non unire, apri progetto in sola-lettura +ResourceMappingDialog.ImportedResources=Risorse importate +ResourceMappingDialog.MergeResourcesUsingField=Unisci le risorse utilizzando i campi +ResourceMappingDialog.ProjectTeam=Team di progetto: +ResourceMappingDialog.ResourceMerging=Unisci risorse +ResourceMappingDialog.ServerResources=Risorse (server) +ResourceType.Location=Luogo +ResourceType.Machine=Macchina +ResourceType.Material=Materiale +ResourceType.Other=Altro +ResourceType.Work=Lavoro +ResourceView.ThisResourceCurrentlyHasAssignments=. Questa risorsa ha già dei compiti. +ResourceView.ToMoveAProtectedResource=Per modificare la gerarchia di una risorsa non modificabile è possibile creare un collegamento nella vista RBS. +ResourceView.UsersCanOnlyBeRemoved=. Gli utenti possono essere rimossi o resi inattivi solo dalla pagina web di gestione degli utenti. +ResourceView.YouCannotDeleteTheResource=Non è possibile eliminare la risorsa: +Role.Inactive=Inattivo +Role.ProjectManager=Project Manager +Role.TeamMember=Membro del team +SchedulingType.FixedDuration=Durata fissa +ScheduleDialogBox.Percentage=Percentuale +ScheduleDialogBox.FixedDuration=Durata fissa +ScheduleDialogBox.FixedUnits=Unità fissa +ScheduleDialogBox.FixedWork=Lavoro fisso +ScheduleDialogBox.SetAsDefault=Usa come predefinito +ScheduleDialogBox.WorkIsEnteredIn=\ Il lavoro è stato inserito in +ScheduleDialogBox.DefaultTaskType=\ Tipologia di attività predefinita +SchedulingType.FixedUnits=Unità fissa +ScheduleDialogBox.Schedule=Ordine +ScheduleDialogBox.Decimal=Decimale +ScheduleDialogBox.Minutes=Minuti +ScheduleDialogBox.NewTask=\ Nuova attività +SchedulingType.FixedWork=Lavoro fisso +ScheduleDialogBox.Hours=Ore +ScheduleDialogBox.Days=Giorni +ScheduleDialogBox.Weeks=Settimane +ScheduleDialogBox.Months=Mesi +Sorter.AssignmentProjectName=Nome progetto +Sorter.CompleteIncomplete=Completo/incompleto +Sorter.Cost=Costo +Sorter.CostOverbudget=Costo extra +Sorter.CostPerUse=Costo per utilizzo +Sorter.Critical=Criticità +Sorter.Delegated=Delegato a +Sorter.Duration=Durata +Sorter.DurationThenCost=Durata poi costi +Sorter.FinishDate=Data di chiusura +Sorter.Name=Nome +Sorter.None=Nessun ordinamento +Sorter.OvertimeRate=Overtime rate +Sorter.ResourceGroup=Gruppo +Sorter.ResourceType=Tipo +Sorter.StandardRate=Tariffa standard +Sorter.StartDate=Data di avvio +Spreadsheet.Action.collapse=Collassa +Spreadsheet.Action.copy=Copia +Spreadsheet.Action.cut=Taglia +Spreadsheet.Action.delete=Cancella +Spreadsheet.Action.expand=Espandi +Spreadsheet.Action.indent=Aumenta rientro +Spreadsheet.Action.new=Nuovo +Spreadsheet.Action.outdent=Diminuisci rientro +Spreadsheet.Action.paste=Incolla +Spreadsheet.Assignment.resourceUsage=Utilizzo risorsa +Spreadsheet.Assignment.taskUsage=Task Usage +Spreadsheet.AssignmentEntry.assignResources=Assegna risorse +Spreadsheet.AssignmentEntry.replaceResources=Sostituisci Risorse +Spreadsheet.Dependency.predecessors=Predecessori +Spreadsheet.Dependency.successors=Successori +Spreadsheet.Project.default=Default +Spreadsheet.Project.portfolio=Portfolio +Spreadsheet.Project.properties=Proprietà +Spreadsheet.Resource.earnedValue=Earned Value +Spreadsheet.Resource.earnedValueCostIndicators=Earned Value - Costi +Spreadsheet.Resource.earnedValueScheduleIndicators=Earned Value - Tempi +Spreadsheet.Resource.entryWorkResources=Default +Spreadsheet.ResourceAssignment.reportAssignmentResource=Nome e ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=Report di base +Spreadsheet.ResourceAssignment.resources=Risorse assegnate +Spreadsheet.ResourceAssignment.tasks=Attività assegnate +Spreadsheet.ResourceTimesheet.status=Stato tabella dei tempi +Spreadsheet.ResourceUsage.default=Utilizzo risorsa (distribuzione) +Spreadsheet.nameOnly=Nome +Spreadsheet.Task.baseline=Baseline +Spreadsheet.Task.constraintDates=Date di scadenza +Spreadsheet.Task.cost=Costo +Spreadsheet.Task.delay=Ritardo +Spreadsheet.Task.earnedValue=Earned Value +Spreadsheet.Task.earnedValueCostIndicators=Earned Value - Costi +Spreadsheet.Task.earnedValueScheduleIndicators=Earned Value - Tempi +Spreadsheet.Task.entry=Default +SpreadSheetColumnMenu.InsertColumn=Inserisci colonna... +Spreadsheet.Task.schedule=Schedule (CPM) +Spreadsheet.Task.summary=Sommario +Spreadsheet.Task.tracking=Tracking +Spreadsheet.Task.usage=Lavoro +Spreadsheet.Task.variance=Varianza sui tempi +Spreadsheet.TaskAssignment.reportAssignmentResource=Nome e ID +Spreadsheet.TaskAssignment.reportAssignmentTask=Report di base +Spreadsheet.TaskAssignment.resources=Risorse assegnate +Spreadsheet.TaskAssignment.tasks=Attività assegnate +Spreadsheet.TaskTimesheet.status=Stato tabella dei tempi +Spreadsheet.TaskUsage.default=Utilizzo risorsa (distribuzione) +Spreadsheet.Timesheet.Default=Tabella +Spreadsheet.Timesheet.completion=Completion +SpreadSheetColumnMenu.HideColumn=Nascondi colonna +Spreadsheet.availability=Disponibilità +Spreadsheet.costRates=Tassi di costo +Spreadsheet.empty= +StandardContour.backLoaded=Back Loaded +StandardContour.bell=Bell +StandardContour.doublePeak=Double Peak +StandardContour.earlyPeak=Early Peak +StandardContour.flat=Piatto +StandardContour.frontLoaded=Front Loaded +StandardContour.latePeak=Late Peak +StandardContour.plateau=Plateau +Styles.Annotation.milestone=Milestone +Styles.Annotation.normal=Attività normale +Styles.Bar.Row.assignment=Assegnazioni +Styles.Bar.Row.baseline10=Baseline 10 +Styles.Bar.Row.baseline1=Baseline 1 +Styles.Bar.Row.baseline2=Baseline 2 +Styles.Bar.Row.baseline3=Baseline 3 +Styles.Bar.Row.baseline4=Baseline 4 +Styles.Bar.Row.baseline5=Baseline 5 +Styles.Bar.Row.baseline6=Baseline 6 +Styles.Bar.Row.baseline7=Baseline 7 +Styles.Bar.Row.baseline8=Baseline 8 +Styles.Bar.Row.baseline9=Baseline 9 +Styles.Bar.Row.baseline=Baseline +Styles.Bar.Row.critical=Attività critiche +Styles.Bar.Row.deadline=Scadenza +Styles.Bar.Row.external=Attività esterne +Styles.Bar.Row.milestone=Milestones +Styles.Bar.Row.subproject=Sottoprogetti +Styles.Bar.Row.summary=Sommario attività +Styles.Bar.Row.task=Attività non critiche +Styles.Bar.Row.timesheet=tabella dei tempi +Styles.Bar.Row.totalSlack=Slittamento complessivo +Styles.Calendar.nonWorking=Mostra calendario +Styles.Gantt.showRows=Mostra colonne +Styles.showLinks=Mostra collegamenti +Summary.AND=E +Summary.Average=Media +Summary.AverageFirstSublevel=Media primo sottolivello +Summary.CountAll=COnta tutto +Summary.CountNonsummaries=Count Nonsummaries +Summary.List=Lista +Summary.Maximum=Massimo +Summary.Minimum=Minimo +Summary.None=Nessuno +Summary.OR=O +Summary.Sum=Somma +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=Note: ' +TaskIndicatorsComponent.TheCalendar=Il calendario ' +TaskIndicatorsComponent.TheIntersection=L'intersezione dei calendari dell'attività e della risorsa non fornisce tempo lavorativo.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=L'attività è stata completata il +TaskIndicatorsComponent.ThisParentTaskHasResources=Questa attività parente ha assegnato risorse direttamente a: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=QUesto sottoprogetto non è valido: può essere inserito solo una volta nel progetto. +TaskIndicatorsComponent.ThisTaskFinishesOn=Questa attività finisce il +TaskIndicatorsComponent.ThisTaskHasA=Questa attività ha un ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Questa attività è stata delegata a +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Questa attività è stata delegata a te +TaskIndicatorsComponent.ThisTasksRepresentsThe=Questa attività rappresenta il +TaskIndicatorsComponent.constraintOn=' vincolato a +TaskIndicatorsComponent.isAssignedToTheTask=' è assegnato all'attività.
+TaskIndicatorsComponent.opened=aperto +TaskIndicatorsComponent.subproject=\ sottoprogetto\: +TaskIndicatorsComponent.unopened=non aperto +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ che è oltre la sua scadenza di +TaskInformationDialog.Advanced=Avanzato +TaskInformationDialog.ConstrainTask=Vincoli +TaskInformationDialog.Dates=Date +TaskInformationDialog.General=Generale +TaskInformationDialog.Notes=Note +TaskInformationDialog.Predecessors=Predecessori +TaskInformationDialog.Resources=Risorse +TaskInformationDialog.Successors=Successori +TaskInformationDialog.TaskInformation=Informazioni attività +Text.Allocated=Allocato +Text.ApplicationTitle=ProjectLibre +Text.Assign=Assegna +Text.AssignResources=Assegna risorse +Text.Baseline=Baseline +Text.Cancel=Cancella +Text.ClearBaseline=Cancella Baseline +Text.CostRateTables=tabella tariffe +Text.Cumulative=Cumulativo +Text.DetectingJavaVersion=Ricercando la versione di Java... +Text.DisabledExternalTaskDependency=Dipendenza da attività esterne disattivata +Text.EntireProject=Intero Project +Text.ExternalTaskDependency=Dipendenza da attività esterne +Text.Field=Campo +Text.Filter=Filtro +Text.From=Da +Text.Group=Gruppo +Text.HierarchicalRelation=Relazione gerarchica +Text.Histogram=Istogramma +Text.Lag=Ritardo +Text.No=No +Text.None=Nessuno +Text.OtherProjects=Altri progetti +Text.Remove=Rimuovi +Text.Replace=Sostituisci +Text.ReplaceResource=Sostituisci risorsa +Text.Save=Salva +Text.SaveBaseline=Salva Baseline +Text.Selected=Selezionato +Text.SelectedTasks=Attività selezionate +Text.ShowSelectedOnTop=Mostra i selezionati in alto +Text.ShowTeamResourcesOnly=Solo le risorse del team di progetto +Text.Sort=Ordina +Text.Task=Attività +Text.TaskDependency=Dipendenza attività +Text.Tasks=Attività +Text.ThisProject=Questo progetto +Text.To=A +Text.Type=Tipo +Text.Unassigned=Non assegnato +Text.Untitled=Senza titolo +Text.UserDefinedInParentheses=(utente definito) +Text.With=Con +Text.Yes=Si +Text.budget=Budget +Text.clickToRename=(Clicca per rinominare) +Text.cost=costo +Text.createProject=Crea progetto +Text.forwardScheduled=Pianifica in avanti +Text.insertProject=Inserisci progetto +Text.manageResources=Gestisci pool di risorse +Text.modifiedInParentheses=(modificato) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=Progetto (server) +Text.openProject=Apri progetto +Text.predecessor=predecessore +# {0} is the name of the thing to rename +Text.rename.mf=Rinomina {0} +Text.resetRoles=L'opzione "Tutte le risorse" consente l'accesso a tutte le risorse definite in questo progetto, eccetto gli utenti "Partner/Clienti".\nLe restrizioni specifiche di progetto inserite in "Risorse" saranno resettate. +Text.reverseScheduled=Pianificazione inversa +Text.rightClickSelectToSpreadsheet=Tasto destro per selezionare o rinominare le tabelle die tempi +Text.rightClickToInsertRemoveColumns=Tasto destro per inserire o nascondere le colonne +Text.successor=successore +Text.taskHierarchy=Gerarchia attività: +Text.welcomeSubject=Benvenuti in Projects On Demand +Text.welcomeToPod=Benvenuti in ProjectLibre +Text.work=lavoro +TimeChartPopupMenu.VerticalScrolling=Scorri verticalmente +TimesheetHelper.Entered=Inserito +TimesheetHelper.Integrated=Integrato +TimesheetHelper.Mixed=Misto +TimesheetHelper.New=Nuovo +TimesheetHelper.Rejected=Rifiutato +TimesheetHelper.Saved=Salvato +TimesheetHelper.Validated=Validato +Title.ProjectLibreError=Errore ProjectLibre +Title.ProjectLibreWarning=Allert ProjectLibre +TransformParameter.FinishDate=Data di chiusura +TransformParameter.StartDate=Data di avvio +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|giorni|d +Units.day.singular=d|dy|giorno|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|ore|h +Units.hour.singular=h|hr|ora|h +Units.minute.plural=m|mins|minuti|m +Units.minute.singular=m|min|minuto|m +Units.month.plural=mo|mons|mesi|M +Units.month.singular=mo|mon|mese|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|settimane|w +Units.week.singular=w|wk|setimana|w +Units.year.plural=y|yrs|anni|y +Units.year.singular=y|yr|anno|y +UpdateProjectDialogBox.EntireProject=Intero progetti +UpdateProjectDialogBox.For=Per: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Ripianifica il lavoro rimanente a partire dal +UpdateProjectDialogBox.SelectedTasks=\ Attività selezionate +UpdateProjectDialogBox.SetZeroHundred=Imposta le % di completamento tra 0% e 100% +UpdateProjectDialogBox.SetZeroOrHundredOnly=Imposta le % di completamento uguali a 0% o 100% +UpdateProjectDialogBox.UpdateProject=Aggiorna progetto +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Aggiorna lavoro come completato al +UpdateTaskDialog.Actual=Atuale +UpdateTaskDialog.Current=Corente +UpdateTaskDialog.UpdateTask=Aggiorna attività +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Questa data è già presente nella tabella. Per favore si scelga una data differente. +ValueObjectForIntervalTable.ThisDateMustBeAfter=Questa data deve essere successiva a quella inserita in precedenza. +ValueObjectForIntervalTable.ThisDateMustBeBefore=QUesta data deve essere precedente a quella inserita successivamente. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Nn è possibile rimuovere la prima data in tabella. +WelcomeDialog.WhatWouldYouLikeToDo=Cosa si preferisce fare: +WorkRangeException.EndMustBeAfterStart=La fine dell'intervallo deve essere superiore all'inizio +WorkRangeException.RangeIncomplete=Un intervallo di lavoro deve includere un inizio e una fine +WorkRangeException.RangesCannotOverlap=You cannot have overlapping work ranges. +WorkRangeException.RangesMustBeOrdered=L?avvio di un intervallo di lavoro deve essere successivo al precedente +tip.1.description= E' possibile diventare un membro della community ProjectLibre a http://www.projectlibre.org e si avrà accesso ad aggiornamenti, informazioni ed eventi.. +tip.1.name=ENtra nella community ProjectLibre +tip.2.description= E' possibile utilizzare il tasto destro sul Gannt, sulle celle, sulle intestazioni, e sull'angolo superiore sinistro della tabella per accedere al menu dove si potranno cambiare le viste. +tip.2.name=Modifica Viste +tip.3.description=E' possibile contribuire allo sviluppo di ProjectLibre! Stiamo cercando traduttori e sviluppatori per rendere ProjectLibre sempre migliore. Contatta partners@projectlibre.org. +tip.3.name=Contribuisci a ProjectLibre +tip.4.description=L'istogramma e il grafico sono dinamici e dipendono dalle attività selezionate. +tip.4.name=rafici dinamici +tip.5.description=E' possibile apportare modifiche direttamente sul Diagramma Logico +tip.5.name=Modifica le sezioni del Reticolo Logico +tip.6.description=E' possibile indentare le attività per creare una gerarchia nel progetto. Questo sarà riscontrabile anche sulla vista WBS. +tip.6.name=Costruisci una gerarchia nel progetto +tip.7.description=E' possibile utilizzare il mouse per collegare le attività, estenderle, completarle, muoverle e dividerle. +tip.7.name=Funzionalità del mouse +tip.8.description=Generalmente si utilizzerà il predefinito FS (Finish-Start) collegamento tra le attività. Qualche volta si potrebbe utilizzare SS e FF, ma il collegamento SF è molto raro. E' possibile modificare il tipo di collegamento cliccandoci sopra. E' anche possibile impostare un ritardo. +tip.8.name=Tipologie di collegamento +tip.9.description=E' sempre un'ottima idea salvare una baseline di progetto. ProjectLibre consente di salvarne fino ad 11, le quali si potranno facilmente osservare sul Gantt e utilizzare per l'analisi dell'Earned Value. +tip.9.name=Baseline +tip.10.description=E' possibile aggiustare la stampa in una sola pagina zoommando (avvicinando/allontanando) il Gannt e ridimensionando o nascondendo le colonne. Utilizzare l'anteprima di stampa per verificare. +tip.10.name=Stampa +tip.11.description=E' possibile aprire in ProjectLibre anche file creati in MS Project ed è possibile salvarli in formato di compatibilità XML. +tip.11.name=Compatibilità con MS Project +tip.12.description=Projectlibre dispone di molti campi definiti dall'utente. Si provi ad utilizzare il tasto destro sull'intestazione delle tabelle... +tip.12.name=Campi definiti dall'utente +tip.13.description=E' possibile assegnare un calendario ai tasks, alle risorse e ai progetti per tener conto delle diverse festività. +tip.13.name=Calendari +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + +Text.badJavaVersion=La corrente versione di Java è la "{0}". Per utilizzare ProjectLibre è necessario Java 1.6 o successivo. +Text.badJavaVendor=Il distributore Java è "{0}". Per utilizzare ProjectLibre è necessario avere Sun Java. +Text.javaExecutable=La versione di Java Runtime attualmente in uso è {0}.\nSe non si dispone di una versione più recente, è possibile modificarla manualmente modificando la proprietà\n"{1}" nel file auto-detection, "{2}".\nAltrimenti, per eseguire nuovamente l'individuzione automatica è possibile rimuovere "{2}". + +Text.newVersion=Una nuova versione {0} di ProjectLibre è disponibile.\nLa versione corrente è la {1}.\nSi desidera collegarsi adesso alla pagina di download per aggiornarla? + +TipOfTheDay.dialogTitle=Suggerimento del giorno +TipOfTheDay.didYouKnowText=Sapevi che... +TipOfTheDay.showOnStartupText=Mostra suggerimenti all'avvio +TipOfTheDay.previousTipText=< Precedente +TipOfTheDay.nextTipText=Successivo > +TipOfTheDay.closeText=Close + + +Warn.lockMessage = Il progetto è stato bloccato da {0}. Si vuole ugualmente aprire il file in modalità sola-lettura? + +#added 14/2/08 +Filter.StartingWithinWeek=Partenza entro una settimana +Filter.StartingWithinTwoWeeks=Partenza entro due settimane +Filter.LateStarting=Partenza in ritardo + +Warn.resourcePoolOpen=Non è possibile aprire un altro progetto mentre è aperto il pool delle risorse. +Warn.resourcePoolCannotOpen=Non è possibile aprire il pool delle risorse mentre è aperto un altro progetto. +Warn.fileNotFound=File non trovato + +Text.donateMessage=ProjectLibre is provided free of charge. There are no strings attached, and it saves you the $999.99 list price of commercial project management software. We do ask our users to consider voluntary contributions via PayPal. +Text.donateTitle=Per favore, sostieni Projectlibre +Text.runsSinceMessage=Hai utilizzato ProjectLibre {0,number} volte dal {1,date,short} +Text.tryPODTitle=Try Projects On Demand + + +Text.notAvailableInProjectLibre= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=Non mostrare nuovamente questo messaggio + +Warn.saveXML=E' consigliato utilizzare sempre il formato XML per evitare perdite di dati nella portabilità con altre applicazioni.\nSi desidera procedere comunque? + +Text.rightClickForOptions=Tasto destro per le opzioni +T_OPEN_TXT=Apri +T_LOOK_IN=Guarda in: +T_FILE_NAME=Nome file: +T_FILES_OF_TYPE=File di tipo: +T_SAVE_IN=Salva in: +T_UP_FOLDER=Su +T_HOME=Home +T_NEW_FOLDER=Nuova cartella +T_LIST_VIEW=Elenco +T_DETAILS_VIEW=Dettagli +T_NAME=Nome +T_FILE_SIZE=Dimensione +T_FILE_TYPE=Tipo +T_FILE_DATE=Modificato +T_FILE_ATTR=Attributi +T_ALL_FILES=Tutti i file +T_CANCEL=Annulla +T_SAVE=Salva +T_REFRESH=Aggiorna +T_VIEW=Visualizza + + + diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_it2.properties b/projectlibre_core/src/com/projectlibre1/strings/client_it2.properties new file mode 100644 index 0000000..33aae87 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_it2.properties @@ -0,0 +1,1238 @@ +############################################################################### +# The contents of this file are subject to the Common Public Attribution License +# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# software over a computer network and provide for limited attribution for the +# Original Developer. In addition, Exhibit A has been modified to be consistent +# with Exhibit B. +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# specific language governing rights and limitations under the License. The +# Original Code is ProjectLibre. The Original Developer is the Initial Developer +# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are +# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by +# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor +# ProjectLibre, Inc. +# +# Alternatively, the contents of this file may be used under the terms of the +# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +# the provisions of the ProjectLibre License are applicable instead of those above. +# If you wish to allow use of your version of this file only under the terms of the +# ProjectLibre License and not to allow others to use your version of this file +# under the CPAL, indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by the ProjectLibre +# License. If you do not delete the provisions above, a recipient may use your +# version of this file under either the CPAL or the ProjectLibre Licenses. +# +# +# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices +# in the Source Code files of the Original Code. You should use the text of this +# Exhibit A rather than the text found in the Original Code Source Code for Your +# Modifications.] +# +# EXHIBIT B. Attribution Information for ProjectLibre required +# +# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. +# Attribution Phrase (not exceeding 10 words): +# ProjectLibre, open source project management software. +# Attribution URL: http://www.projectlibre.com +# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +# alternatives listed on http://www.projectlibre.com/logo +# +# Display of Attribution Information is required in Larger Works which are defined +# in the CPAL as a work which combines Covered Code or portions thereof with code +# not governed by the terms of the CPAL. However, in addition to the other notice +# obligations, all copies of the Covered Code in Executable and Source Code form +# distributed must, as a form of attribution of the original author, include on +# each user interface screen the "ProjectLibre" logo visible to all users. +# The ProjectLibre logo should be located horizontally aligned with the menu bar +# and left justified on the top left of the screen adjacent to the File menu. The +# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" +# logo it must direct them back to http://www.projectlibre.com. +############################################################################### + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + + +AboutDialog.About=About +AboutDialog.copyright=Copyright 2012-2020 ProjectLibre Inc. Tutti i diritti riservati. +AccessControlPolicy.PUBLIC=Tutte le risorse (eccetto clienti/partner) +AccessControlPolicy.RESTRICTED=Based on Project Role in resources view +AccrualType.End=Fine +AccrualType.Prorated=Prorated +AccrualType.Start=Inizia +AssignmentDialog.ShowingAllResources=Mostra tutte le risorse +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=Mostra solo le risorse del team di progetto +AssignmentDialog.none=(vuoto) +Bar.assignment=assignment +Bar.baseline10=baseline10 +Bar.baseline1=baseline1 +Bar.baseline2=baseline2 +Bar.baseline3=baseline3 +Bar.baseline4=baseline4 +Bar.baseline5=baseline5 +Bar.baseline6=baseline6 +Bar.baseline7=baseline7 +Bar.baseline8=baseline8 +Bar.baseline9=baseline9 +Bar.baseline=baseline +Bar.critical=critica +Bar.deadline=scadenza +Bar.external=esterna +Bar.milestone=milestone +Bar.subproject=sottoprogetto +Bar.summary=sommario +Bar.task=task +Bar.timesheet=Scheda dei task +Bar.totalSlack=Slittamento complessivo +BarPanel.Shape=Forma: +BaselineDialog.Baseline=Baseline: +BaselineDialog.For=Per: +BookingType.Committed=Impegnato +BookingType.Proposed=Proposto +ButtonText.Cancel=Cancella +ButtonText.Close=Chiudi +ButtonText.IAccept=Accetto +ButtonText.OK=OK +ButtonText.Open=Apri +ButtonText.OpenCopy=Apri in sola lettura +Calendar.24Hours=24 Ore +Calendar.EditedWorkingHours=Modifiche orario di lavoro +CalendarDialogBox.Wednesday=Mercoled +CalendarDialogBox.September=Settembre +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ Manuale +Calendar.EditsToADayOfTheWeek=Modifiche ad un giorno settimanale +CalendarDialogBox.HoursPerday=Ore al giorno : +CalculationDialogBox.Prorated=Ripartito +Calendar.EditsToAnIndividualDay=Modifiche ad un singolo giorno +CalendarDialogBox.DurationSettings=Impostazioni sulla durata +CalendarDialogBox.SetAsDefault=Imposta come predefinito +CalendarDialogBox.HoursPerWeek=Ore a settimana : +CalendarDialogBox.DaysPerMonth=Giorni al mese : +Calendar.ExceptionCircular=Non possibile utilizzare questo calendario come calendario di base in quanto dipende da lui stesso. +CalendarDialogBox.Monday=Luned +CalendarDialogBox.Tuesday=Marted +CalendarDialogBox.Thursday=Gioved +CalendarDialogBox.Friday=Venerd +CalendarDialogBox.Saturday=Sabato +CalendarDialogBox.Sunday=Domenica +CalendarDialogBox.January=Gennaio +CalendarDialogBox.February=Febbraio +CalendarDialogBox.March=Marzo +CalendarDialogBox.April=Aprile +CalendarDialogBox.August=Agosto +CalendarDialogBox.October=Ottobre +CalendarDialogBox.November=Novembre +CalendarDialogBox.December=Dicembre +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=Inizia +Calendar.NightShift=Turno di notte +Calendar.Nonworking=Non lavorativo +Calendar.Standard=Standard +Calendar.Unmodified=Non modificato +CalendarDialogBox.May=Maggio +CalendarDialogBox.June=Giugno +CalendarDialogBox.July=Luglio +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=Utilizza l'anno di partenza per la numerazione FV +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=Queste impostazioni vengono applicate esclusivamentealle durate +CalculationDialogBox.AndMoveStartOfRemaining=And move start of remaining work back to status date +CalculationDialogBox.AndMoveEndOfCompleted=And move end of completed work forward to status date +CalculationDialogBox.MoveEndOfCompleteParts=Move end of complete work that is after status date back to status date +Calendar.Working=Lavorativo +Category.assignmentEntrySpreadsheet=Tabella dei lavori in entrata +Category.assignmentSpreadsheet=Tabella dei lavori +Category.availabilitySpreadsheet=Tabella delle disponibilit +Category.costRates=Tariffe di costo +Category.dependencySpreadsheet=Tabella delle dipendenze +CalculationDialogBox.Automatic=\ Automatico +CalculationDialogBox.Calculate=Calcola: +Category.distributionSpreadsheet=Tabella degli utilizzi +CalculationDialogBox.Calculation=Calcolo +CalculationDialogBox.EarnedValue=Earned value +Category.projectSpreadsheet=Tabella di progetto +Category.resourceAssignmentSpreadsheet=Tabella delle risorse assegnate +Category.resourceSpreadsheet=Tabella delle risorse +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=Tabelle delle risorse +Category.taskAssignmentSpreadsheet=Tabella dei task assegnati +Category.taskSpreadsheet=Tabella dei task +Category.taskSpreadsheet;projectSpreadsheet=Tabella dei task e di progetto +CalculationDialogBox.End=Fine +Category.timesheetSpreadsheet=Tabella dei tempi +ChangeWorkingTimeDialogBox.BasedOn=Base +ChangeWorkingTimeDialogBox.ChangeWorkingTime=Cambia il calendario di lavoro +ChangeWorkingTimeDialogBox.For=Per: +ChangeWorkingTimeDialogBox.From=Da: +ChangeWorkingTimeDialogBox.ModificationMessage=Le modifiche di questo calendario influiranno su tutti i progetti che lo utilizzano. +ChangeWorkingTimeDialogBox.New=Nuovo... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Non-default working time +ChangeWorkingTimeDialogBox.NonWorkingTime=Non-working time +ChangeWorkingTimeDialogBox.NotEdiableMessage=This calendar is only editable when editing the Master Project (Resource Pool). +ChangeWorkingTimeDialogBox.Options=Opzioni... +ChangeWorkingTimeDialogBox.To=\ Per\: +ChangeWorkingTimeDialogBox.UseDefault=Utilizza come predefinito +ChartLegend.ResourceFilter=Fltra risorse per: +ClientRole.Inactive=- +ClientRole.ProjectManager=Project Manager +ClientRole.TeamMember=Membro del team +ClientRole.TeamResource=Team Resource +ColumnDialog.InsertColumn=Inserisci nuova colonna +Command.UpateProject=Aggiorna progetto +Command.UpdateTasks=Aggiorna le attivit +ConstraintType.ALAP=Pi tardi possibile +ConstraintType.ASAP=Prima possibile +ConstraintType.FNET=Non terminare prima di +ConstraintType.FNLT=Non terminare dopo il +ConstraintType.HAMM=Hammock +ConstraintType.MFO=Deve terminare il +ConstraintType.MSO=Deve iniziare il +ConstraintType.SNET=Non iniziare prima di +ConstraintType.SNLT=Non iniziare dopo il +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=Tasso A +CostRateIndex.B=Tasso B +CostRateIndex.C=Tasso C +CostRateIndex.D=Tasso D +CostRateIndex.E=Tasso E +Date.NoEnd=Poi +# NA = Non applicabile +Date.NoStart=NA +Date.Quarter1=Q1 +Date.Half1=H +Date.Quarter2=Q2 +Date.Half2=Half +DefaultFrameManager.Project=Progetto +DelegateTaskDialog.DelegateTask=Delega l'attivit +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=Finish To Finish +DependencyType.longFS=Finish To Start +DependencyType.longSF=Start To Finish +DependencyType.longSS=Start To Start +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% Completato +EarnedValueMethodType.PhysicalPercentComplete=% Fisicamente completato +ExpenseType.CAPITALIZE=Capitalizza +ExpenseType.DIRECT=Diretto +ExpenseType.EXPENSE=Costo +ExpenseType.INDIRECT=Indiretto +ExpenseType.NONE=Nessuno +ExpenseType.OVERHEAD=Overhead +Field.accessControlPolicy=Team di progetto +Field.accrueAt=Maturano al +Field.actualCost=Costo attuale +Field.actualDuration=Durata attuale +Field.actualFinish=Termine attuale +Field.actualFixedCost=Costi fissi attuali +Field.actualOvertimeCost=Costi attuali straordinari +Field.actualOvertimeWork=Lavori attuali straordinari +Field.actualOvertimeWorkProtected=Lavoro straordinario effettivo protetto +Field.actualStart=Inizio attuale +Field.actualWork=Lavoro attuale +Field.actualWorkProtected=Lavoro attuale protetto +Field.acwp=ACWP +Field.assignedRate=Tasso di assegnazione +Field.assignment=Assegnazione +Field.assignmentEntryAssigned=Assegnato +Field.assignmentEntryName=Nome +Field.assignmentEntryRate=Unit +Field.assignmentProjectName=Progetto +Field.assignmentResourceId=ID Risorsa +Field.assignmentResourceName=Risorsa +Field.assignmentTaskId=ID Attivit +Field.assignmentTaskName=Attivit +Field.assignmentUnits=Assignment Units +Field.availableFrom=Disponibile dal +Field.availableTo=Disponibile a +Field.bac=BAC +Field.baseCalendar=Calendario di base +#the # will be replaced by a number or by nothing +Field.baseline#Cost=Baseline# dei costi +Field.baseline#Duration=Baseline# delle durate +Field.baseline#Finish=Baseline# delle scadenze +Field.baseline#Start=Baseline# degli avvii +Field.baseline#Work=Baseline# del lavoro +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=Benefit +Field.bookingType=Tipo di prenotazione +Field.budgetStatusIndicator=Status del budget +Field.cachedEnd=Fine +Field.cachedStart=Avvio +Field.canLevel=Can Level +Field.code=Codice +Field.complete=Completa +Field.completeThrough=Completa attraverso +Field.completedThrough=Completato attraverso +Field.confirmed=Confermato +Field.constraintDate=Vincolo di data +Field.constraintType=Tipologia di vincolo +Field.contact=Contatto +Field.cost=Costo +Field.costPerUse=Costo per utilizzo +Field.costRateTable=Tabella dei tassi di costo +Field.costVariance=Varianza dei costi +Field.cpi=CPI +Field.created=Creato +Field.creationDate=Data di creazione +Field.critical=Critica +Field.csi=CSI +Field.cumulativeCost=Costo Cumulato +Field.cumulativePercentComplete=Percentuale di completamento cumulata +FieldDialog.ResourceInformation=Informazioni risorsa +Field.cumulativeWork=Lavoro cumulato +Field.currentDate=Data corrente +Field.customCost#=Costo# +Field.customDate#=Data# +Field.customDuration#=Durata# +Field.customFinish#=Termine# +Field.customFlag#=Flag# +Field.customNumber#=Numero# +Field.customOutlineCode#=Schema codice# +Field.customStart#=Inizio# +Field.customText#=Testo# +Field.cv=CV +Field.cvPercent=CV Percentuale +Field.deadline=Scadenza +Field.debugDependencyOrder=Ordine di dipendenza +Field.delay=Ritardo nell'assegnazione +Field.delegatedTo=Delegato a +Field.dependencyDate=Data di dipendenza +Field.dependencyStart=Inizio di dipendenza +Field.dependencyType=Tipo +Field.dirty=Sporco +Field.duration=Durata +Field.durationVariance=Varianza della durata +Field.eac=EAC +Field.earliestStartingTask=Avvio al pi presto dell'attivit +Field.earlyFinish=Termine al pi presto +Field.earlyStart=Avvio al pi presto +Field.earnedValueMethod=Metodo dell'Earned Value +Field.effectiveDate=Data effettiva +Field.effortDriven=Impegno guidato +Field.elapsedDuration=Durata trascorsa +Field.emailAddress=Indirizzo E-mail +Field.estimated=Previsto +Field.expectedDuration=Durata prevista +Field.expectedFinish=Termine previsto +Field.expectedStart=Avvio previsto +Field.expenseType=Tipologia di spesa +Field.externalId=ID esterno +Field.externalTask=Attivit esterna +Field.finish=Termine +Field.finishDate=Termine +Field.finishOffset=Differenza finale +Field.finishSlack=Ritardo finale +Field.finishVariance=Varianza finale +Field.fixedCost=Costo fisso +Field.fixedCostAccrual=Costo fisso per competenza +Field.forward=Anticipo programmato +Field.freeSlack=Free Slack +Field.ganttSnapshot=Gantt +Field.generic=Generico +Field.group=Gruppo +Field.groupBySummary=Group By Summary +Field.hideBar=Nascondi la barra +Field.hyperlink=Collegamento +Field.hyperlinkAddress=Indirizzo collegamento +Field.hyperlinkHref=Indirizzo Href +Field.hyperlinkSubAddress=Indirizzo +# ID = Identifier +Field.id=ID +Field.ignoreResourceCalendar=Ignora calendario risorse +Field.inactive=Inattivo +Field.indicators=Indicatori +Field.initials=Initiali +Field.justModified=Appena modificato +Field.lag=Ritardo +Field.lastModificationDate=Ultima modifica +Field.lastTimesheetUpdate=Ultimo aggiornamento tabella +Field.lateFinish=Ritardo sul termine +Field.lateStart=Ritardo all'avvio +Field.latestFinishingTask=Latest Finishing Task +Field.levelAssignments=Level Assignments +Field.levelingCanSplit=LevelingCanSplit +Field.levelingDelay=Leveling Delay +Field.linkedFields=Campi collegati +Field.manager=Manager +Field.markTaskAsMilestone=Visualizza attivit come milestone +Field.marked=Contrassegnato +Field.materialLabel=Etichetta materiale +Field.maximumUnits=Unit massime +Field.milestone=Milestone +Field.name=Nome +Field.negativeSlack=Slittamento negativo +Field.netPresentValue=Valore attuale netto +Field.networkSnapshot=Network +Field.notes=Note +Field.objects=Ogetto +Field.optimisticDuration=Durata ottimista +Field.optimisticFinish=Termine ottimistico +Field.optimisticStart=Avvio ottimistico +Field.outlineLevel=Livello struttura +Field.outlineNumber=Numero struttura +Field.overallocated=Sovrallocata +Field.overallocation=Sovrallocazione +Field.overtimeCost=Costi straordinari +Field.overtimeRate=Tasso straordinari +Field.overtimeWork=Lavoro straordinario +Field.parentId#=ID Genitore# +Field.partner=partner +Field.peak=Picco +Field.peakUnits=Unit picco +Field.pendingTimesheetUpdate=La tabella necessita di un aggiornamento +Field.percentAllocation=Percentuale di allocazione +Field.percentComplete=Precentuale di completamento +Field.percentWorkComplete=Percentuale di completamento del lavoro +Field.pessimisticDuration=Durata pessimistica +Field.pessimisticFinish=Termine pessimistico +Field.pessimisticStart=Avvio pessimistico +Field.phonetics=Fonetica +Field.physicalPercentComplete=Percentuale fisica completata +Field.predecessorId=ID Predecessore +Field.predecessorName=Predecessore +Field.predecessors=Predecessori +Field.preleveledFinish=Preleveled Finish +Field.preleveledStart=Preleveled Start +Field.priority=Priorit +Field.project=Progetto +Field.projectDivision=Ripartizione +Field.projectGroup=Gruppo +Field.projectId=ID Progetto +Field.projectStatus=Stato del progetto +Field.projectType=Tipologia di progetto +Field.rate=Unit +Field.rbsCode=RBS +Field.readOnlyDuration=Durata +Field.recurring=Periodico +Field.referringSubprojectTaskDependencyDate=Data di dipendenza sottoprogetto +Field.regularWork=Lavoro regolare +Field.remainingAvailability=Disponibilit rimanente +Field.remainingCost=Costi rimanenti +Field.remainingDuration=Durata rimanente +Field.remainingOvertimeCost=Costi straordinari rimanenti +Field.remainingOvertimeWork=Lavoro straordinario rimanente +FieldDialog.TaskInformation=Informazioni attivit +Field.remainingWork=Lavoro rimanente +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=Disponibilit risorsa +Field.resourceGroup=Gruppo risorsa +Field.resourceId=ID Risorsa +Field.resourceInitials=Iniziali risorsa +Field.resourceNames=Nome risorsa +Field.resourcePhonetics=Fonetica risorsa +Field.resourcePool=Pool di risorsa +Field.resourceType=Tipo +Field.responsePending=Attesa risposta +Field.resume=Indietro +Field.risk=Rischio +Field.rollup=Rollup +Field.scheduleStatusIndicator=Schedule Status +Field.schedulingMethod=Metodo di Scheduling +Field.showProjectResourcesOnly=Mostra solo le risorse del progetto +Field.spi=SPI +Field.standardRate=Tasso standard +Field.start=Avvio +Field.startDate=Avvio +Field.startOffset=Start Offset +Field.startSlack=Start Slack +Field.startVariance=Start Variance +Field.status=Status +Field.statusDate=Status Data +Field.statusIndicator=Overall Status +Field.statusTaskIndicator=StatusTask Indicator +Field.stop=Termina +Field.subprojectFile=File sottoprogetto +Field.subprojectOf=Sottoprogetto di +Field.subprojectReadOnly=Sottoprogetto in sola lettura +Field.successorId=Id Successore +Field.successorName=Successore +Field.successors=Successori +Field.summary=Sommario +Field.summaryProgress=Progresso sommario +Field.suprojectReadOnly=Sottoprogetto in sola lettura +Field.sv=SV +Field.svPercent=Percentuale SV +Field.taskCalendar=Calendario attivit +Field.taskId=ID Attivit +Field.taskName=Nome attivit +Field.taskOutlineNumber=Task Outline Number +Field.taskSummaryName=Nome sommario attivit +Field.taskType=Tipo +Field.tcpi=TCPI +Field.teamStatusPending=TeamStatus Pending +Field.textAbove=Testo precedente +Field.timesheetFinish=Timesheet Finish +Field.timesheetStart=Timesheet Start +FieldDialog.document=documento: +Field.timesheetStatus=Timesheet Status +Field.timesheetStatusName=Stato +Field.totalSlack=Slittamento totale +Field.totalSlackEnd=Slittamento totale al termine +Field.totalSlackStart=Slittamento totale all'avvio +Field.uniqueId=ID Unico +Field.uniqueIdPredecessors=ID Unico predecessori +Field.uniqueIdSuccessors=ID Unico successori +Field.unitAvailability=Disponibilit unit +Field.updateNeeded=Aggiornamento necessario +Field.userAccount=Account utente +Field.userRole=Ruolo nel progetto +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=E' parente WBS +Field.wbsParentName=Parente WBS +Field.wbsPredecessors=Predecessori WBS +Field.wbsSuccessors=Successori WBS +Field.work=Lavoro +Field.workAvailability=Disponibilit lavoro +Field.workContour=Profilo del lavoro +Field.workVariance=Varianza lavoro +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Progetti +File.ProjectLibre=ProjectLibre +Filter.CompletedTasks=Attivit completate +Filter.CostOverbudgetTasks=Costo attivit extra-budget +Filter.CriticalTasks=Attivit critiche +Filter.DateRange=Intervallo date +Filter.Flag1=Flag 1 +Filter.Flag2=Flag 2 +Filter.Flag3=Flag 3 +Filter.InProgressAssignments=Assegnazioni in avanzamento +Filter.InProgressTasks=Attivit in avanzamento +Filter.IncompleteTasks=Attivit incomplete +Filter.LateOrOverbudgetTasks=Attivit in ritardo/fuori budget +Filter.Milestones=Milestones +Filter.MyDelegatedTasks=Le mie attivit delegate +Filter.MyTasks=i attivits +Filter.None=No filtri +Filter.NormalTasks=Attivit normali +Filter.ResourcesMaterial=Risorse materiali +Filter.ResourcesMe=Io +Filter.ResourcesWork=Risorse del lavoro +Filter.SlippedTasks=Attivit slittate +Filter.SummaryTasks=Sommario attivit +Filter.TasksWithEstimatedDurations=Stima dur. attivit... +Filter.UnstartedAssignments=Assegnazioni non avviate +FixedDuration.FixedDuration=Durata fissata +Filter.UnstartedTasks=Attivit non avviate +Filter.WorkComplete=Lavoro completo +FixedWork.FixedWork=Lavoro fissato +FixedUnits.FixedUnits=Unit fissate +FixedDuration.TheDurationMessage=Questo task a durata-fissata deve cambiare la propria durata per questo compito +FooterRenderer.page=\ - pagina +Gantt.Popup.annotationStylesMenu=Stili annotazione +Gantt.Popup.barStylesMenu=Stili barra +Gantt.Popup.showAssignments=Mostra compiti +Gantt.Popup.showCalendar=Mostra calendario +Gantt.Popup.showRows=Mostra righe +Gantt.Popup.splitMode=Dividi +Gantt.tooltip.Assignment=Assegnazione +Gantt.tooltip.Resource=Risorsa +Gantt.tooltip.Task=Attivit +Gantt.tooltip.from=Da +Gantt.tooltip.lag=Ritardo +Gantt.tooltip.link=Collegamento +Gantt.tooltip.to=Per +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Il progetto selezionato gi aperto come sottoprogetto di un altro progetto consolidato. +GraphicManager.SelectedProjectAlreadySubproject=Il progetto selezionato gi aperto come sottoprogetto di questo progetto consolidato. +Grouper.AssignmentProjectName=Nome progetto +Grouper.CompleteIncomplete=Completo/incompleto +Grouper.Critical=Critica +Grouper.CriticalThenDuration=Critico per durata +Grouper.Delegated=Delegato a +Grouper.Duration=Durata +Grouper.None=No gruppo +Grouper.ResourceGroup=Gruppo +Grouper.ResourceType=Tipo +HelpDialog.About=Aiuto +HelpDialog.GoToOnlineHelp=Vai all'aiuto online +HelpDialog.ShowLicense=Mostra licenza +HelpDialog.ShowTipsOfTheDay=Mostra i consigli del giorno +HelpDialog.WatchHowToVideos=Mostra i video "How-To" +HyperLinkToolTip.SeeOnlineDemo=">Guarda la Demo online +HyperLinkToolTip.SeeOnlineHelp=">Guarda l'Aiuto online +InformationDialog.AssignResources=Assegna risorse +InformationDialog.ChangeWorkingTime=Cambia l'orario lavorativo +License.Inactive=Inattivo +License.LiteUser=Lite User +License.PowerUser=Utente esperto +LicenseDialog.CouldNotLoadLater=Non stato possibile caricare la licenza. Per favore riprovare pi tardi. +LicenseDialog.CouldNotLoadExiting=Non possibile caricare la licenza. Per favore riprovare pi tardi. Il programma sar terminato. +LicenseDialog.Email=Per favore registra la tua compia di ProjectLibre per rimanere informato sulle novit e sugli aggiornamenti del prodotto. +LicenseDialog.EmailLabel=Indirizzo E-mail +LicenseDialog.License=Licenza +LicenseDialog.ThirdParty=Parte terza +LicenseOption.Administrator=Amministratore +LicenseOption.External=Partner/Cliente +LicenseOption.Inactive=- +LocalFileImporter.Exporting=Esportando... +LocalFileImporter.Importing=Importanto... +LoginDialog.Login=Login: +LoginDialog.Password=Password: +LoginDialog.RememberMe=Ricordami su questo computer +LoginDialog.UseOfficeLook=Utilizza Office Look and Feel +LookupDialog.EnterPartOfTheName=Inserisci una parte del nome che stai cercando +LookupDialog.Find=Trova +LookupDialog.LookupAnObject=Ricerca diretta dell'oggetto +LookupDialog.NoMatchesFound=Nessuna corrisponenza trovata +LookupDialog.Results=Risultati +LookupDialog.Type=Tipo: +LookupDialog.UnableToContactServer=Impossibile contattare il server. +LookupField.LookupAValue=Ricerca diretta del valore +Message.ImportError=Impossibile leggere il file +Message.allowDeleteActuals=L'elemento/i selezionato/i hanno gi questi valori. Sei sicuro di volerli cancellare? +Message.allowDistrbutedStartBeforeProjectStart=Il valore provocher l'avvio dell'attivit prima dell'avvio del progetto. Procedere comunque? +Message.allowDistrbutedStartBeforeTaskStart=Il valore precedente all'avvio dell'attivit. Procedere comunque? +Message.allowTaskStartBeforeProjectStart=Questa attivit si pu avviare prima dell'avvio dell'intero progetto? +Message.alreadyParentChildHierarchy=E' gi presente una relazione di tipo padre/figlio. +Message.badTimeFormat=Formato orario non consentito +Message.badTimeIntervals=Intervallo orario non consentito +Message.cannotEnterUnits=Non possibile inserire unit in questo campo +Message.cannotLinkToSummary=You cannot link a summary task and one of its subtasks.\nIf you want to link them, remove the hierarchy by outdenting the subtask so it is no longer under the summary task. +Message.cannotLinkTwice=Questo collegamento gi presente. +Message.cantEmptySpreadsheet=Questa tabella deve contenere almeno un campo. +Message.cantLinkToClosedSubproject=A subproject must be open and writable in order to be the target of a link as it affects the subproject's start date. +Message.cantLinkToExternal=Non possibile creare collegamenti con attivit esterne. +Message.cantLinkToSelf=Non possibile collegare un'attivit a se stessa. +Message.circularDependency=This link is invalid as it would a create a circular dependency relationship with other tasks. +Message.confirmDeleteRows=Si sicuri di voler cancellare queste righe? +# {0} is the name of the predecessor task, {1} is the name of the successor task +Message.crossProjectCircularDependency.mf=A cross project link from {0} to {1} would cause a circular dependency relationship with other tasks. It is disabled and marked in dotted lines. +Message.errorCalendarMustHaveWorkingDay=Il calendario deve contenere almeno un giorno lavorativo. +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=Il valore non pu essere superiore a {1,number,percent}. +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=Il valore deve essere superiore a {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=Il valore deve essere compreso tra {0,number} e {1,number}. +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=Il valore non pu essere superiore a {1,number}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=Il valore deve essere superiore a {0,number}. +Message.importCircularLink=Il progetto non pu essere importato perch contiene una relazione circolare con il predecessore. +Message.invalidAssignments=Si devono inserire risorse gi esistenti nel pool di risorse separate dal carattere ";". Se si desidera assegnare meno del 100%, possibile specificare una percentuale tra parentesi: e.g. Clark Kent[50%];Lois Lane +Message.invalidChoice=Scelta non valida +Message.invalidCost=Costo non valido\nQuesto costo non valido. Il costo deve essere espresso in numeri. Il simbolo corrente opzionale.\nIl simbolo corrente predefinito nel tuo sistema. +Message.invalidDate=Data non valida\nQuesta data non valida o al di fuori dei valori ammissibili. La data deve essere compresa tra il 01 Gennaio 1970 e il 31 Dicembre 2049.\nIl formato data quello predefinito del sistema. Esempio\: 3/12/06 o 3 Mar 2006. +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf={0} non valido.\nPer favore usa un ID dell'attivit valido.\n\u00B7 L'informazione di {0} espressa come\: {0} numero ID, dipendenza, e anticipo/ritardo.\n\u00B7 E' anche possibile utilizzare il riquadro Infromazioni delle attivit. +Message.invalidDuration=Durata non valida\nQuesto valore della durata non valido.\nPer favore trova un valore come 24 ore (24h), 3 giorni (3d), o 9ed per giorni mancanti. +Message.invalidInput=Il valore non valido. +Message.invalidIntersection=Resulting working time is invalid\n\nThere is a task which, intersected with its resource calendar, does not have enough working time for any work to be performed.\nThe task will ignore the resource calendar. \nTo remedy this, you can change the task or resource calendar, or choose the "Ignore Resource Calendar" option for the task. +Message.invalidRate=This is not a valid rate.\nFor Work (non-material) resources, type the rate amount followed by a slash (/), and then the abbreviation for the time period. For example, "100/h".\nFor material resources, type the rate amount without a slash and time period\nFor example, "10". If your Material label is "barrel", this would mean "$10/barrel". +Message.invaliidUnits=This is not a valid Units value\n\nFor Work (non-material) resources , type a number.\n\nMaterial resource assignments can be either fixed or variable. For a fixed material resource assignment, type the units value alone. For example, "10" would mean "10 barrels", if your material label was "barrel".\n\nFor a variable material resource assignment, type the units value, followed by a slash(/), and then the abbreviation for the time period. For example, "10/M" would mean "12 barrels per month". +Message.notAResource=L'elemento selezionato non una risorsa +Message.notATask=L'elemento selezionato non un task +Message.onlyReplaceOneResourceAtATime=E' possibile sostituire solo una risorsa per volta. +Message.onlySelectOneElement=Pu essere selezionato solo un elemento per volta. +Message.parentConstraintType=Parent tasks may only be one of: "As Soon As Possible", "Start No Earlier Than" or "Finish No Later Than". If you are using reverse scheduling, then "As Late As Possible" is an option instead of "As Soon as Possible". +Message.parentSuccessorCannotHaveFinishLink=Predecessors of a parent task may only be of types Finish-Start or Start-Start +Message.projectAlreadyExists=Esiste gi questo progetto. Eliminare la versione corrente? +Message.projectMustHaveName=Il progeto deve avere un nome. +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=Progetto " +Message.renameProject2=" gi presente sul server. Per favore si scelga un altro nome. +Message.saveProjectAs1=Salva progetto " +Message.saveProjectAs2=" come +Message.saveProjectBeforeClosing1=Vuoi salvare le modifiche di " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=I sottoprogetti saranno convertiti in attivit normali. Questa attivit non potr essere annullata. Continuare comunque? +Message.synchronizeResources=Si desidera sincronizzare le risorse con il server? +Message.tooManyResourcesSelectedToList.mf={0,number} Risorse selezionate (troppe per essere mostrate) +Message.tooManyTasksSelectedToList.mf={0,number} Attivit selezionate (troppe per essere mostrate) +MicrosoftImporter.ErrorImportingXML=Non possibile importare il file XML. Solo i file XML creati con MS Project o Planner possono essere importati. +MicrosoftImporter.ImportWithSubprojects=Il progetto contiene sottoprogetti. E' necessario importali manualmente. Le attivit corrispondenti sono: +MicrosoftImporter.Importing=Importando... +MicrosoftImporter.PrepareResources=Preparare le risorse +Network.Popup.barStylesMenu=Stili della barra +NewBaseCalendarDialog.CreateACopyOfCalendar=Esegui una copia del calendario +NewBaseCalendarDialog.CreateANewBaseCalendar=Crea un nuovo calendario di base +NewBaseCalendarDialog.Name=Nome +NewBaseCalendarDialog.NewBaseCalendar=\ Nuovo calendario di base +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=Blocato da +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=Benvenuti in ProjectLibre +OpenProjectDialog.CreationDate=Data di creazione +OpenProjectDialog.ModificationDate=Data di modifica +OpenProjectDialog.Name=Nome +Open_Title.ProjectLibreError=Errore ProjectLibre +Open_Title.ProjectLibreWarning=Allert ProjectLibre +PageSetupDialog.Margins=Margini +PageSetupDialog.Margins.Left=Sinistra (mm) +PageSetupDialog.Margins.Right=Destra (mm) +PageSetupDialog.Margins.Top=In alto (mm) +PageSetupDialog.Margins.Bottom=In basso (mm) +PageSetupDialog.Orientation=Orientazione +PageSetupDialog.Orientation.Landscape=Orizzontale +PageSetupDialog.Orientation.Portrait=Verticale +PageSetupDialog.Orientation.ReverseLandscape=Orizzontale invertito +PageSetupDialog.Page=Pagina +PageSetupDialog.Paper=Foglio +PageSetupDialog.PaperFormat.Custom=Aspetto +PageSetupDialog.PaperSize=Dimensioni del foglio +PageSetupDialog.PaperSizeSettings.Custom=Impostazioni aspetto +PageSetupDialog.PaperSizeSettings.Custom.Width=Larghezza (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=Altezza (mm): +PageSetupDialog.PaperSizeSettings.Printer=Utilizza impostazioni di stampa +PageSetupDialog.PaperSizeSettings.SinglePage=Pagina unica grande +PageSetupDialog.PaperSizeSettings.SinglePage2=(Solo PDF) +PageSetupDialog.Printers=Stampanti +PageSetupDialog.PrinterPageSetup=Impostazioni stampante +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=Disponibile solo in +PageSetupDialog.PODOnly2=Projects On Demand +PageSetupDialog.Refresh=Aggiorna +PageSetupDialog.SaveSettings=Utilizza come predefinito +PageSetupDialog.SaveSettings.ToolTip=Salva impostazioni di stampa come predefinite. +PageSetupDialog.SaveWebPDFSettings=Utilizza web come predefinito +PageSetupDialog.SaveWebPDFSettings.ToolTip=Salva impostazioni predefinite per immagini del web in PDF. +PageSetupDialog.Settings.Label=Impostazioni +PageSetupDialog.Settings.Local=Locale +PageSetupDialog.Settings.WebPDF=Web PDF +PageSetupDialog.Scaling=Scala +PageSetupDialog.Scaling.FitTo=Adatta a: +PageSetupDialog.Scaling.FitToHeight=altezza pagina +PageSetupDialog.Scaling.FitToWidth=larghezza pagina +PageSetupDialog.Scaling.ScaleTo=Scala in: +PageSetupDialog.Scaling.ScaleToHeight=altezza +PageSetupDialog.Scaling.ScaleToWidth=larghezza +PageSetupDialog.Scaling.ScaleToProportions=Vincola +PageSetupDialog.Scaling.ScaleToProportions2=proporzioni +PageSetupDialog.ShowGantt=Gantt +PageSetupDialog.ShowParts=Diagrammi +PageSetupDialog.ShowSpreadSheet=Tabella +PageSetupDialog.Title=Setup pagina +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=Il servizio selezionato un servizio PDF, per favore si selezioni una stampante. +PersonalContour.personal=Personale +ProjectStatus.ACTIVE=Attiva +PreviewPanel.Preview=Anteprima +PreviewPanelEnd.Preview=Anteprima +ProjectDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Clienti/Partner) +ProjectDialog.Notes=Note: +ProjectInformationDialog.ProjectInformation=Informazioni progetto +ProjectStatus.CANCELLED=Cancellato +ProjectStatus.COMPLETED=Completato +ProjectDialog.NewProject=Nuovo progetto +ProjectDialog.StartDate=Data di avvio: +ProjectDialog.FinishDate=Data di chiusura: +ProjectStatus.ON_HOLD=In attesa +ProjectDialog.Manager=Responsabile: +ProjectStatus.PENDING_APPROVAL=In attesa di approvazione +ProjectStatus.PLANNING=In pianificazione +ProjectType.EVENT_PLANNING=Pianificazione evento +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=Campagna di Marketing +ProjectInformationDialog.Notes=Note +PrintPreviewFrame.PrintPreview=Anteprima di stampa +ProjectType.OTHER=Altro +ProjectType.PRODUCT_DEVELOPMENT=Sviluppo di prodotto +ProjectType.PROFESSIONAL_SERVICES=Servizi professionali +ProjectInformationDialog.Statistics=Statistiche +ProjectDialog.BasedOnProjectRole=Basato sul ruolo di progetto nella scheda Risorse +ProjectInformationDialog.General=Generale +ProjectType.SALES_CAMPAIGN=Campagna di vendita +ProjectDialog.ProjectName=Nome progetto: +ProjectDialog.ProjectTeam=Team di progetto: +ProjectType.TECHNICAL_SUPPORT=Supporto tecnico +RenameDialog.AnotherItemWithThatNameAlreadyExists=Esiste gi un altro elemento con qesto nome. +RenameDialog.NewName=Nuovo nome +RenameDialog.Rename=Rinomina +RenameDialog.TheNameCannotBeEmpty=Il nome non pu essere vuoto +RenameProjectDialog.NewProject=Nuovo progetto +RenameProjectDialog.NewProjectName=Nuovo progetto con nome: +RenameProjectDialog.RenameProject=Rinomina progetto +ReportView.Columns=Colonne: +ReportView.Report=Report: +RequestDemandType.Demand=Domanda +RenameDialog.CurrentName=Nome attuale +RequestDemandType.None=- +RequestDemandType.Request=Richiesta +ResourceAdditionDialog.ResourceMerging=Unisci risorse +ResourceAdditionDialog.SelectResourcesToAdd=Seleziona risorse da aggiungere +ResourceIndicatorsComponent.Administrator=\ (Amministratore) +ResourceIndicatorsComponent.PartnerCustomer=\ (Partner/Cliente) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=Questa risorsa fa parte del team di progetto
+ResourceIndicatorsComponent.UserLicense=Licenza utente: +ResourceInformationDialog.AssignedToTasks=Assegnato alle attivit: +ResourceInformationDialog.Costs=Costi +ResourceInformationDialog.General=Generale +ResourceInformationDialog.Notes=Note +ResourceInformationDialog.ResourceAvailability=Disponibilit risorsa +ResourceInformationDialog.ResourceInformation=Informazioni risorsa +ResourceInformationDialog.Tasks=Attivit +ResourceMappingDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Cliente/Partner) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=Basato sul ruolo di progetto nella scheda Risorse +ResourceMappingDialog.DontMergeOpenProjectReadOnly=Non unire, apri progetto in sola-lettura +ResourceMappingDialog.ImportedResources=Risorse importate +ResourceMappingDialog.MergeResourcesUsingField=Unisci le risorse utilizzando i campi +ResourceMappingDialog.ProjectTeam=Team di progetto: +ResourceMappingDialog.ResourceMerging=Unisci risorse +ResourceMappingDialog.ServerResources=Risorse (server) +ResourceType.Location=Luogo +ResourceType.Machine=Macchina +ResourceType.Material=Materiale +ResourceType.Other=Altro +ResourceType.Work=Lavoro +ResourceView.ThisResourceCurrentlyHasAssignments=. Questa risorsa ha gi dei compiti. +ResourceView.ToMoveAProtectedResource=Per modificare la gerarchia di una risorsa non modificabile possibile creare un collegamento nella vista RBS. +ResourceView.UsersCanOnlyBeRemoved=. Gli utenti possono essere rimossi o resi inattivi solo dalla pagina web di gestione degli utenti. +ResourceView.YouCannotDeleteTheResource=Non possibile eliminare la risorsa: +Role.Inactive=Inattivo +Role.ProjectManager=Project Manager +Role.TeamMember=Membro del team +SchedulingType.FixedDuration=Dura fissa +ScheduleDialogBox.Percentage=Percentuale +ScheduleDialogBox.FixedDuration=Durata fissa +ScheduleDialogBox.FixedUnits=Unit fissa +ScheduleDialogBox.FixedWork=Lavoro fisso +ScheduleDialogBox.SetAsDefault=Usa come predefinito +ScheduleDialogBox.WorkIsEnteredIn=\ Il lavoro stato inserito in +ScheduleDialogBox.DefaultTaskType=\ Tipologia di attivit predefinita +SchedulingType.FixedUnits=Unit fissa +ScheduleDialogBox.Schedule=Ordine +ScheduleDialogBox.Decimal=Decimale +ScheduleDialogBox.Minutes=Minuti +ScheduleDialogBox.NewTask=\ Nuova attivit +SchedulingType.FixedWork=Lavoro fisso +ScheduleDialogBox.Hours=Ore +ScheduleDialogBox.Days=Giorni +ScheduleDialogBox.Weeks=Settimane +ScheduleDialogBox.Months=Mesi +Sorter.AssignmentProjectName=Nome progetto +Sorter.CompleteIncomplete=Completo/incompleto +Sorter.Cost=Costo +Sorter.CostOverbudget=Costo extra +Sorter.CostPerUse=Costo per utilizzo +Sorter.Critical=Criticit +Sorter.Delegated=Delegato a +Sorter.Duration=Durata +Sorter.DurationThenCost=Durata poi costi +Sorter.FinishDate=Data di chiusura +Sorter.Name=Nome +Sorter.None=Nessun ordinamento +Sorter.OvertimeRate=Overtime rate +Sorter.ResourceGroup=Gruppo +Sorter.ResourceType=Tipo +Sorter.StandardRate=Tasso standard +Sorter.StartDate=Data di avvio +Spreadsheet.Action.collapse=Collassa +Spreadsheet.Action.copy=Copia +Spreadsheet.Action.cut=Taglia +Spreadsheet.Action.delete=Cancella +Spreadsheet.Action.expand=Espandi +Spreadsheet.Action.indent=Aumenta rientro +Spreadsheet.Action.new=Nuovo +Spreadsheet.Action.outdent=Diminuisci rientro +Spreadsheet.Action.paste=Incolla +Spreadsheet.Assignment.resourceUsage=Utilizzo risorsa +Spreadsheet.Assignment.taskUsage=Task Usage +Spreadsheet.AssignmentEntry.assignResources=Assegna risorse +Spreadsheet.AssignmentEntry.replaceResources=Rimpiazza risorse +Spreadsheet.Dependency.predecessors=Predecessori +Spreadsheet.Dependency.successors=Successori +Spreadsheet.Project.default=Default +Spreadsheet.Project.portfolio=Portfolio +Spreadsheet.Project.properties=Propriet +Spreadsheet.Resource.earnedValue=Earned Value +Spreadsheet.Resource.earnedValueCostIndicators=Earned Value - Costi +Spreadsheet.Resource.earnedValueScheduleIndicators=Earned Value - Tempi +Spreadsheet.Resource.entryWorkResources=Default +Spreadsheet.ResourceAssignment.reportAssignmentResource=Nome e ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=Report di base +Spreadsheet.ResourceAssignment.resources=Risorse assegnate +Spreadsheet.ResourceAssignment.tasks=Attivit assegnate +Spreadsheet.ResourceTimesheet.status=Stato tabella dei tempi +Spreadsheet.ResourceUsage.default=Utilizzo risorsa (distribuzione) +Spreadsheet.nameOnly=Nome +Spreadsheet.Task.baseline=Baseline +Spreadsheet.Task.constraintDates=Date di scadenza +Spreadsheet.Task.cost=Costo +Spreadsheet.Task.delay=Ritardo +Spreadsheet.Task.earnedValue=Earned Value +Spreadsheet.Task.earnedValueCostIndicators=Earned Value - Costi +Spreadsheet.Task.earnedValueScheduleIndicators=Earned Value - Tempi +Spreadsheet.Task.entry=Default +SpreadSheetColumnMenu.InsertColumn=Inserisci colonna... +Spreadsheet.Task.schedule=Schedule (CPM) +Spreadsheet.Task.summary=Sommario +Spreadsheet.Task.tracking=Tracking +Spreadsheet.Task.usage=Lavoro +Spreadsheet.Task.variance=Varianza sui tempi +Spreadsheet.TaskAssignment.reportAssignmentResource=Nome e ID +Spreadsheet.TaskAssignment.reportAssignmentTask=Report di base +Spreadsheet.TaskAssignment.resources=Risorse assegnate +Spreadsheet.TaskAssignment.tasks=Attivit assegnate +Spreadsheet.TaskTimesheet.status=Stato tabella dei tempi +Spreadsheet.TaskUsage.default=Utilizzo risorsa (distribuzione) +Spreadsheet.Timesheet.Default=Tabella +Spreadsheet.Timesheet.completion=Completion +SpreadSheetColumnMenu.HideColumn=Nascondi colonna +Spreadsheet.availability=Disponibilit +Spreadsheet.costRates=Tassi di costo +Spreadsheet.empty= +StandardContour.backLoaded=Back Loaded +StandardContour.bell=Bell +StandardContour.doublePeak=Double Peak +StandardContour.earlyPeak=Early Peak +StandardContour.flat=Piatto +StandardContour.frontLoaded=Front Loaded +StandardContour.latePeak=Late Peak +StandardContour.plateau=Plateau +Styles.Annotation.milestone=Milestone +Styles.Annotation.normal=Attivit normale +Styles.Bar.Row.assignment=Assegnazioni +Styles.Bar.Row.baseline10=Baseline 10 +Styles.Bar.Row.baseline1=Baseline 1 +Styles.Bar.Row.baseline2=Baseline 2 +Styles.Bar.Row.baseline3=Baseline 3 +Styles.Bar.Row.baseline4=Baseline 4 +Styles.Bar.Row.baseline5=Baseline 5 +Styles.Bar.Row.baseline6=Baseline 6 +Styles.Bar.Row.baseline7=Baseline 7 +Styles.Bar.Row.baseline8=Baseline 8 +Styles.Bar.Row.baseline9=Baseline 9 +Styles.Bar.Row.baseline=Baseline +Styles.Bar.Row.critical=Attivit critiche +Styles.Bar.Row.deadline=Scadenza +Styles.Bar.Row.external=Attivit esterne +Styles.Bar.Row.milestone=Milestones +Styles.Bar.Row.subproject=Sottoprogetti +Styles.Bar.Row.summary=Sommario attivit +Styles.Bar.Row.task=Attivit non critiche +Styles.Bar.Row.timesheet=tabella dei tempi +Styles.Bar.Row.totalSlack=Slittamento complessivo +Styles.Calendar.nonWorking=Mostra calendario +Styles.Gantt.showRows=Mostra colonne +Styles.showLinks=Mostra collegamenti +Summary.AND=E +Summary.Average=Media +Summary.AverageFirstSublevel=Media primo sottolivello +Summary.CountAll=COnta tutto +Summary.CountNonsummaries=Count Nonsummaries +Summary.List=Lista +Summary.Maximum=Massimo +Summary.Minimum=Minimo +Summary.None=Nessuno +Summary.OR=O +Summary.Sum=Somma +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=Note: ' +TaskIndicatorsComponent.TheCalendar=Il calendario ' +TaskIndicatorsComponent.TheIntersection=L'intersezione dei calendari dell'attivit e della risorsa non fornisce tempo lavorativo.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=L'attivit stata completata il +TaskIndicatorsComponent.ThisParentTaskHasResources=Questa attivit parente ha assegnato risorse direttamente a: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=QUesto sottoprogetto non valido: pu essere inserito solo una volta nel progetto. +TaskIndicatorsComponent.ThisTaskFinishesOn=Questa attivit finisce il +TaskIndicatorsComponent.ThisTaskHasA=Questa attivit ha un ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Questa attivit stata delegata a +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Questa attivit stata delegata a te +TaskIndicatorsComponent.ThisTasksRepresentsThe=Questa attivit rappresenta il +TaskIndicatorsComponent.constraintOn=' vincolato a +TaskIndicatorsComponent.isAssignedToTheTask=' assegnato all'attivit.
+TaskIndicatorsComponent.opened=aperto +TaskIndicatorsComponent.subproject=\ sottoprogetto\: +TaskIndicatorsComponent.unopened=non aperto +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ che oltre la sua scadenza di +TaskInformationDialog.Advanced=Avanzato +TaskInformationDialog.ConstrainTask=Vincoli +TaskInformationDialog.Dates=Date +TaskInformationDialog.General=Generale +TaskInformationDialog.Notes=Note +TaskInformationDialog.Predecessors=Predecessori +TaskInformationDialog.Resources=Risorse +TaskInformationDialog.Successors=Successori +TaskInformationDialog.TaskInformation=Informazioni attivit +Text.Allocated=Allocato +Text.ApplicationTitle=ProjectLibre +Text.Assign=Assegna +Text.AssignResources=Assegna risorse +Text.Baseline=Baseline +Text.Cancel=Cancella +Text.ClearBaseline=Cancella Baseline +Text.CostRateTables=Tabella dei tassi di costo +Text.Cumulative=Cumulativo +Text.DetectingJavaVersion=Ricercando la versione di Java... +Text.DisabledExternalTaskDependency=Dipendenza da attivit esterne disattivata +Text.EntireProject=Intero Project +Text.ExternalTaskDependency=Dipendenza da attivit esterne +Text.Field=Campo +Text.Filter=Filtro +Text.From=Da +Text.Group=Gruppo +Text.HierarchicalRelation=Relazione gerarchica +Text.Histogram=Istogramma +Text.Lag=Ritardo +Text.No=No +Text.None=Nessuno +Text.OtherProjects=Altri progetti +Text.Remove=Rimuovi +Text.Replace=Rimpiazza +Text.ReplaceResource=Rimpiazza risorsa +Text.Save=Salva +Text.SaveBaseline=Salva Baseline +Text.Selected=Selezionato +Text.SelectedTasks=Attivit selezionate +Text.ShowSelectedOnTop=Mostra i selezionati in alto +Text.ShowTeamResourcesOnly=Solo le risorse del team di progetto +Text.Sort=Ordina +Text.Task=Attivit +Text.TaskDependency=Dipendenza attivit +Text.Tasks=Attivit +Text.ThisProject=Questo progetto +Text.To=A +Text.Type=Tipo +Text.Unassigned=Non assegnato +Text.Untitled=Senza titolo +Text.UserDefinedInParentheses=(utente definito) +Text.With=Con +Text.Yes=Si +Text.budget=Budget +Text.clickToRename=(Clicca per rinominare) +Text.cost=costo +Text.createProject=Crea progetto +Text.forwardScheduled=Pianifica in avanti +Text.insertProject=Inserisci progetto +Text.manageResources=Gestisci pool di risorse +Text.modifiedInParentheses=(modificato) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=Progetto (server) +Text.openProject=Apri progetto +Text.predecessor=predecessore +# {0} is the name of the thing to rename +Text.rename.mf=Rinomina {0} +Text.resetRoles=L'opzione "Tutte le risorse" consente l'accesso a tutte le risorse definite in questo progetto, eccetto gli utenti "Partner/Clienti".\nLe restrizioni specifiche di progetto inserite in "Risorse" saranno resettate. +Text.reverseScheduled=Pianificazione inversa +Text.rightClickSelectToSpreadsheet=Tasto destro per selezionare o rinominare le tabelle die tempi +Text.rightClickToInsertRemoveColumns=Tasto destro per inserire o nascondere le colonne +Text.successor=successore +Text.taskHierarchy=Gerarchia attivit: +Text.welcomeSubject=Benvenuti in Projects On Demand +Text.welcomeToPod=Benvenuti in ProjectLibre +Text.work=lavoro +TimeChartPopupMenu.VerticalScrolling=Scorri verticalmente +TimesheetHelper.Entered=Inserito +TimesheetHelper.Integrated=Integrato +TimesheetHelper.Mixed=Misto +TimesheetHelper.New=Nuovo +TimesheetHelper.Rejected=Rifiutato +TimesheetHelper.Saved=Salvato +TimesheetHelper.Validated=Validato +Title.ProjectLibreError=Errore ProjectLibre +Title.ProjectLibreWarning=Allert ProjectLibre +TransformParameter.FinishDate=Data di chiusura +TransformParameter.StartDate=Data di avvio +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|giorni|d +Units.day.singular=d|dy|giorno|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|ore|h +Units.hour.singular=h|hr|ora|h +Units.minute.plural=m|mins|minuti|m +Units.minute.singular=m|min|minuto|m +Units.month.plural=mo|mons|mesi|M +Units.month.singular=mo|mon|mese|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|settimane|w +Units.week.singular=w|wk|setimana|w +Units.year.plural=y|yrs|anni|y +Units.year.singular=y|yr|anno|y +UpdateProjectDialogBox.EntireProject=Intero progetti +UpdateProjectDialogBox.For=Per: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Ripianifica il lavoro rimanente dopo +UpdateProjectDialogBox.SelectedTasks=\ Attivit selezionate +UpdateProjectDialogBox.SetZeroHundred=Aggiusta la percentuale di completamento in accordo con le date di scadenza +UpdateProjectDialogBox.SetZeroOrHundredOnly=E' possibile aggiustare e completare esclusivamente le attivit che finiscono con una data +UpdateProjectDialogBox.UpdateProject=Aggiorna progetto +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Aggiorna lavoro come completato +UpdateTaskDialog.Actual=Atuale +UpdateTaskDialog.Current=Corente +UpdateTaskDialog.UpdateTask=Aggiorna attivit +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Questa data gi presente nella tabella. Per favore si scelga una data differente. +ValueObjectForIntervalTable.ThisDateMustBeAfter=Questa data deve essere successiva a quella inserita in precedenza. +ValueObjectForIntervalTable.ThisDateMustBeBefore=QUesta data deve essere precedente a quella inserita successivamente. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Nn possibile rimuovere la prima data in tabella. +WelcomeDialog.WhatWouldYouLikeToDo=Cosa si preferisce fare: +WorkRangeException.EndMustBeAfterStart=La fine dell'intervallo deve essere superiore all'inizio +WorkRangeException.RangeIncomplete=Un intervallo di lavoro deve includere un inizio e una fine +WorkRangeException.RangesCannotOverlap=You cannot have overlapping work ranges. +WorkRangeException.RangesMustBeOrdered=L?avvio di un intervallo di lavoro deve essere successivo al precedente +tip.1.description= E' possibile diventare un membro della community ProjectLibre a http://www.projectlibre.org e si avr accesso ad aggiornamenti, informazioni ed eventi.. +tip.1.name=ENtra nella community ProjectLibre +tip.2.description= E' possibile utilizzare il tasto destro sul Gannt, sulle celle, sulle intestazioni, e sull'angolo superiore sinistro della tabella per accedere al menu dove si potranno cambiare le viste. +tip.2.name=Modifica Viste +tip.3.description=E' possibile contribuire allo sviluppo di ProjectLibre! Stiamo cercando traduttori e sviluppatori per rendere ProjectLibre sempre migliore. Contatta partners@projectlibre.org. +tip.3.name=Contribuisci a ProjectLibre +tip.4.description=L'istogramma e il grafico sono dinamici e dipendono dalle attivit selezionate. +tip.4.name=rafici dinamici +tip.5.description=E' possibile apportare modifiche direttamente sul Diagramma Network (PERT). +tip.5.name=Modifica le sezioni del Network +tip.6.description=E' possibile indentare le attivit per creare una gerarchia nel progetto. Questo sar riscontrabile anche sulla vista WBS. +tip.6.name=Costruisci una gerarchia nel progetto +tip.7.description=E' possibile utilizzare il mouse per collegare le attivit, estenderle, completarle, muoverle e dividerle. +tip.7.name=Funzionalit del mouse +tip.8.description=Generalmente si utilizzer il predefinito FS (Finish-Start) collegamento tra le attivit. Qualche volta si potrebbe utilizzare SS e FF, ma il collegamento SF molto raro. E' possibile modificare il tipo di collegamento cliccandoci sopra. E' anche possibile impostare un ritardo. +tip.8.name=Tipologie di collegamento +tip.9.description=E' sempre un'ottima idea salvare una baseline di progetto. ProjectLibre consente di salvarne fino ad 11, le quali si potranno facilmente osservare sul Gantt e utilizzare per l'analisi dell'Earned Value. +tip.9.name=Baseline +tip.10.description=E' possibile aggiustare la stampa in una sola pagina zoommando (avvicinando/allontanando) il Gannt e ridimensionando o nascondendo le colonne. Utilizzare l'anteprima di stampa per verificare. +tip.10.name=Stampa +tip.11.description=E' possibile aprire in ProjectLibre anche file creati in MS Project ed possibile salvarli in formato di compatibilit XML. +tip.11.name=Compatibilit con MS Project +tip.12.description=Projectlibre dispone di molti campi definiti dall'utente. Si provi ad utilizzare il tasto destro sull'intestazione delle tabelle... +tip.12.name=Campi definiti dall'utente +tip.13.description=E' possibile assegnare un calendario ai tasks, alle risorse e ai progetti per tener conto delle diverse festivit. +tip.13.name=Calendari +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + +Text.badJavaVersion=La corrente versione di Java la "{0}". Per utilizzare ProjectLibre necessario Java 1.6 o successivo. +Text.badJavaVendor=Il distributore Java "{0}". Per utilizzare ProjectLibre necessario avere Sun Java. +Text.javaExecutable=La versione di Java Runtime attualmente in uso {0}.\nSe non si dispone di una versione pi recente, possibile modificarla manualmente modificando la propriet\n"{1}" nel file auto-detection, "{2}".\nAltrimenti, per eseguire nuovamente l'individuzione automatica possibile rimuovere "{2}". + +Text.newVersion=Una nuova versione {0} di ProjectLibre disponibile.\nLa versione corrente la {1}.\nSi desidera collegarsi adesso alla pagina di download per aggiornarla? + +TipOfTheDay.dialogTitle=Suggerimento del giorno +TipOfTheDay.didYouKnowText=Sapevi che... +TipOfTheDay.showOnStartupText=Mostra suggerimenti all'avvio +TipOfTheDay.previousTipText=< Precedente +TipOfTheDay.nextTipText=Successivo > +TipOfTheDay.closeText=Close + + +Warn.lockMessage = Il progetto stato bloccato da {0}. Si vuole ugualmente aprire il file in modalit sola-lettura? + +#added 14/2/08 +Filter.StartingWithinWeek=Partenza entro una settimana +Filter.StartingWithinTwoWeeks=Partenza entro due settimane +Filter.LateStarting=Partenza in ritardo + +Warn.resourcePoolOpen=Non possibile aprire un altro progetto mentre aperto il pool delle risorse. +Warn.resourcePoolCannotOpen=Non possibile aprire il pool delle risorse mentre aperto un altro progetto. +Warn.fileNotFound=File non trovato + +Text.donateMessage=ProjectLibre is provided free of charge. There are no strings attached, and it saves you the $999.99 list price of commercial project management software. We do ask our users to consider voluntary contributions via PayPal. +Text.donateTitle=Per favore, sostieni Projectlibre +Text.runsSinceMessage=Hai utilizzato ProjectLibre {0,number} volte dal {1,date,short} +Text.tryPODTitle=Try Projects On Demand + + +Text.notAvailableInProjectLibre= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=Non mostrare nuovamente questo messaggio + +Warn.saveXML=E' consigliato utilizzare sempre il formato XML per evitare perdite di dati nella portabilit con altre applicazioni.\nSi desidera procedere comunque? + +Text.rightClickForOptions=Tasto destro per le opzioni +T_OPEN_TXT=Apri +T_LOOK_IN=Guarda in: +T_FILE_NAME=Nome file: +T_FILES_OF_TYPE=File di tipo: +T_SAVE_IN=Salva in: +T_UP_FOLDER=Su +T_HOME=Home +T_NEW_FOLDER=Nuova cartella +T_LIST_VIEW=Elenco +T_DETAILS_VIEW=Dettagli +T_NAME=Nome +T_FILE_SIZE=Dimensione +T_FILE_TYPE=Tipo +T_FILE_DATE=Modificato +T_FILE_ATTR=Attributi +T_ALL_FILES=Tutti i file +T_CANCEL=Annulla +T_SAVE=Salva +T_REFRESH=Aggiorna +T_VIEW=Visualizza diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_th.properties b/projectlibre_core/src/com/projectlibre1/strings/client_th.properties new file mode 100644 index 0000000..1430c4a --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_th.properties @@ -0,0 +1,1236 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.  +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within  {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Performance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Performance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + +AboutDialog.About=\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A +AboutDialog.copyright=\u0E2A\u0E07\u0E27\u0E19\u0E25\u0E34\u0E02\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C 2012 ProjectLibre Inc. +AccessControlPolicy.PUBLIC=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 (\u0E22\u0E01\u0E40\u0E27\u0E49\u0E19\u0E25\u0E39\u0E01\u0E04\u0E49\u0E32 / \u0E04\u0E39\u0E48\u0E04\u0E49\u0E32) +AccessControlPolicy.RESTRICTED=\u0E15\u0E32\u0E21\u0E1A\u0E17\u0E1A\u0E32\u0E17\u0E02\u0E2D\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +AccrualType.End=\u0E27\u0E31\u0E19\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22 +AccrualType.Prorated=\u0E15\u0E32\u0E21\u0E2A\u0E31\u0E14\u0E2A\u0E48\u0E27\u0E19 +AccrualType.Start=\u0E27\u0E31\u0E19\u0E41\u0E23\u0E01 +AssignmentDialog.ShowingAllResources=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E41\u0E2A\u0E14\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E43\u0E19\u0E17\u0E35\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +AssignmentDialog.none=\u0E44\u0E21\u0E48 +Bar.assignment=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Bar.baseline10=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E1910 +Bar.baseline1=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E191 +Bar.baseline2=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E192 +Bar.baseline3=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E193 +Bar.baseline4=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E194 +Bar.baseline5=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E195 +Bar.baseline6=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E196 +Bar.baseline7=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E197 +Bar.baseline8=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E198 +Bar.baseline9=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E199 +Bar.baseline=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Bar.critical=\u0E2A\u0E33\u0E04\u0E31\u0E0D +Bar.deadline=\u0E40\u0E2A\u0E49\u0E19\u0E15\u0E32\u0E22 (or you may use \u201Cson tarih\u201D) +Bar.external=\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Bar.milestone=\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E2A\u0E33\u0E04\u0E31\u0E0D +Bar.subproject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 +Bar.summary=\u0E2A\u0E23\u0E38\u0E1B +Bar.task=\u0E07\u0E32\u0E19 +Bar.timesheet=\u0E41\u0E1C\u0E48\u0E19\u0E40\u0E27\u0E25\u0E32 +Bar.totalSlack=\u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 +BarPanel.Shape=\u0E23\u0E39\u0E1B\u0E23\u0E48\u0E32\u0E07: +BaselineDialog.Baseline=\u0E02\u0E31\u0E49\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19: +BaselineDialog.For=\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A: +BookingType.Committed=\u0E21\u0E38\u0E48\u0E07\u0E21\u0E31\u0E48\u0E19 +BookingType.Proposed=\u0E40\u0E2A\u0E19\u0E2D +ButtonText.Cancel=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 +ButtonText.Close=\u0E1B\u0E34\u0E14 +ButtonText.IAccept=\u0E40\u0E2B\u0E47\u0E19\u0E14\u0E49\u0E27\u0E22 +ButtonText.OK=\u0E15\u0E01\u0E25\u0E07 +ButtonText.Open=\u0E40\u0E1B\u0E34\u0E14 +ButtonText.OpenCopy=\u0E40\u0E1B\u0E34\u0E14\u0E40\u0E1B\u0E47\u0E19\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 +Calendar.24Hours=24 \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07 +Calendar.EditedWorkingHours=\u0E41\u0E01\u0E49\u0E44\u0E02\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19 +CalendarDialogBox.Wednesday=\u0E1E\u0E38\u0E18 +CalendarDialogBox.September=\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19 +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ \u0E04\u0E39\u0E48\u0E21\u0E37\u0E2D +Calendar.EditsToADayOfTheWeek=\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E27\u0E31\u0E19\u0E43\u0E19\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C +CalendarDialogBox.HoursPerday=\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07\u0E15\u0E48\u0E2D\u0E27\u0E31\u0E19: +CalculationDialogBox.Prorated=\u0E15\u0E32\u0E21\u0E2A\u0E31\u0E14\u0E2A\u0E48\u0E27\u0E19 +Calendar.EditsToAnIndividualDay=\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E27\u0E31\u0E19\u0E40\u0E14\u0E35\u0E22\u0E27 +CalendarDialogBox.DurationSettings=\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E40\u0E27\u0E25\u0E32 +CalendarDialogBox.SetAsDefault=\u0E15\u0E31\u0E49\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +CalendarDialogBox.HoursPerWeek=\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E43\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C: +CalendarDialogBox.DaysPerMonth=\u0E27\u0E31\u0E19\u0E43\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E40\u0E14\u0E37\u0E2D\u0E19: +Calendar.ExceptionCircular=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19\u0E44\u0E14\u0E49\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E19\u0E35\u0E49 +CalendarDialogBox.Monday=\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C +CalendarDialogBox.Tuesday=\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23 +CalendarDialogBox.Thursday=\u0E1E\u0E24\u0E2B\u0E31\u0E2A +CalendarDialogBox.Friday=\u0E28\u0E38\u0E01\u0E23\u0E4C +CalendarDialogBox.Saturday=\u0E40\u0E2A\u0E32\u0E23\u0E4C +CalendarDialogBox.Sunday=\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C +CalendarDialogBox.January=\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21 +CalendarDialogBox.February=\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18 +CalendarDialogBox.March=\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21 +CalendarDialogBox.April=\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19 +CalendarDialogBox.August=\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21 +CalendarDialogBox.October=\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21 +CalendarDialogBox.November=\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19 +CalendarDialogBox.December=\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21 +CalendarDialogBox.EightAM=\ 8\:00 \u0E15\u0E2D\u0E19\u0E40\u0E0A\u0E49\u0E32 +CalendarDialogBox.SixPM=\ 6\:00 \u0E15\u0E2D\u0E19\u0E1A\u0E48\u0E32\u0E22 +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=\u0E40\u0E23\u0E34\u0E48\u0E21 +Calendar.NightShift=\u0E40\u0E02\u0E49\u0E32\u0E01\u0E30 +Calendar.Nonworking=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E17\u0E33\u0E07\u0E32\u0E19 +Calendar.Standard=\u0E21\u0E32\u0E15\u0E23\u0E10\u0E32\u0E19 +Calendar.Unmodified=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E41\u0E01\u0E49\u0E44\u0E02 +CalendarDialogBox.May=\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21 +CalendarDialogBox.June=\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19 +CalendarDialogBox.July=\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21 +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=\u0E43\u0E0A\u0E49\u0E1B\u0E35\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E19\u0E31\u0E1A\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E43\u0E19\u0E2D\u0E19\u0E32\u0E04\u0E15 +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49\u0E21\u0E35\u0E1C\u0E25\u0E01\u0E31\u0E1A\u0E40\u0E27\u0E25\u0E32\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +CalculationDialogBox.AndMoveStartOfRemaining=\u0E22\u0E49\u0E32\u0E22\u0E08\u0E38\u0E14\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +CalculationDialogBox.AndMoveEndOfCompleted=\u0E22\u0E49\u0E32\u0E22\u0E08\u0E38\u0E14\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C\u0E44\u0E1B\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32 +CalculationDialogBox.MoveEndOfCompleteParts=\u0E22\u0E49\u0E32\u0E22\u0E01\u0E32\u0E23\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E40\u0E15\u0E47\u0E21\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E01\u0E25\u0E31\u0E1A\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E16\u0E32\u0E19\u0E30 +Calendar.Working=\u0E17\u0E33\u0E07\u0E32\u0E19 +Category.assignmentEntrySpreadsheet=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Category.assignmentSpreadsheet=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Category.availabilitySpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Category.costRates=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Category.dependencySpreadsheet=\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07 +CalculationDialogBox.Automatic=\ \u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34 +CalculationDialogBox.Calculate=\u0E04\u0E33\u0E19\u0E27\u0E13: +Category.distributionSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +CalculationDialogBox.Calculation=\u0E01\u0E32\u0E23\u0E04\u0E33\u0E19\u0E27\u0E13 +CalculationDialogBox.EarnedValue=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A +Category.projectSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Category.resourceAssignmentSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Category.resourceSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Category.taskAssignmentSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Category.taskSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E07\u0E32\u0E19 +Category.taskSpreadsheet;projectSpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E07\u0E32\u0E19\u0E41\u0E25\u0E30\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +CalculationDialogBox.End=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +Category.timesheetSpreadsheet=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15 +ChangeWorkingTimeDialogBox.BasedOn=\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A +ChangeWorkingTimeDialogBox.ChangeWorkingTime=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19 +ChangeWorkingTimeDialogBox.For=\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A:  +ChangeWorkingTimeDialogBox.From=\u0E08\u0E32\u0E01:  +ChangeWorkingTimeDialogBox.ModificationMessage=\u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E17\u0E35\u0E48\u0E40\u0E01\u0E34\u0E14\u0E02\u0E36\u0E49\u0E19\u0E01\u0E31\u0E1A\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E19\u0E35\u0E49\u0E21\u0E35\u0E1C\u0E25\u0E01\u0E31\u0E1A\u0E17\u0E38\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E19\u0E35\u0E49 +ChangeWorkingTimeDialogBox.New=\u0E43\u0E2B\u0E21\u0E48 +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19 +ChangeWorkingTimeDialogBox.NonWorkingTime=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E17\u0E33\u0E07\u0E32\u0E19 +ChangeWorkingTimeDialogBox.NotEdiableMessage=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E19\u0E35\u0E49\u0E44\u0E14\u0E49\u0E43\u0E19\u0E02\u0E13\u0E30\u0E17\u0E35\u0E48\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E2B\u0E25\u0E31\u0E01 (\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23) \u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +ChangeWorkingTimeDialogBox.Options=\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01... +ChangeWorkingTimeDialogBox.To=\  \u0E16\u0E36\u0E07\: +ChangeWorkingTimeDialogBox.UseDefault=\u0E43\u0E0A\u0E49\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +ChartLegend.ResourceFilter=\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23: +ClientRole.Inactive=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +ClientRole.ProjectManager=\u0E1C\u0E39\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +ClientRole.TeamMember=\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E43\u0E19\u0E17\u0E35\u0E21 +ClientRole.TeamResource=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E02\u0E2D\u0E07\u0E17\u0E35\u0E21 +ColumnDialog.InsertColumn=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C +Command.UpdateProject=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Command.UpdateTasks=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19 +ConstraintType.ALAP=\u0E0A\u0E49\u0E32\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 +ConstraintType.ASAP=\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E40\u0E17\u0E48\u0E32\u0E17\u0E35\u0E48\u0E08\u0E30\u0E17\u0E33\u0E44\u0E14\u0E49 +ConstraintType.FNET=... \u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +ConstraintType.FNLT=... \u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +ConstraintType.HAMM=Hamak +ConstraintType.MFO=... \u0E15\u0E49\u0E2D\u0E07\u0E08\u0E1A\u0E25\u0E07\u0E40\u0E21\u0E37\u0E48\u0E2D +ConstraintType.MSO=... \u0E04\u0E27\u0E23\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E19\u0E04\u0E23\u0E31\u0E49\u0E07\u0E01\u0E48\u0E2D\u0E19 +ConstraintType.SNET=... \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +ConstraintType.SNLT=... \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E04\u0E48\u0E32 A +CostRateIndex.B=\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E04\u0E48\u0E32 B +CostRateIndex.C=\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E04\u0E48\u0E32 C +CostRateIndex.D=\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E04\u0E48\u0E32 D +CostRateIndex.E=\u0E1B\u0E23\u0E30\u0E40\u0E21\u0E34\u0E19\u0E04\u0E48\u0E32 E +Date.NoEnd=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14  +# NA = \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49\u0E44\u0E14\u0E49 +Date.NoStart=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Date.Quarter1=\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A 1 +Date.Half1=\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E41\u0E23\u0E01 +Date.Quarter2=\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A 2 +Date.Half2=\u0E04\u0E23\u0E36\u0E48\u0E07\u0E1B\u0E35\u0E2B\u0E25\u0E31\u0E07 +DefaultFrameManager.Project=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +DelegateTaskDialog.DelegateTask=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=TT +DependencyType.FS=TB +DependencyType.SF=BT +DependencyType.SS=BB +DependencyType.longFF=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19-\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +DependencyType.longFS=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19-\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +DependencyType.longSF=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19-\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +DependencyType.longSS=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19-\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +EarnedValueCalculator.SPI=ZPE  +EarnedValueCalculator.CPI=MPE  +EarnedValueCalculator.CSI=MÇE  +EarnedValueMethodType.PercentComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +EarnedValueMethodType.PhysicalPercentComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08\u0E17\u0E32\u0E07\u0E01\u0E32\u0E22\u0E20\u0E32\u0E1E +ExpenseType.CAPITALIZE=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E4C\u0E2A\u0E34\u0E19 +ExpenseType.DIRECT=\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07 +ExpenseType.EXPENSE=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +ExpenseType.INDIRECT=\u0E42\u0E14\u0E22\u0E2D\u0E49\u0E2D\u0E21 +ExpenseType.NONE=\u0E44\u0E21\u0E48 +ExpenseType.OVERHEAD=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22\u0E2D\u0E37\u0E48\u0E19\u0E46 +Field.accessControlPolicy=\u0E01\u0E25\u0E38\u0E48\u0E21\u0E41\u0E1C\u0E19\u0E07\u0E32\u0E19 +Field.accrueAt=\u0E22\u0E2D\u0E14\u0E04\u0E07\u0E04\u0E49\u0E32\u0E07 +Field.actualCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E17\u0E35\u0E48\u0E41\u0E17\u0E49\u0E08\u0E23\u0E34\u0E07 +Field.actualDuration=\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E08\u0E23\u0E34\u0E07 +Field.actualFinish=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C\u0E08\u0E23\u0E34\u0E07 +Field.actualFixedCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48\u0E08\u0E23\u0E34\u0E07 +Field.actualOvertimeCost=\u0E04\u0E48\u0E32\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E15\u0E32\u0E21\u0E08\u0E23\u0E34\u0E07 +Field.actualOvertimeWork=\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E08\u0E23\u0E34\u0E07 +Field.actualOvertimeWorkProtected=\u0E01\u0E32\u0E23\u0E1B\u0E49\u0E2D\u0E07\u0E01\u0E31\u0E19\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E15\u0E32\u0E21\u0E08\u0E23\u0E34\u0E07 +Field.actualStart=\u0E01\u0E32\u0E23\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E08\u0E23\u0E34\u0E07 +Field.actualWork=\u0E07\u0E32\u0E19\u0E08\u0E23\u0E34\u0E07 +Field.actualWorkProtected=\u0E07\u0E32\u0E19\u0E08\u0E23\u0E34\u0E07\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E04\u0E38\u0E49\u0E21\u0E04\u0E23\u0E2D\u0E07 +Field.acwp=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E08\u0E23\u0E34\u0E07\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23  +Field.assignedRate=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 +Field.assignment=\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Field.assignmentEntryAssigned=\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Field.assignmentEntryName=\u0E0A\u0E37\u0E48\u0E2D +Field.assignmentEntryRate=\u0E2B\u0E19\u0E48\u0E27\u0E22 +Field.assignmentProjectName=\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.assignmentResourceId=\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E17\u0E35\u0E48\u0E21\u0E32 +Field.assignmentResourceName=\u0E0A\u0E37\u0E48\u0E2D\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.assignmentTaskId=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19 +Field.assignmentTaskName=\u0E0A\u0E37\u0E48\u0E2D\u0E07\u0E32\u0E19 +Field.assignmentUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Field.availableFrom=\u0E08\u0E32\u0E01 +Field.availableTo=\u0E16\u0E36\u0E07 OR we can use \u201C\u2018e kadar uygun\u201D. As above.   Available To +Field.bac=TB \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 \u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +Field.baseCalendar=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19# \u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Field.baseline#Duration=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19# \u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.baseline#Finish=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19# \u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +Field.baseline#Start=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19# \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Field.baseline#Work=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19# \u0E17\u0E33\u0E07\u0E32\u0E19 +Field.bcwp=BCWP \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Gerçekle\u015Fen Çal\u0131\u015Fma Bütçe Maliyeti +Field.bcws=BCWS \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Zamanlanan Çal\u0131\u015Fma Bütçe Maliyeti +Field.benefit=\u0E1B\u0E23\u0E30\u0E42\u0E22\u0E0A\u0E19\u0E4C +Field.bookingType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E01\u0E32\u0E23\u0E25\u0E07\u0E17\u0E30\u0E40\u0E1A\u0E35\u0E22\u0E19 +Field.budgetStatusIndicator=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Field.cachedEnd=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +Field.cachedStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Field.canLevel=\u0E23\u0E30\u0E14\u0E31\u0E1A +Field.code=\u0E23\u0E2B\u0E31\u0E2A +Field.complete=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E23\u0E39\u0E13\u0E4C +Field.completeThrough=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E23\u0E39\u0E13\u0E4C\u0E40\u0E23\u0E35\u0E22\u0E1A\u0E23\u0E49\u0E2D\u0E22 +Field.completedThrough=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E23\u0E39\u0E13\u0E4C\u0E40\u0E23\u0E35\u0E22\u0E1A\u0E23\u0E49\u0E2D\u0E22 +Field.confirmed=\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19 +Field.constraintDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 +Field.constraintType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 +Field.contact=\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D +Field.cost=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +Field.costPerUse=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E15\u0E48\u0E2D\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Field.costRateTable=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Field.costVariance=\u0E04\u0E27\u0E32\u0E21\u0E41\u0E15\u0E01\u0E15\u0E48\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Field.cpi=CPI \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Performans Endeksi +Field.created=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E41\u0E25\u0E49\u0E27 +Field.creationDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E23\u0E49\u0E32\u0E07 +Field.critical=\u0E27\u0E34\u0E01\u0E24\u0E15 +Field.csi=CSI \u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Çizelgesi Endeksi +Field.cumulativeCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E2A\u0E30\u0E2A\u0E21 +Field.cumulativePercentComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E2A\u0E30\u0E2A\u0E21\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +FieldDialog.ResourceInformation=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.cumulativeWork=\u0E07\u0E32\u0E19\u0E2A\u0E30\u0E2A\u0E21 +Field.currentDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19 +Field.customCost#=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22# +Field.customDate#=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48# +Field.customDuration#=\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32# +Field.customFinish#=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19# +Field.customFlag#=\u0E18\u0E07# +Field.customNumber#=\u0E08\u0E33\u0E19\u0E27\u0E19# +Field.customOutlineCode#=\u0E23\u0E2B\u0E31\u0E2A\u0E42\u0E04\u0E23\u0E07\u0E23\u0E48\u0E32\u0E07# +Field.customStart#=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19# +Field.customText#=\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21# +Field.cv=CV \u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Varyans\u0131 +Field.cvPercent=CVP \u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Varyans\u0131 Yüzdesi +Field.deadline=\u0E40\u0E2A\u0E49\u0E19\u0E15\u0E32\u0E22 +Field.debugDependencyOrder=\u0E14\u0E35\u0E1A\u0E31\u0E01 \u0E25\u0E33\u0E14\u0E31\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E01\u0E31\u0E19 +Field.delay=\u0E04\u0E27\u0E32\u0E21\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32\u0E43\u0E19\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Field.delegatedTo=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E43\u0E2B\u0E49 (not in line with the Turkish grammar, depending on the preceding object  name \u201C\u2018e\u201D may become \u201C\u2018a\u201D, \u201C\u2018ye\u201D, or \u201C\u2018ya\u201D) +Field.dependencyDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07 +Field.dependencyStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07 +Field.dependencyType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07 +Field.dirty=\u0E2A\u0E01\u0E1B\u0E23\u0E01 +Field.duration=\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.durationVariance=\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1B\u0E23\u0E1B\u0E23\u0E27\u0E19\u0E02\u0E2D\u0E07\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32 +Field.eac=EAC \u2026\u2026\u2026\u2026\u2026\u2026 Tahmini Tamamlama Maliyeti +Field.earliestStartingTask=\u0E07\u0E32\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 +Field.earlyFinish=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14 +Field.earlyStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E31\u0E49\u0E07\u0E41\u0E15\u0E48\u0E40\u0E19\u0E34\u0E48\u0E19\u0E46 +Field.earnedValueMethod=\u0E27\u0E34\u0E18\u0E35\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A +Field.effectiveDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E17\u0E35\u0E48\u0E21\u0E35\u0E1C\u0E25 +Field.effortDriven=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E22\u0E32\u0E22\u0E32\u0E21\u0E43\u0E19\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Field.elapsedDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E1C\u0E48\u0E32\u0E19\u0E44\u0E1B +Field.emailAddress=\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25 +Field.estimated=\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13\u0E01\u0E32\u0E23 +Field.expectedDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E04\u0E32\u0E14\u0E2B\u0E27\u0E31\u0E07 +Field.expectedFinish=\u0E04\u0E32\u0E14\u0E27\u0E48\u0E32\u0E08\u0E30\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +Field.expectedStart=\u0E04\u0E32\u0E14\u0E27\u0E48\u0E32\u0E08\u0E30\u0E40\u0E23\u0E34\u0E48\u0E21 +Field.expenseType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E23\u0E32\u0E22\u0E08\u0E48\u0E32\u0E22 +Field.externalId=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Field.externalTask=\u0E07\u0E32\u0E19\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Field.finish=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +Field.finishDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +Field.finishOffset=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E01\u0E32\u0E23\u0E0A\u0E14\u0E40\u0E0A\u0E22 +Field.finishSlack=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Field.finishVariance=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1B\u0E23\u0E1B\u0E23\u0E27\u0E19 +Field.fixedCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48 +Field.fixedCostAccrual=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48\u0E17\u0E35\u0E48\u0E40\u0E01\u0E34\u0E14\u0E02\u0E36\u0E49\u0E19\u0E08\u0E23\u0E34\u0E07 +Field.forward=\u0E44\u0E1B\u0E02\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32 +Field.freeSlack=\u0E1F\u0E23\u0E35 \u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Field.ganttSnapshot=Gantt +Field.generic=\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B +Field.group=\u0E01\u0E25\u0E38\u0E48\u0E21 +Field.groupBySummary=\u0E2A\u0E23\u0E38\u0E1B\u0E42\u0E14\u0E22\u0E01\u0E25\u0E38\u0E48\u0E21 +Field.hideBar=\u0E0B\u0E48\u0E2D\u0E19\u0E41\u0E16\u0E1A\u0E1A\u0E32\u0E23\u0E4C +Field.hyperlink=\u0E44\u0E2E\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E25\u0E34\u0E07\u0E01\u0E4C +Field.hyperlinkAddress=\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 \u0E44\u0E2E\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E25\u0E34\u0E07\u0E01\u0E4C +Field.hyperlinkHref=\u0E44\u0E2E\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E25\u0E34\u0E07\u0E01\u0E4C Href +Field.hyperlinkSubAddress=\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E22\u0E48\u0E2D\u0E22\u0E02\u0E2D\u0E07\u0E44\u0E2E\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E25\u0E34\u0E07\u0E01\u0E4C +# ID = \u0E44\u0E2D\u0E14\u0E35 +Field.id=\u0E25\u0E33\u0E14\u0E31\u0E1A +Field.ignoreResourceCalendar=\u0E25\u0E30\u0E40\u0E27\u0E49\u0E19\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.inactive=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Field.indicators=\u0E15\u0E31\u0E27\u0E0A\u0E35\u0E49\u0E27\u0E31\u0E14 +Field.initials=\u0E0A\u0E37\u0E48\u0E2D\u0E22\u0E48\u0E2D +Field.justModified=\u0E41\u0E01\u0E49\u0E44\u0E02\u0E43\u0E2B\u0E21\u0E48 +Field.lag=\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Field.lastModificationDate=\u0E41\u0E01\u0E49\u0E44\u0E02\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14 +Field.lastTimesheetUpdate=\u0E44\u0E17\u0E21\u0E4C\u0E44\u0E25\u0E19\u0E4C\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14 +Field.lateFinish=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E0A\u0E49\u0E32 +Field.lateStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Field.latestFinishingTask=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14 +Field.levelAssignments=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E23\u0E30\u0E14\u0E31\u0E1A +Field.levelingCanSplit=\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E1A\u0E48\u0E07\u0E23\u0E30\u0E14\u0E31\u0E1A\u0E44\u0E14\u0E49 +Field.levelingDelay=\u0E04\u0E27\u0E32\u0E21\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32\u0E43\u0E19\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E23\u0E30\u0E14\u0E31\u0E1A +Field.linkedFields=\u0E1F\u0E34\u0E25\u0E14\u0E4C\u0E17\u0E35\u0E48\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07 +Field.manager=\u0E1C\u0E39\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 +Field.markTaskAsMilestone=\u0E41\u0E2A\u0E14\u0E07\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E25\u0E31\u0E01 +Field.marked=\u0E17\u0E33\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E41\u0E25\u0E49\u0E27 +Field.materialLabel=\u0E09\u0E25\u0E32\u0E01\u0E27\u0E31\u0E2A\u0E14\u0E38 +Field.maximumUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 +Field.milestone=\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E2A\u0E33\u0E04\u0E31\u0E0D +Field.name=\u0E0A\u0E37\u0E48\u0E2D +Field.negativeSlack=\u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32\u0E40\u0E0A\u0E34\u0E07\u0E25\u0E1A +Field.netPresentValue=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E2A\u0E38\u0E17\u0E18\u0E34 +Field.networkSnapshot=\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22 +Field.notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22 +Field.objects=\u0E2D\u0E4A\u0E2D\u0E1B\u0E40\u0E08\u0E47\u0E04 +Field.optimisticDuration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E43\u0E19\u0E41\u0E07\u0E48\u0E14\u0E35 +Field.optimisticFinish=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E43\u0E19\u0E41\u0E07\u0E48\u0E14\u0E35 +Field.optimisticStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E19\u0E41\u0E07\u0E48\u0E14\u0E35 +Field.outlineLevel=\u0E23\u0E30\u0E14\u0E31\u0E1A\u0E40\u0E04\u0E49\u0E32\u0E23\u0E48\u0E32\u0E07 +Field.outlineNumber=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E04\u0E23\u0E07\u0E23\u0E48\u0E32\u0E07 +Field.overallocated=\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2A\u0E23\u0E23\u0E40\u0E01\u0E34\u0E19 +Field.overallocation=\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2A\u0E23\u0E23\u0E40\u0E01\u0E34\u0E19 +Field.overtimeCost=\u0E04\u0E48\u0E32\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.overtimeRate=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.overtimeWork=\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.parentId#=Özet \u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19# +Field.partner=\u0E1E\u0E31\u0E19\u0E18\u0E21\u0E34\u0E15\u0E23 +Field.peak=\u0E08\u0E38\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 xxxxxxxxxxxxxxxxxxxxxxxxbookmark until tomorrowxxxxxxxxxxxxxxxxxxx +Field.peakUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 +Field.pendingTimesheetUpdate=\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15 Timesheet +Field.percentAllocation=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2A\u0E23\u0E23 +Field.percentComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E23\u0E39\u0E13\u0E4C +Field.percentWorkComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E07\u0E32\u0E19\u0E40\u0E2A\u0E23\u0E47\u0E08 +Field.pessimisticDuration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E43\u0E19\u0E41\u0E07\u0E48\u0E23\u0E49\u0E32\u0E22 +Field.pessimisticFinish=\u0E08\u0E38\u0E14\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E43\u0E19\u0E41\u0E07\u0E48\u0E23\u0E49\u0E32\u0E22 +Field.pessimisticStart=\u0E08\u0E38\u0E14\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E43\u0E19\u0E41\u0E07\u0E48\u0E23\u0E49\u0E32\u0E22 +Field.phonetics=\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C +Field.physicalPercentComplete=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E17\u0E32\u0E07\u0E01\u0E32\u0E22\u0E20\u0E32\u0E1E\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +Field.predecessorId=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +Field.predecessorName=\u0E0A\u0E37\u0E48\u0E2D\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +Field.predecessors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +Field.preleveledFinish=\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E23\u0E30\u0E14\u0E31\u0E1A +Field.preleveledStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E23\u0E30\u0E14\u0E31\u0E1A +Field.priority=\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E33\u0E04\u0E31\u0E0D +Field.project=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.projectDivision=\u0E2A\u0E32\u0E02\u0E32 +Field.projectGroup=\u0E01\u0E25\u0E38\u0E48\u0E21 +Field.projectId=\u0E23\u0E2B\u0E31\u0E2A\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.projectStatus=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.projectType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.rate=\u0E2B\u0E19\u0E48\u0E27\u0E22 +Field.rbsCode=RBS +Field.readOnlyDuration=\u0E40\u0E27\u0E25\u0E32 +Field.recurring=\u0E40\u0E01\u0E34\u0E14\u0E0B\u0E49\u0E33 +Field.referringSubprojectTaskDependencyDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E43\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 +Field.regularWork=\u0E07\u0E32\u0E19\u0E1B\u0E23\u0E30\u0E08\u0E33 +Field.remainingAvailability=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E2D\u0E22\u0E39\u0E48 +Field.remainingCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +Field.remainingDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +Field.remainingOvertimeCost=\u0E04\u0E48\u0E32\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +Field.remainingOvertimeWork=\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +FieldDialog.TaskInformation=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19 +Field.remainingWork=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D +# R/D is an abbreviation for Request / Demand; a resource is requested or is demanded +Field.requestDemandType=\u0E04\u0E33\u0E02\u0E2D / \u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 +Field.resourceAvailability=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E02\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourceGroup=\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourceId=\u0E23\u0E2B\u0E31\u0E2A\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourceInitials=\u0E0A\u0E37\u0E48\u0E2D\u0E22\u0E48\u0E2D\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourceNames=\u0E0A\u0E37\u0E48\u0E2D\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourcePhonetics=\u0E2A\u0E31\u0E17\u0E28\u0E32\u0E2A\u0E15\u0E23\u0E4C\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourcePool=\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Field.resourceType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17 +Field.responsePending=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A +Field.resume=\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D +Field.risk=\u0E04\u0E27\u0E32\u0E21\u0E40\u0E2A\u0E35\u0E48\u0E22\u0E07 +Field.rollup=Rollup +Field.scheduleStatusIndicator=\u0E15\u0E31\u0E27\u0E1A\u0E48\u0E07\u0E0A\u0E35\u0E49\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E32\u0E23 +Field.schedulingMethod=\u0E27\u0E34\u0E18\u0E35\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E40\u0E27\u0E25\u0E32 +Field.showProjectResourcesOnly=\u0E41\u0E2A\u0E14\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +Field.spi=SPI \u2026\u2026\u2026\u2026\u2026\u2026\u2026. Takvim Maliyet Endeksi +Field.standardRate=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E21\u0E32\u0E15\u0E23\u0E10\u0E32\u0E19 +Field.start=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Field.startDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Field.startOffset=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2D\u0E2D\u0E1F\u0E40\u0E0B\u0E47\u0E15 +Field.startSlack=\u0E40\u0E23\u0E34\u0E48\u0E21 Slack +Field.startVariance=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1B\u0E23\u0E1B\u0E23\u0E27\u0E19 +Field.status=\u0E2A\u0E16\u0E32\u0E19\u0E30 +Field.statusDate=\u0E27\u0E31\u0E19\u0E2A\u0E16\u0E32\u0E19\u0E30 +Field.statusIndicator=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E42\u0E14\u0E22\u0E23\u0E27\u0E21 +Field.statusTaskIndicator=\u0E15\u0E31\u0E27\u0E1A\u0E48\u0E07\u0E0A\u0E35\u0E49\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E07\u0E32\u0E19 +Field.stop=\u0E2B\u0E22\u0E38\u0E14 +Field.subprojectFile=\u0E41\u0E1F\u0E49\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 +Field.subprojectOf=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E02\u0E2D\u0E07 +Field.subprojectReadOnly=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 +Field.successorId=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +Field.successorName=\u0E0A\u0E37\u0E48\u0E2D\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +Field.successors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +Field.summary=\u0E2A\u0E23\u0E38\u0E1B +Field.summaryProgress=\u0E2A\u0E23\u0E38\u0E1B\u0E04\u0E27\u0E32\u0E21\u0E04\u0E37\u0E1A\u0E2B\u0E19\u0E49\u0E32 +Field.suprojectReadOnly=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 +Field.sv=SV +Field.svPercent=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C SV +Field.taskCalendar=\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E32\u0E23\u0E07\u0E32\u0E19 +Field.taskId=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19 +Field.taskName=\u0E0A\u0E37\u0E48\u0E2D\u0E07\u0E32\u0E19 +Field.taskOutlineNumber=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E04\u0E23\u0E07\u0E23\u0E48\u0E32\u0E07\u0E07\u0E32\u0E19 +Field.taskSummaryName=\u0E0A\u0E37\u0E48\u0E2D\u0E2A\u0E23\u0E38\u0E1B\u0E07\u0E32\u0E19 +Field.taskType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E07\u0E32\u0E19 +Field.tcpi=TCPI \u2026\u2026\u2026\u2026\u2026.. Tamamlama için Gerekli Performans Endeksi +Field.teamStatusPending=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E17\u0E35\u0E21\u0E23\u0E2D\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23 +Field.textAbove=\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19 +Field.timesheetFinish=\u0E44\u0E17\u0E21\u0E4C\u0E0A\u0E35\u0E17\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +Field.timesheetStart=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E44\u0E17\u0E21\u0E4C\u0E0A\u0E35\u0E17 +FieldDialog.document=\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23: +Field.timesheetStatus=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E44\u0E17\u0E21\u0E4C\u0E0A\u0E35\u0E17 +Field.timesheetStatusName=\u0E0A\u0E37\u0E48\u0E2D\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E44\u0E17\u0E21\u0E4C\u0E0A\u0E35\u0E17 +Field.totalSlack=\u0E2A\u0E23\u0E38\u0E1B Slack +Field.totalSlackEnd=\u0E2A\u0E23\u0E38\u0E1B Slack \u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +Field.totalSlackStart=\u0E2A\u0E23\u0E38\u0E1B Slack \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Field.uniqueId=\u0E23\u0E2B\u0E31\u0E2A\u0E44\u0E21\u0E48\u0E0B\u0E49\u0E33\u0E01\u0E31\u0E19 +Field.uniqueIdPredecessors=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 \u0E44\u0E21\u0E48\u0E0B\u0E49\u0E33 +Field.uniqueIdSuccessors=\u0E23\u0E2B\u0E31\u0E2A\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 \u0E44\u0E21\u0E48\u0E0B\u0E49\u0E33 +Field.unitAvailability=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E17\u0E35\u0E48\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Field.updateNeeded=\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15 +Field.userAccount=\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 +Field.userRole=\u0E1A\u0E17\u0E1A\u0E32\u0E17\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=WBS Parent +Field.wbsParentName=\u0E0A\u0E37\u0E48\u0E2D WBS Parent +Field.wbsPredecessors=WBS Predecessors +Field.wbsSuccessors=WBS Successors +Field.work=\u0E17\u0E33\u0E07\u0E32\u0E19 +Field.workAvailability=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E43\u0E19\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19 +Field.workContour=Work Contour +Field.workVariance=Work Variance +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=\u0E1C\u0E39\u0E49\u0E27\u0E32\u0E07\u0E41\u0E1C\u0E19 +File.projects=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +File.projity=ProjectLibre +Filter.CompletedTasks=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08 +Filter.CostOverbudgetTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22\u0E40\u0E01\u0E34\u0E19\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Filter.CriticalTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E33\u0E04\u0E31\u0E0D +Filter.DateRange=\u0E0A\u0E48\u0E27\u0E07\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +Filter.Flag1=Flag 1 +Filter.Flag2=Flag 2 +Filter.Flag3=Flag 3 +Filter.InProgressAssignments=\u0E01\u0E32\u0E23\u0E19\u0E31\u0E14\u0E2B\u0E21\u0E32\u0E22\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E15\u0E48\u0E2D\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07 +Filter.InProgressTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E25\u0E31\u0E07\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E2D\u0E22\u0E39\u0E48 +Filter.IncompleteTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +Filter.LateOrOverbudgetTasks=\u0E07\u0E32\u0E19\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 / \u0E40\u0E01\u0E34\u0E19\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Filter.Milestones=\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E2A\u0E33\u0E04\u0E31\u0E0D +Filter.MyDelegatedTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E09\u0E31\u0E19\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Filter.MyTasks=\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E02\u0E2D\u0E07\u0E09\u0E31\u0E19 +Filter.None=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07 +Filter.NormalTasks=\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E1B\u0E01\u0E15\u0E34 +Filter.ResourcesMaterial=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E27\u0E31\u0E2A\u0E14\u0E38 +Filter.ResourcesMe=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E02\u0E2D\u0E07\u0E09\u0E31\u0E19 +Filter.ResourcesWork=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19 +Filter.SlippedTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E04\u0E49\u0E32\u0E07 +Filter.SummaryTasks=\u0E2A\u0E23\u0E38\u0E1B\u0E07\u0E32\u0E19 +Filter.TasksWithEstimatedDurations=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E21\u0E35\u0E40\u0E27\u0E25\u0E32\u0E42\u0E14\u0E22\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Filter.UnstartedAssignments=\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E19\u0E31\u0E14\u0E2B\u0E21\u0E32\u0E22 +FixedDuration.FixedDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 +Filter.UnstartedTasks=\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E07\u0E32\u0E19 +Filter.WorkComplete=\u0E17\u0E33\u0E07\u0E32\u0E19\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +FixedWork.FixedWork=\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48 +FixedUnits.FixedUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E04\u0E07\u0E17\u0E35\u0E48 +FixedDuration.TheDurationMessage=\u0E07\u0E32\u0E19\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E04\u0E07\u0E17\u0E35\u0E48\u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49 +FooterRenderer.page=\  -  \u0E2B\u0E19\u0E49\u0E32 +Gantt.Popup.annotationStylesMenu=\u0E25\u0E31\u0E01\u0E29\u0E13\u0E30\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22 +Gantt.Popup.barStylesMenu=\u0E40\u0E21\u0E19\u0E39\u0E2A\u0E44\u0E15\u0E25\u0E4C\u0E1A\u0E32\u0E23\u0E4C +Gantt.Popup.showAssignments=\u0E41\u0E2A\u0E14\u0E07\u0E07\u0E32\u0E19 +Gantt.Popup.showCalendar=\u0E41\u0E2A\u0E14\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +Gantt.Popup.showRows=\u0E41\u0E2A\u0E14\u0E07\u0E41\u0E16\u0E27 +Gantt.Popup.splitMode=\u0E41\u0E22\u0E01 +Gantt.tooltip.Assignment=\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Gantt.tooltip.Resource=\u0E17\u0E23\u0E31\u0E22\u0E32\u0E01\u0E23 +Gantt.tooltip.Task=\u0E07\u0E32\u0E19 +Gantt.tooltip.from=\u0E08\u0E32\u0E01 +Gantt.tooltip.lag=\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Gantt.tooltip.link=\u0E25\u0E34\u0E07\u0E04\u0E4C +Gantt.tooltip.to=\u0E16\u0E36\u0E07 +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E16\u0E39\u0E01\u0E40\u0E1B\u0E34\u0E14\u0E40\u0E1B\u0E47\u0E19\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E22\u0E48\u0E2D\u0E22\u0E43\u0E19\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E23\u0E27\u0E21\u0E2D\u0E37\u0E48\u0E19\u0E41\u0E25\u0E49\u0E27 +GraphicManager.SelectedProjectAlreadySubproject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E1B\u0E47\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E43\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E23\u0E27\u0E21\u0E19\u0E35\u0E49\u0E41\u0E25\u0E49\u0E27 +Grouper.AssignmentProjectName=\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Grouper.CompleteIncomplete=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C / \u0E44\u0E21\u0E48\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +Grouper.Critical=\u0E2A\u0E33\u0E04\u0E31\u0E0D +Grouper.CriticalThenDuration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E2A\u0E33\u0E04\u0E31\u0E0D\u0E41\u0E25\u0E49\u0E27 +Grouper.Delegated=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E43\u0E2B\u0E49 +Grouper.Duration=\u0E40\u0E27\u0E25\u0E32 +Grouper.None=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E25\u0E38\u0E48\u0E21 +Grouper.ResourceGroup=\u0E01\u0E25\u0E38\u0E48\u0E21 +Grouper.ResourceType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17 +HelpDialog.About=\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A +HelpDialog.GoToOnlineHelp=\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E04\u0E27\u0E32\u0E21\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E2D\u0E2D\u0E19\u0E44\u0E25\u0E19\u0E4C +HelpDialog.ShowLicense=\u0E41\u0E2A\u0E14\u0E07\u0E25\u0E34\u0E02\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C +HelpDialog.ShowTipsOfTheDay=\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E04\u0E25\u0E47\u0E14\u0E25\u0E31\u0E1A\u0E1B\u0E23\u0E30\u0E08\u0E33\u0E27\u0E31\u0E19 +HelpDialog.WatchHowToVideos=\u0E14\u0E39\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E41\u0E19\u0E30\u0E19\u0E33\u0E27\u0E34\u0E18\u0E35\u0E01\u0E32\u0E23 +HyperLinkToolTip.SeeOnlineDemo=">\u0E14\u0E39\u0E01\u0E32\u0E23\u0E2A\u0E32\u0E18\u0E34\u0E15\u0E2D\u0E2D\u0E19\u0E44\u0E25\u0E19\u0E4C +HyperLinkToolTip.SeeOnlineHelp=">\u0E14\u0E39\u0E04\u0E27\u0E32\u0E21\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E2D\u0E2D\u0E19\u0E44\u0E25\u0E19\u0E4C +InformationDialog.AssignResources=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +InformationDialog.ChangeWorkingTime=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19 +License.Inactive=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +License.LiteUser=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E41\u0E1A\u0E1A Lite +License.PowerUser=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E41\u0E1A\u0E1A Power +LicenseDialog.CouldNotLoadLater=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E43\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E44\u0E14\u0E49 \u0E42\u0E1B\u0E23\u0E14\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E43\u0E19\u0E20\u0E32\u0E22\u0E2B\u0E25\u0E31\u0E07 +LicenseDialog.CouldNotLoadExiting=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E34\u0E14\u0E15\u0E31\u0E49\u0E07\u0E43\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E44\u0E14\u0E49 \u0E42\u0E1B\u0E23\u0E14\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E43\u0E19\u0E20\u0E32\u0E22\u0E2B\u0E25\u0E31\u0E07. \u0E42\u0E1B\u0E23\u0E41\u0E01\u0E23\u0E21\u0E08\u0E30\u0E16\u0E39\u0E01\u0E1B\u0E34\u0E14 +LicenseDialog.Email=\u0E42\u0E1B\u0E23\u0E14\u0E25\u0E07\u0E17\u0E30\u0E40\u0E1A\u0E35\u0E22\u0E19\u0E2A\u0E33\u0E40\u0E19\u0E32 ProjectLibre \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E23\u0E31\u0E1A\u0E17\u0E23\u0E32\u0E1A\u0E02\u0E48\u0E32\u0E27\u0E2A\u0E32\u0E23\u0E41\u0E25\u0E30\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E1C\u0E25\u0E34\u0E15\u0E20\u0E31\u0E13\u0E11\u0E4C +LicenseDialog.EmailLabel=\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25 +LicenseDialog.License=\u0E43\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15 +LicenseDialog.ThirdParty=\u0E1A\u0E38\u0E04\u0E04\u0E25\u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21 +LicenseOption.Administrator=Admin +LicenseOption.External=\u0E04\u0E39\u0E48\u0E04\u0E49\u0E32 / \u0E25\u0E39\u0E01\u0E04\u0E49\u0E32 +LicenseOption.Inactive=- +LocalFileImporter.Exporting=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E2A\u0E48\u0E07\u0E2D\u0E2D\u0E01 ... +LocalFileImporter.Importing=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32 ... +LoginDialog.Login=\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A: +LoginDialog.Password=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19: +LoginDialog.RememberMe=\u0E08\u0E14\u0E08\u0E33\u0E09\u0E31\u0E19\u0E43\u0E19\u0E04\u0E2D\u0E21\u0E1E\u0E34\u0E27\u0E40\u0E15\u0E2D\u0E23\u0E4C\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49 +LoginDialog.UseOfficeLook=\u0E43\u0E0A\u0E49 Office Look and Feel +LookupDialog.EnterPartOfTheName=\u0E1B\u0E49\u0E2D\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E02\u0E2D\u0E07\u0E0A\u0E37\u0E48\u0E2D\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E01\u0E33\u0E25\u0E31\u0E07\u0E21\u0E2D\u0E07\u0E2B\u0E32 +LookupDialog.Find=\u0E04\u0E49\u0E19\u0E2B\u0E32 +LookupDialog.LookupAnObject=\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E27\u0E31\u0E15\u0E16\u0E38 +LookupDialog.NoMatchesFound=\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E19 +LookupDialog.Results=\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C +LookupDialog.Type=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17: +LookupDialog.UnableToContactServer=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E40\u0E0B\u0E34\u0E23\u0E4C\u0E1F\u0E40\u0E27\u0E2D\u0E23\u0E4C +LookupField.LookupAValue=\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E04\u0E48\u0E32 +Message.ImportError=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2D\u0E48\u0E32\u0E19\u0E44\u0E1F\u0E25\u0E4C +Message.allowDeleteActuals=\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01 \u0E41\u0E19\u0E48\u0E43\u0E08\u0E44\u0E2B\u0E21\u0E27\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E25\u0E1A +Message.allowDistrbutedStartBeforeProjectStart=\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\u0E08\u0E30\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E07\u0E32\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23? +Message.allowDistrbutedStartBeforeTaskStart=\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E07\u0E32\u0E19 \u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E44\u0E23\u0E44\u0E2B\u0E21? +Message.allowTaskStartBeforeProjectStart=\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E34\u0E48\u0E21\u0E01\u0E48\u0E2D\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48  +Message.alreadyParentChildHierarchy=\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E31\u0E21\u0E1E\u0E31\u0E19\u0E18\u0E4C\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B / \u0E07\u0E32\u0E19\u0E22\u0E48\u0E2D\u0E22\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27 +Message.badTimeFormat=\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +Message.badTimeIntervals=\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +Message.cannotEnterUnits=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1B\u0E49\u0E2D\u0E19\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E43\u0E19\u0E1F\u0E34\u0E25\u0E14\u0E4C\u0E19\u0E35\u0E49 +Message.cannotLinkToSummary=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19\u0E07\u0E32\u0E19\u0E22\u0E48\u0E2D\u0E22\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B\u0E44\u0E14\u0E49 \n \u0E16\u0E49\u0E32\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E19\u0E35\u0E49\u0E43\u0E2B\u0E49\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07\u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E22\u0E48\u0E2D\u0E22\u0E44\u0E21\u0E48\u0E43\u0E2B\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E20\u0E32\u0E22\u0E43\u0E15\u0E49\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B +Message.cannotLinkTwice=\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E19\u0E35\u0E49\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27 +Message.cantEmptySpreadsheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E1F\u0E34\u0E25\u0E14\u0E4C +Message.cantLinkToClosedSubproject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E25\u0E30\u0E40\u0E02\u0E35\u0E22\u0E19\u0E44\u0E14\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22\u0E02\u0E2D\u0E07\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E21\u0E35\u0E1C\u0E25\u0E15\u0E48\u0E2D\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 +Message.cantLinkToExternal=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E07\u0E32\u0E19\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Message.cantLinkToSelf=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07\u0E07\u0E32\u0E19\u0E01\u0E31\u0E1A\u0E15\u0E31\u0E27\u0E40\u0E2D\u0E07\u0E44\u0E14\u0E49 +Message.circularDependency=\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E08\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E31\u0E21\u0E1E\u0E31\u0E19\u0E18\u0E4C\u0E01\u0E32\u0E23\u0E1E\u0E36\u0E48\u0E07\u0E1E\u0E32\u0E41\u0E1A\u0E1A\u0E27\u0E19\u0E23\u0E2D\u0E1A\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E2D\u0E37\u0E48\u0E19 \u0E46 +Message.confirmDeleteRows=\u0E41\u0E19\u0E48\u0E43\u0E08\u0E44\u0E2B\u0E21\u0E27\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E25\u0E1A\u0E1A\u0E23\u0E23\u0E17\u0E31\u0E14\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49 +# {0} öncül görevin ad\u0131d\u0131r, {1} ard\u0131l görevin ad\u0131d\u0131r +Message.crossProjectCircularDependency.mf=\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E02\u0E49\u0E32\u0E21\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E08\u0E32\u0E01 {0} \u0E16\u0E36\u0E07 {1} \u0E08\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E31\u0E21\u0E1E\u0E31\u0E19\u0E18\u0E4C\u0E41\u0E1A\u0E1A\u0E1E\u0E36\u0E48\u0E07\u0E1E\u0E32\u0E27\u0E31\u0E0F\u0E08\u0E31\u0E01\u0E23\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E2D\u0E37\u0E48\u0E19 \u0E46 \u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E41\u0E25\u0E30\u0E17\u0E33\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22\u0E40\u0E2A\u0E49\u0E19\u0E1B\u0E23\u0E30 +Message.errorCalendarMustHaveWorkingDay=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E27\u0E31\u0E19\u0E17\u0E33\u0E07\u0E32\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E27\u0E31\u0E19 +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=\u0E04\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 {1, number, percent} +# {0,number,percent} is the minimum  percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=\u0E04\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E04\u0E48\u0E32\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22 {0, number, percent} +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=\u0E04\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E0A\u0E48\u0E27\u0E07\u0E15\u0E31\u0E49\u0E07\u0E41\u0E15\u0E48 {0, number} \u0E16\u0E36\u0E07 {1, number} +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=\u0E04\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 {1, number} +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=\u0E04\u0E48\u0E32\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E04\u0E48\u0E32\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22 {0, number} +Message.importCircularLink=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E31\u0E21\u0E1E\u0E31\u0E19\u0E18\u0E4C\u0E41\u0E1A\u0E1A\u0E27\u0E07\u0E01\u0E25\u0E21\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49 +Message.invalidAssignments=\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E1B\u0E49\u0E2D\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E08\u0E32\u0E01\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E42\u0E14\u0E22\u0E04\u0E31\u0E48\u0E19\u0E14\u0E49\u0E27\u0E22\u0E2D\u0E31\u0E01\u0E02\u0E23\u0E30\u0E15\u0E31\u0E27\u0E04\u0E31\u0E48\u0E19\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 ";" \u0E2B\u0E32\u0E01\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32 100% \u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E43\u0E19\u0E27\u0E07\u0E40\u0E25\u0E47\u0E1A: \u0E40\u0E0A\u0E48\u0E19 \u0E04\u0E25\u0E32\u0E23\u0E4C\u0E01\u0E40\u0E04\u0E19\u0E17\u0E4C [50%]; \u0E42\u0E25\u0E2D\u0E34\u0E2A\u0E40\u0E25\u0E19 +Message.invalidChoice=\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +Message.invalidCost=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \u0E19\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E04\u0E27\u0E23\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 \u0E2A\u0E31\u0E0D\u0E25\u0E31\u0E01\u0E29\u0E13\u0E4C\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19\u0E40\u0E1B\u0E47\u0E19\u0E17\u0E32\u0E07\u0E40\u0E25\u0E37\u0E2D\u0E01 \n \u0E2A\u0E31\u0E0D\u0E25\u0E31\u0E01\u0E29\u0E13\u0E4C\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E23\u0E30\u0E1A\u0E1A\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 +Message.invalidDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \u0E19\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E2B\u0E23\u0E37\u0E2D\u0E2D\u0E22\u0E39\u0E48\u0E19\u0E2D\u0E01\u0E0A\u0E48\u0E27\u0E07\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E0B\u0E36\u0E48\u0E07\u0E04\u0E37\u0E2D 01 \u0E21\u0E01\u0E23\u0E32\u0E04\u0E21 1970 \u0E16\u0E36\u0E07 31 \u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21 2049 \ n \u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E04\u0E37\u0E2D\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E02\u0E2D\u0E07\u0E23\u0E30\u0E1A\u0E1A\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 \u0E40\u0E0A\u0E48\u0E19 \: 3/12/06 \u0E2B\u0E23\u0E37\u0E2D 3 \u0E21\u0E35.\u0E04. 2006 +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf=\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 {0} \n \u0E42\u0E1B\u0E23\u0E14\u0E43\u0E0A\u0E49\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02 ID \u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \ u00B7 {0} \u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E08\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E1B\u0E47\u0E19 \: {0} \u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02 ID, \u0E01\u0E32\u0E23\u0E2D\u0E49\u0E32\u0E07\u0E2D\u0E34\u0E07, \u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07\u0E21\u0E2D\u0E1A / \u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 \n \ u00B7 \u0E04\u0E38\u0E13\u0E22\u0E31\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E42\u0E15\u0E49\u0E15\u0E2D\u0E1A\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19  +Message.invalidDuration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \u0E19\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E04\u0E48\u0E32\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \u0E42\u0E1B\u0E23\u0E14\u0E25\u0E2D\u0E07\u0E43\u0E0A\u0E49\u0E04\u0E48\u0E32\u0E40\u0E0A\u0E48\u0E19 24 \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07 (24 \u0E0A\u0E21.), 3 \u0E27\u0E31\u0E19 (3 \u0E27\u0E31\u0E19) \u0E2B\u0E23\u0E37\u0E2D 9 \u0E27\u0E31\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E1C\u0E48\u0E32\u0E19\u0E44\u0E1B +Message.invalidInput=\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +Message.invalidIntersection=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E04\u0E33\u0E19\u0E27\u0E13\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \n \u0E21\u0E35\u0E40\u0E27\u0E25\u0E32\u0E44\u0E21\u0E48\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E1E\u0E2D\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E15\u0E32\u0E21\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 \n \u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E08\u0E30\u0E16\u0E39\u0E01\u0E25\u0E30\u0E40\u0E27\u0E49\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49 \n \u0E43\u0E19\u0E01\u0E32\u0E23\u0E41\u0E01\u0E49\u0E44\u0E02\u0E2A\u0E16\u0E32\u0E19\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E07\u0E32\u0E19\u0E2B\u0E23\u0E37\u0E2D\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E2B\u0E23\u0E37\u0E2D\u0E43\u0E0A\u0E49\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01 "\u0E25\u0E30\u0E40\u0E27\u0E49\u0E19\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23" \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E19\u0E31\u0E49\u0E19 +Message.invalidRate=\u0E19\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E07\u0E32\u0E19 (\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E27\u0E31\u0E2A\u0E14\u0E38) \u0E43\u0E2B\u0E49\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E08\u0E33\u0E19\u0E27\u0E19\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E15\u0E32\u0E21\u0E14\u0E49\u0E27\u0E22\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E31\u0E1A (/) \u0E08\u0E32\u0E01\u0E19\u0E31\u0E49\u0E19\u0E43\u0E0A\u0E49\u0E15\u0E31\u0E27\u0E22\u0E48\u0E2D\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 \u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E0A\u0E48\u0E19 "100 / h" \n \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E43\u0E2B\u0E49\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E08\u0E33\u0E19\u0E27\u0E19\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E42\u0E14\u0E22\u0E44\u0E21\u0E48\u0E21\u0E35\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E31\u0E1A\u0E41\u0E25\u0E30\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 \n \u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E0A\u0E48\u0E19 "10" \u0E2B\u0E32\u0E01\u0E09\u0E25\u0E32\u0E01\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E04\u0E37\u0E2D "\u0E1A\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E25" \u0E01\u0E47\u0E2B\u0E21\u0E32\u0E22\u0E04\u0E27\u0E32\u0E21\u0E27\u0E48\u0E32 "$ 10 / \u0E1A\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E25" +Message.invaliidUnits=\u0E19\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E04\u0E48\u0E32\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 \n \n \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E43\u0E19\u0E07\u0E32\u0E19 (\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E27\u0E31\u0E2A\u0E14\u0E38) \u0E43\u0E2B\u0E49\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 \n \n \u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E01\u0E49\u0E44\u0E02\u0E2B\u0E23\u0E37\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E44\u0E14\u0E49 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E04\u0E07\u0E17\u0E35\u0E48\u0E43\u0E2B\u0E49\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E04\u0E48\u0E32\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 \u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E0A\u0E48\u0E19 "10" \u0E08\u0E30\u0E2B\u0E21\u0E32\u0E22\u0E16\u0E36\u0E07 "10 \u0E1A\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E25" \u0E2B\u0E32\u0E01\u0E09\u0E25\u0E32\u0E01\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E04\u0E37\u0E2D "\u0E1A\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E25" \n \n \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E27\u0E31\u0E2A\u0E14\u0E38\u0E41\u0E1A\u0E1A\u0E41\u0E1B\u0E23\u0E1C\u0E31\u0E19\u0E43\u0E2B\u0E49\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E04\u0E48\u0E32\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E15\u0E32\u0E21\u0E14\u0E49\u0E27\u0E22\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E31\u0E1A (/) \u0E08\u0E32\u0E01\u0E19\u0E31\u0E49\u0E19\u0E15\u0E32\u0E21\u0E14\u0E49\u0E27\u0E22\u0E15\u0E31\u0E27\u0E22\u0E48\u0E2D\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A \u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 \u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E0A\u0E48\u0E19 "10 / M" \u0E08\u0E30\u0E2B\u0E21\u0E32\u0E22\u0E16\u0E36\u0E07 "12 \u0E1A\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E25\u0E15\u0E48\u0E2D\u0E40\u0E14\u0E37\u0E2D\u0E19" +Message.notAResource=\u0E2D\u0E07\u0E04\u0E4C\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Message.notATask=\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E07\u0E32\u0E19 +Message.onlyReplaceOneResourceAtATime=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E17\u0E19\u0E17\u0E35\u0E48\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E44\u0E14\u0E49\u0E04\u0E23\u0E31\u0E49\u0E07\u0E25\u0E30\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +Message.onlySelectOneElement=\u0E04\u0E27\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E35\u0E25\u0E30\u0E2D\u0E07\u0E04\u0E4C\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +Message.parentConstraintType=\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B \u0E44\u0E14\u0E49\u0E41\u0E01\u0E48 "\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14" "\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14" \u0E2B\u0E23\u0E37\u0E2D "\u0E0A\u0E49\u0E32\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14" \u0E2B\u0E32\u0E01\u0E04\u0E38\u0E13\u0E01\u0E33\u0E25\u0E31\u0E07\u0E43\u0E0A\u0E49\u0E01\u0E32\u0E23\u0E08\u0E31\u0E1A\u0E40\u0E27\u0E25\u0E32\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A\u0E43\u0E2B\u0E49\u0E43\u0E0A\u0E49\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01 "\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E40\u0E17\u0E48\u0E32\u0E17\u0E35\u0E48\u0E08\u0E30\u0E17\u0E33\u0E44\u0E14\u0E49" \u0E41\u0E17\u0E19 "\u0E40\u0E23\u0E47\u0E27\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E40\u0E17\u0E48\u0E32\u0E17\u0E35\u0E48\u0E08\u0E30\u0E17\u0E33\u0E44\u0E14\u0E49" +Message.parentSuccessorCannotHaveFinishLink=Successor \u0E02\u0E2D\u0E07\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E47\u0E19 End-Start \u0E2B\u0E23\u0E37\u0E2D Start-Start \u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19  +Message.projectAlreadyExists=\u0E21\u0E35\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E19\u0E35\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27 \u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E44\u0E2B\u0E21 +Message.projectMustHaveName=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 " +Message.renameProject2=" \u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27\u0E1A\u0E19\u0E40\u0E0B\u0E34\u0E23\u0E4C\u0E1F\u0E40\u0E27\u0E2D\u0E23\u0E4C \u0E42\u0E1B\u0E23\u0E14\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E0A\u0E37\u0E48\u0E2D\u0E2D\u0E37\u0E48\u0E19 +Message.saveProjectAs1=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 " +Message.saveProjectAs2=" \u0E14\u0E49\u0E27\u0E22 +Message.saveProjectBeforeClosing1=\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E01\u0E32\u0E23\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07\u0E43\u0E19 " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E08\u0E30\u0E16\u0E39\u0E01\u0E41\u0E1B\u0E25\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E07\u0E32\u0E19\u0E1B\u0E01\u0E15\u0E34 \u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E44\u0E14\u0E49 \u0E21\u0E32\u0E15\u0E48\u0E2D\u0E01\u0E31\u0E19\u0E40\u0E25\u0E22? +Message.synchronizeResources=\u0E0B\u0E34\u0E07\u0E42\u0E04\u0E23\u0E44\u0E19\u0E0B\u0E4C\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E01\u0E31\u0E1A\u0E40\u0E0B\u0E34\u0E23\u0E4C\u0E1F\u0E40\u0E27\u0E2D\u0E23\u0E4C? +Message.tooManyResourcesSelectedToList.mf={0, number} \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01 (\u0E21\u0E35\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E21\u0E32\u0E01\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B) +Message.tooManyTasksSelectedToList.mf={0, number} \u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01 (\u0E21\u0E35\u0E21\u0E32\u0E01\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E08\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14) +MicrosoftImporter.ErrorImportingXML=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32\u0E44\u0E1F\u0E25\u0E4C XML \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32\u0E44\u0E14\u0E49\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E44\u0E1F\u0E25\u0E4C XML \u0E17\u0E35\u0E48\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E14\u0E49\u0E27\u0E22 MS Project \u0E2B\u0E23\u0E37\u0E2D Planner +MicrosoftImporter.ImportWithSubprojects=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A\u0E14\u0E49\u0E27\u0E22\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 \u0E1E\u0E27\u0E01\u0E40\u0E02\u0E32\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32\u0E14\u0E49\u0E27\u0E22\u0E15\u0E19\u0E40\u0E2D\u0E07 \u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E1E\u0E27\u0E01\u0E40\u0E02\u0E32\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07\u0E04\u0E37\u0E2D: +MicrosoftImporter.Importing=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32 ... +MicrosoftImporter.PrepareResources=\u0E40\u0E15\u0E23\u0E35\u0E22\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Network.Popup.barStylesMenu=\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E40\u0E21\u0E19\u0E39 +NewBaseCalendarDialog.CreateACopyOfCalendar=\u0E17\u0E33\u0E2A\u0E33\u0E40\u0E19\u0E32\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +NewBaseCalendarDialog.CreateANewBaseCalendar=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E10\u0E32\u0E19\u0E43\u0E2B\u0E21\u0E48 +NewBaseCalendarDialog.Name=\u0E0A\u0E37\u0E48\u0E2D +NewBaseCalendarDialog.NewBaseCalendar=\ \u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19\u0E43\u0E2B\u0E21\u0E48 +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=\u0E25\u0E47\u0E2D\u0E04\u0E42\u0E14\u0E22 +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=\u0E22\u0E34\u0E19\u0E14\u0E35\u0E15\u0E49\u0E2D\u0E19\u0E23\u0E31\u0E1A\u0E2A\u0E39\u0E48 ProjectLibre +OpenProjectDialog.CreationDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E23\u0E49\u0E32\u0E07 +OpenProjectDialog.ModificationDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E01\u0E49\u0E44\u0E02 +OpenProjectDialog.Name=\u0E0A\u0E37\u0E48\u0E2D +Open_Title.ProjityError=\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 ProjectLibre +Open_Title.ProjityWarning=\u0E04\u0E33\u0E40\u0E15\u0E37\u0E2D\u0E19 ProjectLibre +PageSetupDialog.Margins=\u0E23\u0E30\u0E22\u0E30\u0E02\u0E2D\u0E1A +PageSetupDialog.Margins.Left=\u0E0B\u0E49\u0E32\u0E22 (mm) +PageSetupDialog.Margins.Right=\u0E02\u0E27\u0E32 (mm) +PageSetupDialog.Margins.Top=\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19 (mm) +PageSetupDialog.Margins.Bottom=\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07 (mm) +PageSetupDialog.Orientation=\u0E01\u0E32\u0E23\u0E27\u0E32\u0E07\u0E41\u0E19\u0E27\u0E01\u0E23\u0E30\u0E14\u0E32\u0E29 +PageSetupDialog.Orientation.Landscape=\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19 +PageSetupDialog.Orientation.Portrait=\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07 +PageSetupDialog.Orientation.ReverseLandscape=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E1B\u0E47\u0E19\u0E41\u0E19\u0E27\u0E19\u0E2D\u0E19 +PageSetupDialog.Page=\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.Paper=\u0E01\u0E23\u0E30\u0E14\u0E32\u0E29 +PageSetupDialog.PaperFormat.Custom=\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E2D\u0E07 +PageSetupDialog.PaperSize=\u0E02\u0E19\u0E32\u0E14\u0E01\u0E23\u0E30\u0E14\u0E32\u0E29 +PageSetupDialog.PaperSizeSettings.Custom=\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E2D\u0E07 +PageSetupDialog.PaperSizeSettings.Custom.Width=\u0E04\u0E27\u0E32\u0E21\u0E01\u0E27\u0E49\u0E32\u0E07 (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E39\u0E07 (mm): +PageSetupDialog.PaperSizeSettings.Printer=\u0E43\u0E0A\u0E49\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C +PageSetupDialog.PaperSizeSettings.SinglePage=\u0E2B\u0E19\u0E49\u0E32\u0E40\u0E14\u0E35\u0E22\u0E27\u0E02\u0E19\u0E32\u0E14\u0E43\u0E2B\u0E0D\u0E48 +PageSetupDialog.PaperSizeSettings.SinglePage2=(PDF \u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19) +PageSetupDialog.Printers=\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C +PageSetupDialog.PrinterPageSetup=\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=\u0E43\u0E0A\u0E49\u0E44\u0E14\u0E49\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E43\u0E19 +PageSetupDialog.PODOnly2=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E2D\u0E19\u0E14\u0E35\u0E21\u0E32\u0E19\u0E14\u0E4C +PageSetupDialog.Refresh=\u0E23\u0E35\u0E40\u0E1F\u0E23\u0E0A +PageSetupDialog.SaveSettings=\u0E15\u0E31\u0E49\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +PageSetupDialog.SaveSettings.ToolTip=\u0E15\u0E31\u0E49\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E01\u0E32\u0E23\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +PageSetupDialog.SaveWebPDFSettings=\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E27\u0E47\u0E1A\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +PageSetupDialog.SaveWebPDFSettings.ToolTip=\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E20\u0E32\u0E1E PDF \u0E1A\u0E19\u0E40\u0E27\u0E47\u0E1A +PageSetupDialog.Settings.Label=\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 +PageSetupDialog.Settings.Local=Local +PageSetupDialog.Settings.WebPDF=Web PDF +PageSetupDialog.Scaling=\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E02\u0E19\u0E32\u0E14 +PageSetupDialog.Scaling.FitTo=\u0E1E\u0E2D\u0E14\u0E35: +PageSetupDialog.Scaling.FitToHeight=\u0E16\u0E36\u0E07\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E39\u0E07\u0E02\u0E2D\u0E07\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.Scaling.FitToWidth=\u0E04\u0E27\u0E32\u0E21\u0E01\u0E27\u0E49\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.Scaling.ScaleTo=\u0E21\u0E32\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19: +PageSetupDialog.Scaling.ScaleToHeight=\u0E16\u0E36\u0E07\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E39\u0E07\u0E02\u0E2D\u0E07\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.Scaling.ScaleToWidth=\u0E04\u0E27\u0E32\u0E21\u0E01\u0E27\u0E49\u0E32\u0E07\u0E02\u0E2D\u0E07\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.Scaling.ScaleToProportions=\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 +PageSetupDialog.Scaling.ScaleToProportions2=\u0E23\u0E32\u0E04\u0E32 +PageSetupDialog.ShowGantt=Gantt +PageSetupDialog.ShowParts=\u0E44\u0E14\u0E2D\u0E30\u0E41\u0E01\u0E23\u0E21 +PageSetupDialog.ShowSpreadSheet=\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15 +PageSetupDialog.Title=\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E2B\u0E19\u0E49\u0E32 +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23 PDF \u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E42\u0E1B\u0E23\u0E14\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C +PersonalContour.personal=\u0E2A\u0E48\u0E27\u0E19\u0E1A\u0E38\u0E04\u0E04\u0E25 +ProjectStatus.ACTIVE=\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E39\u0E48 +PreviewPanel.Preview=\u0E14\u0E39\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07 +PreviewPanelEnd.Preview=\u0E14\u0E39\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07 +ProjectDialog.AllResourcesExceptCustomerPartner=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 (\u0E22\u0E01\u0E40\u0E27\u0E49\u0E19\u0E25\u0E39\u0E01\u0E04\u0E49\u0E32 / \u0E04\u0E39\u0E48\u0E04\u0E49\u0E32) +ProjectDialog.Notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22: +ProjectInformationDialog.ProjectInformation=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +ProjectStatus.CANCELLED=\u0E16\u0E39\u0E01\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 +ProjectStatus.COMPLETED=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E40\u0E23\u0E35\u0E22\u0E1A\u0E23\u0E49\u0E2D\u0E22 +ProjectDialog.NewProject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E21\u0E48 +ProjectDialog.StartDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19: +ProjectDialog.FinishDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19: +ProjectStatus.ON_HOLD=\u0E23\u0E2D\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23 +ProjectDialog.Manager=\u0E1C\u0E39\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23: +ProjectStatus.PENDING_APPROVAL=\u0E01\u0E33\u0E25\u0E31\u0E07\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34 +ProjectStatus.PLANNING=\u0E27\u0E32\u0E07\u0E41\u0E1C\u0E19 +ProjectType.EVENT_PLANNING=\u0E01\u0E32\u0E23\u0E27\u0E32\u0E07\u0E41\u0E1C\u0E19\u0E07\u0E32\u0E19 +ProjectType.IT=\u0E21\u0E31\u0E19 +ProjectType.MARKETING_CAMPAIGN=\u0E41\u0E04\u0E21\u0E40\u0E1B\u0E0D\u0E01\u0E32\u0E23\u0E15\u0E25\u0E32\u0E14 +ProjectInformationDialog.Notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22 +PrintPreviewFrame.PrintPreview=\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C +ProjectType.OTHER=\u0E2D\u0E37\u0E48\u0E19 \u0E46 +ProjectType.PRODUCT_DEVELOPMENT=\u0E01\u0E32\u0E23\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E1C\u0E25\u0E34\u0E15\u0E20\u0E31\u0E13\u0E11\u0E4C +ProjectType.PROFESSIONAL_SERVICES=\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23\u0E23\u0E30\u0E14\u0E31\u0E1A\u0E21\u0E37\u0E2D\u0E2D\u0E32\u0E0A\u0E35\u0E1E +ProjectInformationDialog.Statistics=\u0E2A\u0E16\u0E34\u0E15\u0E34 +ProjectDialog.BasedOnProjectRole=\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A\u0E1A\u0E17\u0E1A\u0E32\u0E17\u0E02\u0E2D\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ProjectInformationDialog.General=\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B +ProjectType.SALES_CAMPAIGN=\u0E41\u0E04\u0E21\u0E40\u0E1B\u0E0D\u0E01\u0E32\u0E23\u0E02\u0E32\u0E22 +ProjectDialog.ProjectName=\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23: +ProjectDialog.ProjectTeam=\u0E17\u0E35\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23: +ProjectType.TECHNICAL_SUPPORT=\u0E01\u0E32\u0E23\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19\u0E17\u0E32\u0E07\u0E40\u0E17\u0E04\u0E19\u0E34\u0E04 +RenameDialog.AnotherItemWithThatNameAlreadyExists=\u0E21\u0E35\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2D\u0E37\u0E48\u0E19\u0E17\u0E35\u0E48\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D\u0E19\u0E35\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27 +RenameDialog.NewName=\u0E0A\u0E37\u0E48\u0E2D\u0E43\u0E2B\u0E21\u0E48 +RenameDialog.Rename=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D +RenameDialog.TheNameCannotBeEmpty=\u0E0A\u0E37\u0E48\u0E2D\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E07\u0E40\u0E1B\u0E25\u0E48\u0E32 +RenameProjectDialog.NewProject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E21\u0E48 +RenameProjectDialog.NewProjectName=\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E21\u0E48: +RenameProjectDialog.RenameProject=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +ReportView.Columns=\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C: +ReportView.Report=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19: +RequestDemandType.Demand=\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 +RenameDialog.CurrentName=\u0E0A\u0E37\u0E48\u0E2D\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +RequestDemandType.None=- +RequestDemandType.Request=\u0E02\u0E2D +ResourceAdditionDialog.ResourceMerging=\u0E01\u0E32\u0E23\u0E23\u0E27\u0E21\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E17\u0E35\u0E48\u0E21\u0E32 +ResourceAdditionDialog.SelectResourcesToAdd=\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E08\u0E30\u0E40\u0E1E\u0E34\u0E48\u0E21 +ResourceIndicatorsComponent.Administrator=\ (Admin) +ResourceIndicatorsComponent.PartnerCustomer=\ (\u0E04\u0E39\u0E48\u0E04\u0E49\u0E32 / \u0E25\u0E39\u0E01\u0E04\u0E49\u0E32) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E19\u0E35\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E17\u0E35\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
+ResourceIndicatorsComponent.UserLicense=\u0E43\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49: +ResourceInformationDialog.AssignedToTasks=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E43\u0E2B\u0E49\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E19\u0E35\u0E49: +ResourceInformationDialog.Costs=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +ResourceInformationDialog.General=\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B +ResourceInformationDialog.Notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22 +ResourceInformationDialog.ResourceAvailability=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E02\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ResourceInformationDialog.ResourceInformation=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ResourceInformationDialog.Tasks=\u0E07\u0E32\u0E19 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 (\u0E22\u0E01\u0E40\u0E27\u0E49\u0E19\u0E25\u0E39\u0E01\u0E04\u0E49\u0E32 / \u0E04\u0E39\u0E48\u0E04\u0E49\u0E32) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=\u0E15\u0E32\u0E21\u0E1A\u0E17\u0E1A\u0E32\u0E17\u0E02\u0E2D\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u0E1C\u0E2A\u0E32\u0E19\u0E40\u0E1B\u0E34\u0E14\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E41\u0E1A\u0E1A\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 +ResourceMappingDialog.ImportedResources=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E19\u0E33\u0E40\u0E02\u0E49\u0E32 +ResourceMappingDialog.MergeResourcesUsingField=\u0E23\u0E27\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E42\u0E14\u0E22\u0E43\u0E0A\u0E49\u0E1E\u0E37\u0E49\u0E19\u0E17\u0E35\u0E48 +ResourceMappingDialog.ProjectTeam=\u0E17\u0E35\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23: +ResourceMappingDialog.ResourceMerging=\u0E01\u0E32\u0E23\u0E23\u0E27\u0E21\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E17\u0E35\u0E48\u0E21\u0E32 +ResourceMappingDialog.ServerResources=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E40\u0E0B\u0E34\u0E23\u0E4C\u0E1F\u0E40\u0E27\u0E2D\u0E23\u0E4C +ResourceType.Location=\u0E2A\u0E16\u0E32\u0E19\u0E17\u0E35\u0E48 +ResourceType.Machine=\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07 +ResourceType.Material=\u0E27\u0E31\u0E2A\u0E14\u0E38 +ResourceType.Other=\u0E2D\u0E37\u0E48\u0E19\u0E46 +ResourceType.Work=\u0E17\u0E33\u0E07\u0E32\u0E19 +ResourceView.ThisResourceCurrentlyHasAssignments=.  \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E19\u0E35\u0E49\u0E21\u0E35\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +ResourceView.ToMoveAProtectedResource=\u0E43\u0E19\u0E01\u0E32\u0E23\u0E22\u0E49\u0E32\u0E22\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E0A\u0E31\u0E49\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E44\u0E14\u0E49\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E25\u0E34\u0E07\u0E01\u0E4C\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 RBS +ResourceView.UsersCanOnlyBeRemoved=. \u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E16\u0E39\u0E01\u0E25\u0E1A\u0E2D\u0E2D\u0E01\u0E2B\u0E23\u0E37\u0E2D\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E1A\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E40\u0E27\u0E47\u0E1A\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 +ResourceView.YouCannotDeleteTheResource=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E19\u0E35\u0E49\u0E44\u0E14\u0E49: +Role.Inactive=\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Role.ProjectManager=\u0E1C\u0E39\u0E49\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Role.TeamMember=\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E43\u0E19\u0E17\u0E35\u0E21 +SchedulingType.FixedDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 +ScheduleDialogBox.Percentage=\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C +ScheduleDialogBox.FixedDuration=\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 +ScheduleDialogBox.FixedUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E04\u0E07\u0E17\u0E35\u0E48 +ScheduleDialogBox.FixedWork=\u0E07\u0E32\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48 +ScheduleDialogBox.SetAsDefault=\u0E15\u0E31\u0E49\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +ScheduleDialogBox.WorkIsEnteredIn=\ \u0E07\u0E32\u0E19\u0E40\u0E02\u0E49\u0E32\u0E41\u0E25\u0E49\u0E27 +ScheduleDialogBox.DefaultTaskType=\  \u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E07\u0E32\u0E19\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +SchedulingType.FixedUnits=\u0E2B\u0E19\u0E48\u0E27\u0E22\u0E04\u0E07\u0E17\u0E35\u0E48 +ScheduleDialogBox.Schedule=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +ScheduleDialogBox.Decimal=\u0E17\u0E28\u0E19\u0E34\u0E22\u0E21 +ScheduleDialogBox.Minutes=\u0E19\u0E32\u0E17\u0E35 +ScheduleDialogBox.NewTask=\  \u0E07\u0E32\u0E19\u0E43\u0E2B\u0E21\u0E48 +SchedulingType.FixedWork=\u0E07\u0E32\u0E19\u0E04\u0E07\u0E17\u0E35\u0E48 +ScheduleDialogBox.Hours=\u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07 +ScheduleDialogBox.Days=\u0E27\u0E31\u0E19 +ScheduleDialogBox.Weeks=\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C +ScheduleDialogBox.Months=\u0E40\u0E14\u0E37\u0E2D\u0E19 +Sorter.AssignmentProjectName=\u0E0A\u0E37\u0E48\u0E2D\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Sorter.CompleteIncomplete=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C / \u0E44\u0E21\u0E48\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C +Sorter.Cost=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +Sorter.CostOverbudget=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22\u0E40\u0E01\u0E34\u0E19\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Sorter.CostPerUse=\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19\u0E15\u0E48\u0E2D\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Sorter.Critical=\u0E2A\u0E33\u0E04\u0E31\u0E0D +Sorter.Delegated=\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E07\u0E32\u0E19 +Sorter.Duration=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32 +Sorter.DurationThenCost=\u0E23\u0E30\u0E22\u0E30\u0E40\u0E27\u0E25\u0E32\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +Sorter.FinishDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +Sorter.Name=\u0E0A\u0E37\u0E48\u0E2D +Sorter.None=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E2D\u0E31\u0E19\u0E14\u0E31\u0E1A +Sorter.OvertimeRate=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E25\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32 +Sorter.ResourceGroup=\u0E01\u0E25\u0E38\u0E48\u0E21 +Sorter.ResourceType=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17 +Sorter.StandardRate=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E21\u0E32\u0E15\u0E23\u0E10\u0E32\u0E19 +Sorter.StartDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Spreadsheet.Action.collapse=\u0E22\u0E38\u0E1A +Spreadsheet.Action.copy=\u0E2A\u0E33\u0E40\u0E19\u0E32 +Spreadsheet.Action.cut=\u0E15\u0E31\u0E14 +Spreadsheet.Action.delete=\u0E25\u0E1A +Spreadsheet.Action.expand=\u0E02\u0E22\u0E32\u0E22 +Spreadsheet.Action.indent=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +Spreadsheet.Action.new=\u0E43\u0E2B\u0E21\u0E48 +Spreadsheet.Action.outdent=\u0E25\u0E14\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +Spreadsheet.Action.paste=\u0E27\u0E32\u0E07 +Spreadsheet.Assignment.resourceUsage=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Spreadsheet.Assignment.taskUsage=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Spreadsheet.AssignmentEntry.assignResources=\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Spreadsheet.AssignmentEntry.replaceResources=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Spreadsheet.Dependency.predecessors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +Spreadsheet.Dependency.successors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +Spreadsheet.Project.default=\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Spreadsheet.Project.portfolio=\u0E41\u0E1F\u0E49\u0E21\u0E2A\u0E30\u0E2A\u0E21\u0E1C\u0E25\u0E07\u0E32\u0E19 +Spreadsheet.Project.properties=\u0E04\u0E38\u0E13\u0E2A\u0E21\u0E1A\u0E31\u0E15\u0E34 +Spreadsheet.Resource.earnedValue=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A +Spreadsheet.Resource.earnedValueCostIndicators=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A - \u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Spreadsheet.Resource.earnedValueScheduleIndicators=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A - \u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +Spreadsheet.Resource.entryWorkResources=\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +Spreadsheet.ResourceAssignment.reportAssignmentResource=\u0E0A\u0E37\u0E48\u0E2D\u0E41\u0E25\u0E30\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48 +Spreadsheet.ResourceAssignment.reportAssignmentTask=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22 +Spreadsheet.ResourceAssignment.resources=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E40\u0E09\u0E1E\u0E32\u0E30 +Spreadsheet.ResourceAssignment.tasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Spreadsheet.ResourceTimesheet.status=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E44\u0E17\u0E21\u0E4C\u0E44\u0E25\u0E19\u0E4C +Spreadsheet.ResourceUsage.default=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 (\u0E01\u0E32\u0E23\u0E41\u0E08\u0E01\u0E08\u0E48\u0E32\u0E22) +Spreadsheet.nameOnly=\u0E0A\u0E37\u0E48\u0E2D\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27 +Spreadsheet.Task.baseline=\u0E02\u0E31\u0E49\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Spreadsheet.Task.constraintDates=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 \u0E08\u0E33\u0E01\u0E31\u0E14 +Spreadsheet.Task.cost=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +Spreadsheet.Task.delay=\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Spreadsheet.Task.earnedValue=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A +Spreadsheet.Task.earnedValueCostIndicators=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A - \u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Spreadsheet.Task.earnedValueScheduleIndicators=\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A - \u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +Spreadsheet.Task.entry=\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +SpreadSheetColumnMenu.InsertColumn=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C ... +Spreadsheet.Task.schedule=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +Spreadsheet.Task.summary=\u0E2A\u0E23\u0E38\u0E1B +Spreadsheet.Task.tracking=\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 +Spreadsheet.Task.usage=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Spreadsheet.Task.variance=\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1B\u0E23\u0E1B\u0E23\u0E27\u0E19\u0E02\u0E2D\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +Spreadsheet.TaskAssignment.reportAssignmentResource=\u0E0A\u0E37\u0E48\u0E2D\u0E41\u0E25\u0E30\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48 +Spreadsheet.TaskAssignment.reportAssignmentTask=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E07\u0E48\u0E32\u0E22 +Spreadsheet.TaskAssignment.resources=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E40\u0E09\u0E1E\u0E32\u0E30 +Spreadsheet.TaskAssignment.tasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Spreadsheet.TaskTimesheet.status=\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E44\u0E17\u0E21\u0E4C\u0E44\u0E25\u0E19\u0E4C +Spreadsheet.TaskUsage.default=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 (\u0E01\u0E32\u0E23\u0E41\u0E08\u0E01\u0E08\u0E48\u0E32\u0E22) +Spreadsheet.Timesheet.Default=\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E44\u0E17\u0E21\u0E4C\u0E0A\u0E35\u0E17 +Spreadsheet.Timesheet.completion=\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +SpreadSheetColumnMenu.HideColumn=\u0E0B\u0E48\u0E2D\u0E19\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C +Spreadsheet.availability=\u0E04\u0E27\u0E32\u0E21\u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +Spreadsheet.costRates=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E2A\u0E48\u0E27\u0E19\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Spreadsheet.empty=\u0E27\u0E48\u0E32\u0E07 +StandardContour.backLoaded=\u0E15\u0E49\u0E2D\u0E07\u0E04\u0E37\u0E19\u0E04\u0E48\u0E32 +StandardContour.bell=\u0E01\u0E23\u0E30\u0E14\u0E34\u0E48\u0E07 +StandardContour.doublePeak=\u0E08\u0E38\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14\u0E2A\u0E2D\u0E07\u0E04\u0E23\u0E31\u0E49\u0E07 +StandardContour.earlyPeak=\u0E08\u0E38\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14\u0E43\u0E19\u0E0A\u0E48\u0E27\u0E07\u0E15\u0E49\u0E19 +StandardContour.flat=\u0E41\u0E1A\u0E19 +StandardContour.frontLoaded=\u0E42\u0E2B\u0E25\u0E14\u0E44\u0E27\u0E49\u0E41\u0E25\u0E49\u0E27 +StandardContour.latePeak=\u0E08\u0E38\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14\u0E0A\u0E48\u0E27\u0E07\u0E1B\u0E25\u0E32\u0E22 +StandardContour.plateau=\u0E17\u0E35\u0E48\u0E23\u0E32\u0E1A\u0E2A\u0E39\u0E07 +Styles.Annotation.milestone=\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E2A\u0E33\u0E04\u0E31\u0E0D +Styles.Annotation.normal=\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E1B\u0E01\u0E15\u0E34 +Styles.Bar.Row.assignment=\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Styles.Bar.Row.baseline10=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 10 +Styles.Bar.Row.baseline1=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 1 +Styles.Bar.Row.baseline2=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 2 +Styles.Bar.Row.baseline3=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 3 +Styles.Bar.Row.baseline4=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 4 +Styles.Bar.Row.baseline5=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 5 +Styles.Bar.Row.baseline6=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 6 +Styles.Bar.Row.baseline7=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 7 +Styles.Bar.Row.baseline8=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 8 +Styles.Bar.Row.baseline9=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 9 +Styles.Bar.Row.baseline=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Styles.Bar.Row.critical=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E2A\u0E33\u0E04\u0E31\u0E0D +Styles.Bar.Row.deadline=\u0E40\u0E2A\u0E49\u0E19\u0E15\u0E32\u0E22 +Styles.Bar.Row.external=\u0E07\u0E32\u0E19\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Styles.Bar.Row.milestone=\u0E40\u0E2B\u0E15\u0E38\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E2A\u0E33\u0E04\u0E31\u0E0D +Styles.Bar.Row.subproject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22 +Styles.Bar.Row.summary=\u0E2A\u0E23\u0E38\u0E1B\u0E07\u0E32\u0E19 +Styles.Bar.Row.task=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E2A\u0E33\u0E04\u0E31\u0E0D +Styles.Bar.Row.timesheet=\u0E40\u0E2A\u0E49\u0E19\u0E40\u0E27\u0E25\u0E32 +Styles.Bar.Row.totalSlack=\u0E40\u0E27\u0E25\u0E32\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 +Styles.Calendar.nonWorking=\u0E41\u0E2A\u0E14\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E27\u0E31\u0E19\u0E17\u0E33\u0E07\u0E32\u0E19 +Styles.Gantt.showRows=\u0E41\u0E2A\u0E14\u0E07\u0E41\u0E16\u0E27 +Styles.showLinks=\u0E41\u0E2A\u0E14\u0E07\u0E25\u0E34\u0E07\u0E04\u0E4C +Summary.AND=\u0E41\u0E25\u0E30 +Summary.Average=\u0E40\u0E09\u0E25\u0E35\u0E48\u0E22 +Summary.AverageFirstSublevel=\u0E04\u0E48\u0E32\u0E40\u0E09\u0E25\u0E35\u0E48\u0E22\u0E23\u0E30\u0E14\u0E31\u0E1A\u0E22\u0E48\u0E2D\u0E22\u0E41\u0E23\u0E01 +Summary.CountAll=\u0E19\u0E31\u0E1A\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 +Summary.CountNonsummaries=\u0E19\u0E31\u0E1A\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E2A\u0E23\u0E38\u0E1B +Summary.List=\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 +Summary.Maximum=\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 +Summary.Minimum=\u0E15\u0E48\u0E33\u0E2A\u0E38\u0E14 +Summary.None=\u0E44\u0E21\u0E48\u0E21\u0E35 +Summary.OR=\u0E2B\u0E23\u0E37\u0E2D +Summary.Sum=\u0E23\u0E27\u0E21 +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22: ' +TaskIndicatorsComponent.TheCalendar=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 ' +TaskIndicatorsComponent.TheIntersection=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E31\u0E19\u0E44\u0E17\u0E21\u0E4C\u0E17\u0E35\u0E48\u0E08\u0E38\u0E14\u0E15\u0E31\u0E14\u0E02\u0E2D\u0E07\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E07\u0E32\u0E19\u0E41\u0E25\u0E30\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
+TaskIndicatorsComponent.TheTaskWasCompletedOn=\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E19\u0E35\u0E49\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08\u0E40\u0E21\u0E37\u0E48\u0E2D ... +TaskIndicatorsComponent.ThisParentTaskHasResources=\u0E21\u0E35\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E43\u0E2B\u0E49\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E2A\u0E23\u0E38\u0E1B: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E44\u0E14\u0E49\u0E43\u0E19\u0E02\u0E13\u0E30\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +TaskIndicatorsComponent.ThisTaskFinishesOn=\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08\u0E19\u0E35\u0E49\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E43\u0E19 ... +TaskIndicatorsComponent.ThisTaskHasA=This task has a ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=\u0E41\u0E2B\u0E25\u0E48\u0E07\u0E17\u0E35\u0E48\u0E21\u0E32\u0E0B\u0E36\u0E48\u0E07\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13 +TaskIndicatorsComponent.ThisTasksRepresentsThe=\u0E07\u0E32\u0E19\u0E19\u0E35\u0E49\u0E41\u0E2A\u0E14\u0E07\u0E16\u0E36\u0E07\u0E44\u0E1F\u0E25\u0E4C +TaskIndicatorsComponent.constraintOn=' \u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 \u0E40\u0E23\u0E37\u0E48\u0E2D\u0E07\u2026\u2026\u2026\u2026. \u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14\u0E43\u0E19 +TaskIndicatorsComponent.isAssignedToTheTask=' \u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E15\u0E48\u0E07\u0E15\u0E31\u0E49\u0E07\u0E43\u0E2B\u0E49\u0E17\u0E33\u0E07\u0E32\u0E19
+TaskIndicatorsComponent.opened=\u0E40\u0E1B\u0E34\u0E14 +TaskIndicatorsComponent.subproject=\ \u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E22\u0E48\u0E2D\u0E22\: +TaskIndicatorsComponent.unopened=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E34\u0E14\u0E44\u0E14\u0E49 +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ \u0E0B\u0E36\u0E48\u0E07\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E27\u0E25\u0E32\u0E02\u0E2D\u0E07 +TaskInformationDialog.Advanced=\u0E02\u0E31\u0E49\u0E19\u0E2A\u0E39\u0E07 +TaskInformationDialog.ConstrainTask=\u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 +TaskInformationDialog.Dates=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +TaskInformationDialog.General=\u0E17\u0E31\u0E48\u0E27\u0E44\u0E1B +TaskInformationDialog.Notes=\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22 +TaskInformationDialog.Predecessors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +TaskInformationDialog.Resources=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +TaskInformationDialog.Successors=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +TaskInformationDialog.TaskInformation=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19 +Text.Allocated=\u0E01\u0E32\u0E23\u0E41\u0E1A\u0E48\u0E07 +Text.ApplicationTitle=ProjectLibre +Text.Assign=\u0E01\u0E33\u0E2B\u0E19\u0E14 +Text.AssignResources=\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Text.Baseline=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Text.Cancel=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01 +Text.ClearBaseline=\u0E25\u0E1A\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Text.CostRateTables=\u0E15\u0E32\u0E23\u0E32\u0E07\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E15\u0E49\u0E19\u0E17\u0E38\u0E19 +Text.Cumulative=\u0E2A\u0E30\u0E2A\u0E21 +Text.DetectingJavaVersion=\u0E15\u0E23\u0E27\u0E08\u0E1E\u0E1A\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19 Java ... +Text.DisabledExternalTaskDependency=\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E01\u0E32\u0E23\u0E1E\u0E36\u0E48\u0E07\u0E1E\u0E32\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01\u0E41\u0E25\u0E49\u0E27 +Text.EntireProject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14 +Text.ExternalTaskDependency=\u0E01\u0E32\u0E23\u0E1E\u0E36\u0E48\u0E07\u0E1E\u0E32\u0E07\u0E32\u0E19\u0E20\u0E32\u0E22\u0E19\u0E2D\u0E01 +Text.Field=\u0E1F\u0E34\u0E25\u0E14\u0E4C +Text.Filter=\u0E01\u0E23\u0E2D\u0E07 +Text.From=\u0E08\u0E32\u0E01 +Text.Group=\u0E01\u0E25\u0E38\u0E48\u0E21 +Text.HierarchicalRelation=\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E31\u0E21\u0E1E\u0E31\u0E19\u0E18\u0E4C\u0E15\u0E32\u0E21\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E0A\u0E31\u0E49\u0E19 +Text.Histogram=Histogram +Text.Lag=\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +Text.No=\u0E44\u0E21\u0E48 +Text.None=\u0E44\u0E21\u0E48 +Text.OtherProjects=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E37\u0E48\u0E19 +Text.Remove=\u0E25\u0E1A +Text.Replace=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19 +Text.ReplaceResource=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Text.Save=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01 +Text.SaveBaseline=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +Text.Selected=\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E41\u0E25\u0E49\u0E27 +Text.SelectedTasks=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01 +Text.ShowSelectedOnTop=\u0E41\u0E2A\u0E14\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E27\u0E49\u0E14\u0E49\u0E32\u0E19\u0E1A\u0E19 +Text.ShowTeamResourcesOnly=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E02\u0E2D\u0E07\u0E17\u0E35\u0E21\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +Text.Sort=\u0E40\u0E23\u0E35\u0E22\u0E07\u0E15\u0E32\u0E21 +Text.Task=\u0E07\u0E32\u0E19 +Text.TaskDependency=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E1E\u0E36\u0E48\u0E07\u0E1E\u0E32\u0E01\u0E31\u0E19 +Text.Tasks=\u0E07\u0E32\u0E19 +Text.ThisProject=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E19\u0E35\u0E49 +Text.To=\u0E16\u0E36\u0E07 +Text.Type=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17 +Text.Unassigned=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E21\u0E2D\u0E1A\u0E2B\u0E21\u0E32\u0E22 +Text.Untitled=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E0A\u0E37\u0E48\u0E2D +Text.UserDefinedInParentheses=(\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14) +Text.With=\u0E14\u0E49\u0E27\u0E22 +Text.Yes=\u0E43\u0E0A\u0E48 +Text.budget=\u0E07\u0E1A\u0E1B\u0E23\u0E30\u0E21\u0E32\u0E13 +Text.clickToRename=(\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D) +Text.cost=\u0E04\u0E48\u0E32\u0E43\u0E0A\u0E49\u0E08\u0E48\u0E32\u0E22 +Text.createProject=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Text.forwardScheduled=\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E48\u0E07\u0E15\u0E48\u0E2D +Text.insertProject=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Text.manageResources=\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +Text.modifiedInParentheses=(\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E41\u0E1B\u0E25\u0E07) +Text.thousandsAbbreviation=B +Text.millionsAbbreviation=M +Text.newServerProject=\u0E40\u0E0B\u0E34\u0E23\u0E4C\u0E1F\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Text.openProject=\u0E40\u0E1B\u0E34\u0E14\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +Text.predecessor=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E48\u0E2D\u0E19 +# {0} is the name of the thing to rename +Text.rename.mf=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D {0} +Text.resetRoles=\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01 "\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14" \u0E43\u0E2B\u0E49\u0E2A\u0E34\u0E17\u0E18\u0E34\u0E4C\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E19\u0E35\u0E49\u0E41\u0E01\u0E48\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49\u0E43\u0E19 \u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17 \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E22\u0E01\u0E40\u0E27\u0E49\u0E19\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 "\u0E04\u0E39\u0E48\u0E04\u0E49\u0E32 / \u0E25\u0E39\u0E01\u0E04\u0E49\u0E32" \n \u0E02\u0E49\u0E2D\u0E08\u0E33\u0E01\u0E31\u0E14 \u0E40\u0E09\u0E1E\u0E32\u0E30\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E2D\u0E32\u0E08\u0E1B\u0E49\u0E2D\u0E19\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E08\u0E30\u0E16\u0E39\u0E01\u0E23\u0E35\u0E40\u0E0B\u0E47\u0E15 +Text.reverseScheduled=\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E01\u0E32\u0E23\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A +Text.rightClickSelectToSpreadsheet=\u0E04\u0E25\u0E34\u0E01\u0E02\u0E27\u0E32\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2B\u0E23\u0E37\u0E2D\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E0A\u0E37\u0E48\u0E2D\u0E15\u0E32\u0E23\u0E32\u0E07\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15 +Text.rightClickToInsertRemoveColumns=\u0E04\u0E25\u0E34\u0E01\u0E02\u0E27\u0E32\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E41\u0E17\u0E23\u0E01 / \u0E0B\u0E48\u0E2D\u0E19\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C +Text.successor=\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E17\u0E33\u0E15\u0E32\u0E21\u0E2B\u0E25\u0E31\u0E07 +Text.taskHierarchy=\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E0A\u0E31\u0E49\u0E19\u0E07\u0E32\u0E19: +Text.welcomeSubject=\u0E22\u0E34\u0E19\u0E14\u0E35\u0E15\u0E49\u0E2D\u0E19\u0E23\u0E31\u0E1A\u0E2A\u0E39\u0E48 Projects On Demand +Text.welcomeToPod=\u0E22\u0E34\u0E19\u0E14\u0E35\u0E15\u0E49\u0E2D\u0E19\u0E23\u0E31\u0E1A\u0E2A\u0E39\u0E48 ProjectLibre +Text.work=\u0E07\u0E32\u0E19 +TimeChartPopupMenu.VerticalScrolling=\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E41\u0E19\u0E27\u0E15\u0E31\u0E49\u0E07 +TimesheetHelper.Entered=\u0E1B\u0E49\u0E2D\u0E19 +TimesheetHelper.Integrated=\u0E41\u0E1A\u0E1A\u0E1A\u0E39\u0E23\u0E13\u0E32\u0E01\u0E32\u0E23 +TimesheetHelper.Mixed=\u0E1C\u0E2A\u0E21 +TimesheetHelper.New=\u0E43\u0E2B\u0E21\u0E48 +TimesheetHelper.Rejected=\u0E16\u0E39\u0E01\u0E1B\u0E0F\u0E34\u0E40\u0E2A\u0E18 +TimesheetHelper.Saved=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E41\u0E25\u0E49\u0E27 +TimesheetHelper.Validated=\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E41\u0E25\u0E49\u0E27 +Title.ProjityError=\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 ProjectLibre +Title.ProjityWarning=\u0E04\u0E33\u0E40\u0E15\u0E37\u0E2D\u0E19 ProjectLibre +TransformParameter.FinishDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 +TransformParameter.StartDate=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=\u0E17\u0E31\u0E49\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +UpdateProjectDialogBox.For=\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ \u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E27\u0E25\u0E32\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E25\u0E37\u0E2D\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E19\u0E31\u0E49\u0E19 +UpdateProjectDialogBox.SelectedTasks=\ \u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01 +UpdateProjectDialogBox.SetZeroHundred=\u0E1B\u0E23\u0E31\u0E1A\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C\u0E15\u0E32\u0E21\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +UpdateProjectDialogBox.SetZeroOrHundredOnly=\u0E1B\u0E23\u0E31\u0E1A\u0E40\u0E09\u0E1E\u0E32\u0E30\u0E07\u0E32\u0E19 (\u0E41\u0E25\u0E30\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19) \u0E17\u0E35\u0E48\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19\u0E20\u0E32\u0E22\u0E43\u0E19\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 +UpdateProjectDialogBox.UpdateProject=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ \u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E07\u0E32\u0E19\u0E43\u0E2B\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E21\u0E1A\u0E39\u0E23\u0E13\u0E4C\u0E1C\u0E48\u0E32\u0E19 +UpdateTaskDialog.Actual=\u0E15\u0E32\u0E21\u0E08\u0E23\u0E34\u0E07 +UpdateTaskDialog.Current=\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19 +UpdateTaskDialog.UpdateTask=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19 +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E19\u0E31\u0E49\u0E19\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27\u0E43\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07 \u0E42\u0E1B\u0E23\u0E14\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E27\u0E31\u0E19\u0E2D\u0E37\u0E48\u0E19 +ValueObjectForIntervalTable.ThisDateMustBeAfter=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E2B\u0E25\u0E31\u0E07\u0E27\u0E31\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E43\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07 +ValueObjectForIntervalTable.ThisDateMustBeBefore=\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E48\u0E2D\u0E19\u0E27\u0E31\u0E19\u0E16\u0E31\u0E14\u0E44\u0E1B\u0E43\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07 +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E23\u0E01\u0E43\u0E19\u0E15\u0E32\u0E23\u0E32\u0E07\u0E44\u0E14\u0E49 +WelcomeDialog.WhatWouldYouLikeToDo=\u0E04\u0E38\u0E13\u0E2D\u0E22\u0E32\u0E01\u0E08\u0E30\u0E17\u0E33\u0E2D\u0E30\u0E44\u0E23: +WorkRangeException.EndMustBeAfterStart=\u0E40\u0E27\u0E25\u0E32\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14\u0E02\u0E2D\u0E07\u0E0A\u0E48\u0E27\u0E07\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32\u0E40\u0E27\u0E25\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +WorkRangeException.RangeIncomplete=\u0E0A\u0E48\u0E27\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35\u0E17\u0E31\u0E49\u0E07\u0E08\u0E38\u0E14\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E41\u0E25\u0E30\u0E08\u0E38\u0E14\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14 +WorkRangeException.RangesCannotOverlap=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E21\u0E35\u0E0A\u0E48\u0E27\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E17\u0E31\u0E1A\u0E0B\u0E49\u0E2D\u0E19\u0E01\u0E31\u0E19\u0E44\u0E14\u0E49 +WorkRangeException.RangesMustBeOrdered=\u0E08\u0E38\u0E14\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E0A\u0E48\u0E27\u0E07\u0E01\u0E32\u0E23\u0E17\u0E33\u0E07\u0E32\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E2B\u0E25\u0E31\u0E07\u0E0A\u0E48\u0E27\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E19\u0E35\u0E49 +tip.1.description= \u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E02\u0E2D\u0E07\u0E0A\u0E38\u0E21\u0E0A\u0E19 ProjectLibre \u0E44\u0E14\u0E49\u0E17\u0E35\u0E48 http://www.projectlibre.org \u0E40\u0E23\u0E32\u0E08\u0E30\u0E21\u0E35\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E41\u0E25\u0E30\u0E01\u0E34\u0E08\u0E01\u0E23\u0E23\u0E21\u0E02\u0E2D\u0E07\u0E0A\u0E38\u0E21\u0E0A\u0E19 +tip.1.name=\u0E40\u0E02\u0E49\u0E32\u0E23\u0E48\u0E27\u0E21\u0E0A\u0E38\u0E21\u0E0A\u0E19 ProjectLibre  +tip.2.description= \u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E04\u0E25\u0E34\u0E01\u0E02\u0E27\u0E32\u0E17\u0E35\u0E48\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34\u0E41\u0E01\u0E19\u0E15\u0E4C\u0E40\u0E0B\u0E25\u0E25\u0E4C\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E2A\u0E48\u0E27\u0E19\u0E2B\u0E31\u0E27\u0E02\u0E2D\u0E07\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E41\u0E25\u0E30\u0E21\u0E38\u0E21\u0E1A\u0E19\u0E0B\u0E49\u0E32\u0E22\u0E02\u0E2D\u0E07\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E23\u0E31\u0E1A\u0E40\u0E21\u0E19\u0E39\u0E15\u0E32\u0E21\u0E1A\u0E23\u0E34\u0E1A\u0E17\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 +tip.2.name=\u0E1B\u0E23\u0E31\u0E1A\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 +tip.3.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E21\u0E35\u0E2A\u0E48\u0E27\u0E19\u0E23\u0E48\u0E27\u0E21\u0E01\u0E31\u0E1A ProjectLibre! \u0E40\u0E23\u0E32\u0E01\u0E33\u0E25\u0E31\u0E07\u0E21\u0E2D\u0E07\u0E2B\u0E32\u0E19\u0E31\u0E01\u0E41\u0E1B\u0E25\u0E41\u0E25\u0E30\u0E19\u0E31\u0E01\u0E1E\u0E31\u0E12\u0E19\u0E32\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07 ProjectLibre \u0E43\u0E2B\u0E49\u0E14\u0E35\u0E02\u0E36\u0E49\u0E19\u0E40\u0E23\u0E37\u0E48\u0E2D\u0E22 \u0E46 \u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D partners@projectlibre.org +tip.3.name=\u0E21\u0E35\u0E2A\u0E48\u0E27\u0E19\u0E23\u0E48\u0E27\u0E21\u0E43\u0E19 ProjectLibre +tip.4.description=\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21\u0E41\u0E25\u0E30\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34\u0E40\u0E1B\u0E47\u0E19\u0E41\u0E1A\u0E1A\u0E44\u0E14\u0E19\u0E32\u0E21\u0E34\u0E01\u0E41\u0E25\u0E30\u0E02\u0E36\u0E49\u0E19\u0E2D\u0E22\u0E39\u0E48\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E27\u0E49\u0E02\u0E49\u0E32\u0E07\u0E15\u0E49\u0E19 +tip.4.name=\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34\u0E41\u0E1A\u0E1A\u0E44\u0E14\u0E19\u0E32\u0E21\u0E34\u0E01 +tip.5.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E01\u0E49\u0E44\u0E02\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\u0E1A\u0E19 Network Diagram (\u0E41\u0E1C\u0E19\u0E20\u0E39\u0E21\u0E34 PERT) +tip.5.name=\u0E41\u0E01\u0E49\u0E44\u0E02\u0E1A\u0E25\u0E47\u0E2D\u0E01\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22 +tip.6.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07\u0E41\u0E25\u0E30\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E0A\u0E31\u0E49\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 \u0E2A\u0E34\u0E48\u0E07\u0E19\u0E35\u0E49\u0E08\u0E30\u0E2A\u0E30\u0E17\u0E49\u0E2D\u0E19\u0E43\u0E2B\u0E49\u0E40\u0E2B\u0E47\u0E19\u0E43\u0E19\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 WBS \u0E14\u0E49\u0E27\u0E22 +tip.6.name=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E0A\u0E31\u0E49\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +tip.7.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E0A\u0E49\u0E40\u0E21\u0E32\u0E2A\u0E4C\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07\u0E07\u0E32\u0E19\u0E02\u0E22\u0E32\u0E22\u0E07\u0E32\u0E19\u0E17\u0E33\u0E43\u0E2B\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E22\u0E49\u0E32\u0E22\u0E41\u0E25\u0E30\u0E41\u0E22\u0E01\u0E07\u0E32\u0E19\u0E44\u0E14\u0E49 +tip.7.name=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E40\u0E21\u0E32\u0E2A\u0E4C +tip.8.description=\u0E42\u0E14\u0E22\u0E1B\u0E01\u0E15\u0E34\u0E04\u0E38\u0E13\u0E08\u0E30\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E43\u0E2B\u0E49 FS (Finish-Start) \u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E42\u0E22\u0E07\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E07\u0E32\u0E19\u0E15\u0E48\u0E32\u0E07\u0E46 \u0E1A\u0E32\u0E07\u0E04\u0E23\u0E31\u0E49\u0E07\u0E04\u0E38\u0E13\u0E2D\u0E32\u0E08\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 SS \u0E41\u0E25\u0E30 FF \u0E41\u0E15\u0E48 SF \u0E19\u0E31\u0E49\u0E19\u0E2B\u0E32\u0E22\u0E32\u0E01\u0E21\u0E32\u0E01 \u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E25\u0E34\u0E07\u0E04\u0E4C\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E04\u0E25\u0E34\u0E01\u0E17\u0E35\u0E48\u0E25\u0E34\u0E07\u0E04\u0E4C \u0E04\u0E38\u0E13\u0E22\u0E31\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E04\u0E27\u0E32\u0E21\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 +tip.8.name=\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E25\u0E34\u0E07\u0E01\u0E4C +tip.9.description=\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E27\u0E32\u0E21\u0E04\u0E34\u0E14\u0E17\u0E35\u0E48\u0E14\u0E35\u0E40\u0E2A\u0E21\u0E2D\u0E17\u0E35\u0E48\u0E08\u0E30\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 ProjectLibre \u0E0A\u0E48\u0E27\u0E22\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E44\u0E14\u0E49\u0E16\u0E36\u0E07 11 \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E0B\u0E36\u0E48\u0E07\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E41\u0E2A\u0E14\u0E07\u0E1A\u0E19 Gantt \u0E41\u0E25\u0E30\u0E43\u0E0A\u0E49\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E27\u0E34\u0E40\u0E04\u0E23\u0E32\u0E30\u0E2B\u0E4C\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A +tip.9.name=\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +tip.10.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E49\u0E32\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E01\u0E32\u0E23\u0E0B\u0E39\u0E21\u0E41\u0E01\u0E19\u0E40\u0E02\u0E49\u0E32 / \u0E2D\u0E2D\u0E01\u0E41\u0E25\u0E30\u0E1B\u0E23\u0E31\u0E1A\u0E02\u0E19\u0E32\u0E14\u0E2B\u0E23\u0E37\u0E2D\u0E0B\u0E48\u0E2D\u0E19\u0E04\u0E2D\u0E25\u0E31\u0E21\u0E19\u0E4C \u0E43\u0E0A\u0E49\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A +tip.10.name=\u0E01\u0E32\u0E23\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2B\u0E19\u0E49\u0E32 +tip.11.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E34\u0E14\u0E44\u0E1F\u0E25\u0E4C\u0E17\u0E35\u0E48\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E14\u0E22 Microsoft Project \u0E43\u0E19 ProjectLibre \u0E41\u0E25\u0E30\u0E04\u0E38\u0E13\u0E22\u0E31\u0E07\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E01\u0E25\u0E31\u0E1A\u0E2D\u0E2D\u0E01\u0E44\u0E1B\u0E40\u0E1B\u0E47\u0E19\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A XML \u0E02\u0E2D\u0E07 Microsoft \u0E44\u0E14\u0E49\u0E2D\u0E35\u0E01\u0E14\u0E49\u0E27\u0E22 +tip.11.name=\u0E04\u0E27\u0E32\u0E21\u0E40\u0E02\u0E49\u0E32\u0E01\u0E31\u0E19\u0E44\u0E14\u0E49\u0E02\u0E2D\u0E07 MS Project +tip.12.description=ProjectLibre \u0E21\u0E35\u0E1F\u0E34\u0E25\u0E14\u0E4C\u0E17\u0E35\u0E48\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49\u0E21\u0E32\u0E01\u0E21\u0E32\u0E22\u0E15\u0E32\u0E21\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23 \u0E25\u0E2D\u0E07\u0E04\u0E25\u0E34\u0E01\u0E02\u0E27\u0E32\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E27\u0E19\u0E2B\u0E31\u0E27\u0E02\u0E2D\u0E07\u0E2A\u0E40\u0E1B\u0E23\u0E14\u0E0A\u0E35\u0E15\u0E41\u0E25\u0E30\u0E14\u0E39 +tip.12.name=\u0E1F\u0E34\u0E25\u0E14\u0E4C\u0E17\u0E35\u0E48\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E01\u0E33\u0E2B\u0E19\u0E14 +tip.13.description=\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19\u0E43\u0E2B\u0E49\u0E01\u0E31\u0E1A\u0E07\u0E32\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E41\u0E25\u0E30\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E04\u0E33\u0E19\u0E36\u0E07\u0E16\u0E36\u0E07\u0E27\u0E31\u0E19\u0E2B\u0E22\u0E38\u0E14 +tip.13.name=\u0E1B\u0E0F\u0E34\u0E17\u0E34\u0E19 +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + +Text.badJavaVersion=\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19 Java \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E04\u0E37\u0E2D "{0}" \u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 ProjectLibre \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 Java 1.6 \u0E2B\u0E23\u0E37\u0E2D\u0E43\u0E2B\u0E21\u0E48\u0E01\u0E27\u0E48\u0E32 +Text.badJavaVendor=\u0E1C\u0E39\u0E49\u0E43\u0E2B\u0E49\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23 Java \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E04\u0E37\u0E2D "{0}" \u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 ProjectLibre \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E0A\u0E49 Sun Java +Text.javaExecutable=Java Runtime \u0E17\u0E35\u0E48\u0E15\u0E23\u0E27\u0E08\u0E1E\u0E1A\u0E42\u0E14\u0E22\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E04\u0E37\u0E2D {0} \n \u0E2B\u0E32\u0E01\u0E04\u0E38\u0E13\u0E21\u0E35\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E17\u0E35\u0E48\u0E43\u0E2B\u0E21\u0E48\u0E01\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E44\u0E14\u0E49\u0E14\u0E49\u0E27\u0E22\u0E15\u0E19\u0E40\u0E2D\u0E07\u0E42\u0E14\u0E22\u0E41\u0E01\u0E49\u0E44\u0E02\u0E04\u0E38\u0E13\u0E2A\u0E21\u0E1A\u0E31\u0E15\u0E34 \n "{1}" \u0E43\u0E19\u0E44\u0E1F\u0E25\u0E4C\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2B\u0E32\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34 "{2}" \n \u0E21\u0E34\u0E09\u0E30\u0E19\u0E31\u0E49\u0E19\u0E2B\u0E32\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E1A\u0E31\u0E07\u0E04\u0E31\u0E1A\u0E43\u0E2B\u0E49\u0E15\u0E23\u0E27\u0E08\u0E08\u0E31\u0E1A\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E04\u0E38\u0E13\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E25\u0E1A "{2}" \u0E44\u0E14\u0E49 + +Text.newVersion=\u0E21\u0E35 ProjectLibre \u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E43\u0E2B\u0E21\u0E48\u0E01\u0E27\u0E48\u0E32 {0} \u0E43\u0E2B\u0E49\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 \ \u0E43\u0E19\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E04\u0E37\u0E2D {1} \ \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E2B\u0E19\u0E49\u0E32\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14\u0E40\u0E25\u0E22\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48 + +TipOfTheDay.dialogTitle=\u0E40\u0E04\u0E25\u0E47\u0E14\u0E25\u0E31\u0E1A\u0E1B\u0E23\u0E30\u0E08\u0E33\u0E27\u0E31\u0E19 +TipOfTheDay.didYouKnowText=\u0E04\u0E38\u0E13\u0E23\u0E39\u0E49\u0E23\u0E36\u0E40\u0E1B\u0E25\u0E48\u0E32 ... +TipOfTheDay.showOnStartupText=\u0E41\u0E2A\u0E14\u0E07\u0E40\u0E04\u0E25\u0E47\u0E14\u0E25\u0E31\u0E1A\u0E43\u0E19\u0E01\u0E32\u0E23\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19 +TipOfTheDay.previousTipText=< \u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A +TipOfTheDay.nextTipText=\u0E16\u0E31\u0E14\u0E44\u0E1B > +TipOfTheDay.closeText=\u0E1B\u0E34\u0E14 + + +Warn.lockMessage = \u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E19\u0E35\u0E49\u0E16\u0E39\u0E01\u0E25\u0E47\u0E2D\u0E01\u0E41\u0E25\u0E49\u0E27\u0E42\u0E14\u0E22 {0} \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E40\u0E1B\u0E34\u0E14\u0E2D\u0E48\u0E32\u0E19\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E14\u0E35\u0E22\u0E27\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E39\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48 + +#added 14/2/08 +Filter.StartingWithinWeek=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E20\u0E32\u0E22\u0E43\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C +Filter.StartingWithinTwoWeeks=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E20\u0E32\u0E22\u0E43\u0E19\u0E2A\u0E2D\u0E07\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C +Filter.LateStarting=\u0E40\u0E23\u0E34\u0E48\u0E21\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32 + +Warn.resourcePoolOpen=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E34\u0E14\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E2D\u0E37\u0E48\u0E19\u0E43\u0E19\u0E02\u0E13\u0E30\u0E17\u0E35\u0E48 Resource Pool \u0E40\u0E1B\u0E34\u0E14\u0E2D\u0E22\u0E39\u0E48 +Warn.resourcePoolCannotOpen=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E34\u0E14\u0E01\u0E25\u0E38\u0E48\u0E21\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C\u0E2D\u0E37\u0E48\u0E19\u0E40\u0E1B\u0E34\u0E14\u0E2D\u0E22\u0E39\u0E48 +Warn.fileNotFound=\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E44\u0E1F\u0E25\u0E4C + +Text.donateMessage=ProjectLibre \u0E43\u0E2B\u0E49\u0E1A\u0E23\u0E34\u0E01\u0E32\u0E23\u0E1F\u0E23\u0E35 \u0E44\u0E21\u0E48\u0E21\u0E35\u0E2A\u0E15\u0E23\u0E34\u0E07\u0E17\u0E35\u0E48\u0E41\u0E19\u0E1A\u0E21\u0E32\u0E41\u0E25\u0E30\u0E0A\u0E48\u0E27\u0E22\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E1B\u0E23\u0E30\u0E2B\u0E22\u0E31\u0E14\u0E23\u0E32\u0E04\u0E32\u0E1B\u0E25\u0E35\u0E01 $ 999.99 \u0E02\u0E2D\u0E07\u0E0B\u0E2D\u0E1F\u0E15\u0E4C\u0E41\u0E27\u0E23\u0E4C\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E34\u0E07\u0E1E\u0E32\u0E13\u0E34\u0E0A\u0E22\u0E4C \u0E40\u0E23\u0E32\u0E02\u0E2D\u0E43\u0E2B\u0E49\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E02\u0E2D\u0E07\u0E40\u0E23\u0E32\u0E1E\u0E34\u0E08\u0E32\u0E23\u0E13\u0E32\u0E01\u0E32\u0E23\u0E1A\u0E23\u0E34\u0E08\u0E32\u0E04\u0E42\u0E14\u0E22\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E43\u0E08\u0E1C\u0E48\u0E32\u0E19 PayPal +Text.donateTitle=\u0E42\u0E1B\u0E23\u0E14\u0E2A\u0E19\u0E31\u0E1A\u0E2A\u0E19\u0E38\u0E19 ProjectLibre +Text.runsSinceMessage=\u0E04\u0E38\u0E13\u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 ProjectLiber {0, number} \u0E04\u0E23\u0E31\u0E49\u0E07\u0E15\u0E31\u0E49\u0E07\u0E41\u0E15\u0E48\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48 {1, date, short} +Text.tryPODTitle=\u0E25\u0E2D\u0E07 Projects On Demand + + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=\u0E2D\u0E22\u0E48\u0E32\u0E41\u0E2A\u0E14\u0E07\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E19\u0E35\u0E49\u0E2D\u0E35\u0E01 + +Warn.saveXML=You should only use the\u0E04\u0E38\u0E13\u0E04\u0E27\u0E23\u0E43\u0E0A\u0E49\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A XML \u0E40\u0E21\u0E37\u0E48\u0E2D\u0E41\u0E25\u0E01\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E01\u0E31\u0E1A\u0E41\u0E2D\u0E1B\u0E1E\u0E25\u0E34\u0E40\u0E04\u0E0A\u0E31\u0E19\u0E2D\u0E37\u0E48\u0E19\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19\u0E40\u0E19\u0E37\u0E48\u0E2D\u0E07\u0E08\u0E32\u0E01\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E1A\u0E32\u0E07\u0E2A\u0E48\u0E27\u0E19\u0E2D\u0E32\u0E08\u0E2A\u0E39\u0E0D\u0E2B\u0E32\u0E22 \n \u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48? XML format when exchanging with another application as some data may be lost.\n Do you want to continue? + +Text.rightClickForOptions=\u0E04\u0E25\u0E34\u0E01\u0E02\u0E27\u0E32\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E39\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01 diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_vi.properties b/projectlibre_core/src/com/projectlibre1/strings/client_vi.properties new file mode 100644 index 0000000..2093810 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_vi.properties @@ -0,0 +1,1303 @@ +# The contents of this file are subject to the Common Public Attribution License +# N\u1ED9i dung c\u1EE7a t\u1EC7p này ph\u1EA3i tuân theo Gi\u1EA5y Phép Phân B\u1ED5 Công C\u1ED9ng Chung +# Version 1.0 (the "License"); you may not use this file except in compliance with +# Phiên b\u1EA3n 1.0 ("Gi\u1EA5y phép"); b\u1EA1n không th\u1EC3 s\u1EED d\u1EE5ng t\u1EC7p này tr\u1EEB khi tuân th\u1EE7 +# the License. You may obtain a copy of the License at +# gi\u1EA5y phép. B\u1EA1n có th\u1EC3 nh\u1EADn \u0111\u01B0\u1EE3c m\u1ED9t b\u1EA3n sao c\u1EE7a Gi\u1EA5y phép t\u1EA1i +# http://www.projity.com/license . The License is based on the Mozilla Public +# http://www.projity.com/license. Gi\u1EA5y phép d\u1EF1a trên Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# Phiên b\u1EA3n Gi\u1EA5y phép 1.1 nh\u01B0ng Ph\u1EA7n 14 và 15 \u0111ã \u0111\u01B0\u1EE3c thêm vào \u0111\u1EC3 s\u1EED d\u1EE5ng +# software over a computer network and provide for limited attribution for the +# ph\u1EA7n m\u1EC1m qua m\u1EA1ng máy tính và cung c\u1EA5p phân b\u1ED5 gi\u1EDBi h\u1EA1n cho +# Original Developer. In addition, Exhibit A has been modified to be consistent +# Nhà phát tri\u1EC3n g\u1ED1c. Ngoài ra, Ph\u1EE5 l\u1EE5c A \u0111ã \u0111\u01B0\u1EE3c s\u1EEDa \u0111\u1ED5i \u0111\u1EC3 phù h\u1EE3p +# with Exhibit B. +# v\u1EDBi Ph\u1EE5 l\u1EE5c B. +# Software distributed under the License is distributed on an "AS IS" basis, +# Ph\u1EA7n m\u1EC1m \u0111\u01B0\u1EE3c phân ph\u1ED1i theo Gi\u1EA5y phép \u0111\u01B0\u1EE3c phân ph\u1ED1i trên c\u01A1 s\u1EDF "NGUYÊN TR\u1EA0NG", +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# KHÔNG B\u1EA2O HÀNH B\u1EA4T K\u1EF2 HÌNH TH\u1EE8C NÀO, dù rõ ràng hay ng\u1EE5 ý. Xem Gi\u1EA5y phép cho +# specific language governing rights and limitations under the License. The +# ngôn ng\u1EEF c\u1EE5 th\u1EC3 \u0111i\u1EC1u ch\u1EC9nh các quy\u1EC1n và gi\u1EDBi h\u1EA1n theo Gi\u1EA5y phép. Các +# Original Code is OpenProj. The Original Developer is the Initial Developer and +# Mã g\u1ED1c là OpenProj. Nhà phát tri\u1EC3n chính là Nhà phát tri\u1EC3n ban \u0111\u1EA7u và +# is Projity, Inc. All portions of the code written by Projity are Copyright (c) +# là Projity, Inc. T\u1EA5t c\u1EA3 các ph\u1EA7n c\u1EE7a mã do Projity vi\u1EBFt \u0111\u1EC1u là B\u1EA3n quy\u1EC1n (c) +# 2006, 2007. All Rights Reserved. Contributors Projity, Inc. +# 2006, 2007. M\u1ECDi Quy\u1EC1n \u0111\u01B0\u1EE3c B\u1EA3o l\u01B0u. Ng\u01B0\u1EDDi \u0111óng góp Projity, Inc. +# Alternatively, the contents of this file may be used under the terms of the +# Ngoài ra, n\u1ED9i dung c\u1EE7a t\u1EC7p này có th\u1EC3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a +# Projity End-User License Agreement (the Projity License), in which case the +# Th\u1ECFa thu\u1EADn C\u1EA5p phép Ng\u01B0\u1EDDi dùng Cu\u1ED1i c\u1EE7a Projity (Gi\u1EA5y phép Projity), trong tr\u01B0\u1EDDng h\u1EE3p \u0111ó +# provisions of the Projity License are applicable instead of those above. If you +# \u0111i\u1EC1u kho\u1EA3n c\u1EE7a Gi\u1EA5y phép Projity có th\u1EC3 áp d\u1EE5ng thay cho nh\u1EEFng \u0111i\u1EC1u kho\u1EA3n \u1EDF trên. n\u1EBFu b\u1EA1n +# wish to allow use of your version of this file only under the terms of the +# mu\u1ED1n ch\u1EC9 cho phép s\u1EED d\u1EE5ng phiên b\u1EA3n c\u1EE7a t\u1EC7p này theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a +# Projity License and not to allow others to use your version of this file under +# Gi\u1EA5y phép Projity và không cho phép ng\u01B0\u1EDDi khác s\u1EED d\u1EE5ng phiên b\u1EA3n t\u1EC7p này c\u1EE7a b\u1EA1n theo +# the CPAL, indicate your decision by deleting the provisions above and replace +# CPAL, cho bi\u1EBFt quy\u1EBFt \u0111\u1ECBnh c\u1EE7a b\u1EA1n b\u1EB1ng cách xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên và thay th\u1EBF +# them with the notice and other provisions required by the Projity License. If +# chúng v\u1EDBi thông báo và các \u0111i\u1EC1u kho\u1EA3n khác theo yêu c\u1EA7u c\u1EE7a Gi\u1EA5y phép Projity. N\u1EBFu +# you do not delete the provisions above, a recipient may use your version of this +# b\u1EA1n không xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên, ng\u01B0\u1EDDi nh\u1EADn có th\u1EC3 s\u1EED d\u1EE5ng phiên b\u1EA3n t\u1EC7p này c\u1EE7a b\u1EA1n +# file under either the CPAL or the Projity License. +# theo CPAL ho\u1EB7c Gi\u1EA5y phép Projity. + +# [NOTE: The text of this license may differ slightly from the text of the notices +# [L\u01AFU Ý: V\u0103n b\u1EA3n c\u1EE7a gi\u1EA5y phép này có th\u1EC3 h\u01A1i khác so v\u1EDBi v\u0103n b\u1EA3n c\u1EE7a các thông báo +# in Exhibits A and B of the license at http://www.projity.com/license. You should +# trong Ph\u1EA7n tr\u01B0ng bày A và B c\u1EE7a gi\u1EA5y phép t\u1EA1i http://www.projity.com/license. B\u1EA1n nên +# use the latest text at http://www.projity.com/license for your modifications. +# s\u1EED d\u1EE5ng v\u0103n b\u1EA3n m\u1EDBi nh\u1EA5t t\u1EA1i http://www.projity.com/license cho các s\u1EEDa \u0111\u1ED5i c\u1EE7a b\u1EA1n. +# You may not remove this license text from the source files.] +# B\u1EA1n không th\u1EC3 xóa v\u0103n b\u1EA3n gi\u1EA5y phép này kh\u1ECFi các t\u1EC7p ngu\u1ED3n.] + +# Attribution Information: Attribution Copyright Notice: Copyright _ 2006, 2007 +# Thông tin Thu\u1ED9c tính: Thông báo v\u1EC1 B\u1EA3n quy\u1EC1n Ghi nh\u1EADn: B\u1EA3n quy\u1EC1n _ 2006, 2007 +# Projity, Inc. Attribution Phrase (not exceeding 10 words): Powered by OpenProj, +# Projity, Inc. C\u1EE5m t\u1EEB ghi nh\u1EADn tác gi\u1EA3 (không quá 10 t\u1EEB): \u0110\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi OpenProj, +# an open source solution from Projity. Attribution URL: http://www.projity.com +# m\u1ED9t gi\u1EA3i pháp ngu\u1ED3n m\u1EDF t\u1EEB Projity. URL phân b\u1ED5: http://www.projity.com +# Graphic Image as provided in the Covered Code as file: openproj_logo.png with +# Hình \u1EA3nh \u0110\u1ED3 h\u1ECDa nh\u01B0 \u0111\u01B0\u1EE3c cung c\u1EA5p trong Mã \u0111\u01B0\u1EE3c B\u1EA3o v\u1EC7 d\u01B0\u1EDBi d\u1EA1ng t\u1EC7p: openproj_logo.png v\u1EDBi +# alternatives listed on http://www.projity.com/logo +# l\u1EF1a ch\u1ECDn thay th\u1EBF \u0111\u01B0\u1EE3c li\u1EC7t kê trên http://www.projity.com/logo +# Display of Attribution Information is required in Larger Works which are defined +# C\u1EA7n có hi\u1EC3n th\u1ECB Thông tin phân b\u1ED5 trong s\u1EA3n ph\u1EA9m l\u1EDBn h\u01A1n \u0111\u01B0\u1EE3c xác \u0111\u1ECBnh +# in the CPAL as a work which combines Covered Code or portions thereof with code +# trong CPAL nh\u01B0 m\u1ED9t s\u1EA3n ph\u1EA9m k\u1EBFt h\u1EE3p Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 ho\u1EB7c các ph\u1EA7n c\u1EE7a nó v\u1EDBi mã +# not governed by the terms of the CPAL. However, in addition to the other notice +# không b\u1ECB chi ph\u1ED1i b\u1EDFi các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a CPAL. Tuy nhiên, ngoài các thông báo +# obligations, all copies of the Covered Code in Executable and Source Code form +# ngh\u0129a v\u1EE5 khác, t\u1EA5t c\u1EA3 các b\u1EA3n sao c\u1EE7a Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 \u1EDF d\u1EA1ng Mã ngu\u1ED3n và Có th\u1EC3 th\u1EF1c thi +# distributed must, as a form of attribution of the original author, include on +# ph\u1EA3i \u0111\u01B0\u1EE3c phân ph\u1ED1i, nh\u01B0 m\u1ED9t hình th\u1EE9c ghi nh\u1EADn tác gi\u1EA3 g\u1ED1c, bao g\u1ED3m trên +# each user interface screen the "OpenProj" logo visible to all users. The +# m\u1ED7i giao di\u1EC7n ng\u01B0\u1EDDi dùng hi\u1EC3n th\u1ECB logo "OpenProj" cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi dùng. Các +# OpenProj logo should be located horizontally aligned with the menu bar and left +# Bi\u1EC3u tr\u01B0ng OpenProj ph\u1EA3i \u0111\u01B0\u1EE3c c\u0103n ch\u1EC9nh theo chi\u1EC1u ngang v\u1EDBi thanh menu và +# justified on the top left of the screen adjacent to the File menu. The logo +# c\u0103n trái \u1EDF trên cùng bên trái c\u1EE7a màn hình li\u1EC1n k\u1EC1 v\u1EDBi menu T\u1EC7p. Logo +# must be at least 100 x 25 pixels. When users click on the "OpenProj" logo it +# ph\u1EA3i có ít nh\u1EA5t 100 x 25 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào bi\u1EC3u t\u01B0\u1EE3ng "OpenProj" nó +# must direct them back to http://www.projity.com. +# ph\u1EA3i h\u01B0\u1EDBng h\u1ECD tr\u1EDF l\u1EA1i http://www.projity.com. + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. +# Các chu\u1ED7i ph\u1EA3i \u0111\u01B0\u1EE3c s\u1EAFp x\u1EBFp theo khóa \u0111\u1EC3 t\u1EA1o \u0111i\u1EC1u ki\u1EC7n \u0111\u1EA3m b\u1EA3o s\u1EF1 t\u01B0\u01A1ng \u1EE9ng gi\u1EEFa các ngôn ng\u1EEF khác nhau. +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +# M\u1ED9t s\u1ED1 chu\u1ED7i ch\u1EE9a các m\u1EABu: \u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # Chi phí tr\u1EDF thành Chi phí \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 1, Chi phí \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 2, v.v. +#The # gets replaced by a number for each one +# # \u0110\u01B0\u1EE3c thay th\u1EBF b\u1EB1ng m\u1ED9t s\u1ED1 cho m\u1ED7i cái +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +# M\u1ED9t ki\u1EC3u t\u1EA1o khuôn m\u1EABu khác \u0111ôi khi \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng trong các thông báo trong \u0111ó các giá tr\u1ECB bên trong {} \u0111\u01B0\u1EE3c thay th\u1EBF b\u1EB1ng v\u0103n b\u1EA3n - ví d\u1EE5 nh\u01B0 tên tác v\u1EE5 +#Anything within the {} symbols must not be translated +# M\u1ECDi th\u1EE9 trong ký hi\u1EC7u {} không \u0111\u01B0\u1EE3c d\u1ECBch +# The strings whose keys have the .mf suffix must be formated with the rules described in +# Các chu\u1ED7i có khóa có h\u1EADu t\u1ED1 .mf ph\u1EA3i \u0111\u01B0\u1EE3c \u0111\u1ECBnh d\u1EA1ng v\u1EDBi các quy t\u1EAFc \u0111\u01B0\u1EE3c mô t\u1EA3 trong +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . +# \u0110\u1EC3 m\u1EDF r\u1ED9ng, d\u1EA5u ngo\u1EB7c kép ' ph\u1EA3i \u0111\u01B0\u1EE3c nhân \u0111ôi và \u0111\u01B0\u1EE3c thay th\u1EBF b\u1EB1ng ''. +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines.\u2028# \ N trong m\u1ED9t s\u1ED1 th\u01B0 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 bu\u1ED9c m\u1ED9t dòng m\u1EDBi. Nó \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 chia các tin nh\u1EAFn dài thành nhi\u1EC1u dòng. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Các chu\u1ED7i b\u1EAFt \u0111\u1EA7u b\u1EB1ng m\u1ED9t ho\u1EB7c nhi\u1EC1u "\" s\u1EBD gi\u1EEF l\u1EA1i các "\" \u0111ó vì chúng \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng \u0111\u1EC3 bi\u1EC3u th\u1ECB các kho\u1EA3ng tr\u1EAFng +# Some strings contain spaces at the end. Be careful to conserve them +# M\u1ED9t s\u1ED1 chu\u1ED7i ch\u1EE9a kho\u1EA3ng tr\u1EAFng \u1EDF cu\u1ED1i. Hãy c\u1EA9n th\u1EADn \u0111\u1EC3 gi\u1EEF gìn chúng +# Strings with colons at the end should retain the colons at the end +# Chu\u1ED7i có d\u1EA5u hai ch\u1EA5m \u1EDF cu\u1ED1i nên gi\u1EEF l\u1EA1i d\u1EA5u hai ch\u1EA5m \u1EDF cu\u1ED1i + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# Sau \u0111ây là các t\u1EEB vi\u1EBFt t\u1EAFt tiêu chu\u1EA9n c\u1EE7a Qu\u1EA3n lý d\u1EF1 án. có th\u1EC3 ch\u1EEF vi\u1EBFt t\u1EAFt ti\u1EBFng Anh \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng trong m\u1ED9t s\u1ED1 ngôn ng\u1EEF +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +# http://en.wikipedia.org/wiki/Earned_value_management - xem b\u1EA3n d\u1ECBch c\u1EE7a trang này \u0111\u1EC3 \u0111\u01B0\u1EE3c tr\u1EE3 giúp +#ACWP=Chi phí th\u1EF1c t\u1EBF c\u1EE7a công vi\u1EC7c \u0111ã th\u1EF1c hi\u1EC7n +#BAC=D\u1EF1 toán khi hoàn thành +#BCWP=Chi phí d\u1EF1 toán c\u1EE7a công vi\u1EC7c \u0111ã th\u1EF1c hi\u1EC7n +#BCWS=Chi phí d\u1EF1 toán c\u1EE7a công vi\u1EC7c \u0111ã l\u1EADp k\u1EBF ho\u1EA1ch +#CPI=Ch\u1EC9 s\u1ED1 chi phí th\u1EF1c hi\u1EC7n +#CSI=Ch\u1EC9 s\u1ED1 chi phí l\u1EADp k\u1EBF ho\u1EA1ch +#CV=Sai l\u1EC7ch chi phí +#CV=Ph\u1EA7n tr\u0103m sai l\u1EC7ch chi phí +#EAC=\u01AF\u1EDBc tính khi hoàn thành +#SPI=Ch\u1EC9 s\u1ED1 th\u1EF1c hi\u1EC7n k\u1EBF ho\u1EA1ch +#SV=Sai l\u1EC7ch k\u1EBF ho\u1EA1ch +#SV=Ph\u1EA7n tr\u0103m sai l\u1EC7ch k\u1EBF ho\u1EA1ch +#TCPI=\u0110\u1EC3 hoàn thành ch\u1EC9 s\u1ED1 th\u1EF1c hi\u1EC7n +#VAC=Giá tr\u1ECB lúc hoàn thành +#WBS=C\u1EA5u trúc phân tích công vi\u1EC7c +#RBS=C\u1EA5u trúc phân tích tài nguyên + + + +AboutDialog.About=nói v\u1EC1 +AboutDialog.copyright=b\u1EA3n quy\u1EC1n +AccessControlPolicy.PUBLIC=công khai +AccessControlPolicy.RESTRICTED=b\u1ECB h\u1EA1n ch\u1EBF +AccrualType.End=cu\u1ED1i cùng +AccrualType.Prorated=chia theo t\u1EF7 l\u1EC7 +AccrualType.Start=b\u1EAFt \u0111\u1EA7u +AssignmentDialog.ShowingAllResources=hi\u1EC3n th\u1ECB t\u1EA5t c\u1EA3 tài nguyên +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=ch\u1EC9 hi\u1EC3n th\u1ECB tài nguyên trong \u0111\u1ED9i d\u1EF1 án +AssignmentDialog.none=không có +Bar.assignment=phân công +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 10 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 1 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 2 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 3 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 4 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 5 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 6 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 7 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 8 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 9 +Bar.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +Bar.critical=quan tr\u1ECDng +Bar.deadline=h\u1EA1n chót +Bar.external=bên ngoài +Bar.milestone=m\u1ED1c +Bar.subproject=d\u1EF1 án ph\u1EE5 +Bar.summary=tóm t\u1EAFt +Bar.task=tác v\u1EE5 +Bar.timesheet=th\u1EDDi gian bi\u1EC3u +Bar.totalSlack=d\u1EF1 tr\u1EEF toàn ph\u1EA7n +BarPanel.Shape=hình d\u1EA1ng +BaselineDialog.Baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +BaselineDialog.For=cho +BookingType.Committed=\u0111ã cam k\u1EBFt +BookingType.Proposed=\u0111ã \u0111\u1EC1 xu\u1EA5t +ButtonText.Cancel=h\u1EE7y +ButtonText.Close=\u0111óng +ButtonText.IAccept=ch\u1EA5p nh\u1EADn +ButtonText.OK=\u0111\u1ED3ng ý +ButtonText.Open=m\u1EDF +ButtonText.OpenCopy=sao chép m\u1EDF +Calendar.24Hours=24 gi\u1EDD +Calendar.EditedWorkingHours=Th\u1EDDi gian làm vi\u1EC7c \u0111ã ch\u1EC9nh s\u1EEDa +CalendarDialogBox.Wednesday=Th\u1EE9 T\u01B0 +CalendarDialogBox.September=Tháng Chín +CalendarDialogBox.Seventeen=M\u01B0\u1EDDi b\u1EA3y +CalculationDialogBox.Manual=s\u1ED5 tay +Calendar.EditsToADayOfTheWeek=ch\u1EC9nh s\u1EEDa t\u1EDBi ngày c\u1EE7a tu\u1EA7n +CalendarDialogBox.HoursPerday=s\u1ED1 gi\u1EDD trên m\u1ED9t ngày +CalculationDialogBox.Prorated=chia theo t\u1EF7 l\u1EC7 +Calendar.EditsToAnIndividualDay=ch\u1EC9nh s\u1EEDa t\u1EDBi ngày riêng bi\u1EC7t +CalendarDialogBox.DurationSettings=cài \u0111\u1EB7t kho\u1EA3ng th\u1EDDi gian +CalendarDialogBox.SetAsDefault=Cài \u0111\u1EB7t m\u1EB7c \u0111\u1ECBnh +CalendarDialogBox.HoursPerWeek=s\u1ED1 gi\u1EDD trên m\u1ED9t tu\u1EA7n +CalendarDialogBox.DaysPerMonth=s\u1ED1 ngày trên m\u1ED9t tháng +Calendar.ExceptionCircular=vòng ngo\u1EA1i l\u1EC7 +CalendarDialogBox.Monday=Th\u1EE9 Hai +CalendarDialogBox.Tuesday=Th\u1EE9 Ba +CalendarDialogBox.Thursday=Th\u1EE9 N\u0103m +CalendarDialogBox.Friday=Th\u1EE9 Sáu +CalendarDialogBox.Saturday=Th\u1EE9 B\u1EA3y +CalendarDialogBox.Sunday=Ch\u1EE7 Nh\u1EADt +CalendarDialogBox.January=Tháng M\u1ED9t +CalendarDialogBox.February=Tháng Hai +CalendarDialogBox.March=Tháng Ba +CalendarDialogBox.April=Tháng T\u01B0 +CalendarDialogBox.August=Tháng Tám +CalendarDialogBox.October=Tháng M\u01B0\u1EDDi +CalendarDialogBox.November=Tháng M\u01B0\u1EDDi M\u1ED9t +CalendarDialogBox.December=Tháng M\u01B0\u1EDDi Hai +CalendarDialogBox.EightAM=08:00 Sáng +CalendarDialogBox.SixPM=06:00 T\u1ED1i +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=B\u1EAFt \u0111\u1EA7u +Calendar.NightShift=Ca \u0111êm +Calendar.Nonworking=Không làm vi\u1EC7c +Calendar.Standard=Tiêu chu\u1EA9n +Calendar.Unmodified=không thay \u0111\u1ED5i +CalendarDialogBox.May=Tháng N\u0103m +CalendarDialogBox.June=Tháng Sáu +CalendarDialogBox.July=Tháng B\u1EA3y +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=ng\u01B0\u1EDDi s\u1EED d\u1EE5ng b\u1EAFt \u0111\u1EA7u n\u0103m cho s\u1ED1 FV +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=Nh\u1EEFng cài \u0111\u1EB7t ch\u1EC9 áp d\u1EE5ng cho kho\u1EA3ng th\u1EDDi gian +CalculationDialogBox.AndMoveStartOfRemaining=Và di chuy\u1EC3n b\u1EAFt \u0111\u1EA7u c\u1EE7a ph\u1EA7n còn l\u1EA1i +CalculationDialogBox.AndMoveEndOfCompleted=và di chuy\u1EC3n cu\u1ED1i cùng c\u1EE7a ph\u1EA7n \u0111ã hoàn thành +CalculationDialogBox.MoveEndOfCompleteParts=di chuy\u1EC3n cu\u1ED1i cùng c\u1EE7a b\u1ED9 ph\u1EADn hoàn thành +Calendar.Working=Làm vi\u1EC7c +Category.assignmentEntrySpreadsheet=b\u1EA3ng tính phân công \u0111\u1EA7u vào +Category.assignmentSpreadsheet=b\u1EA3ng tính phân công +Category.availabilitySpreadsheet=b\u1EA3ng tính s\u1EB5n có +Category.costRates=t\u1EF7 l\u1EC7 chi phí +Category.dependencySpreadsheet=b\u1EA3ng tính ph\u1EE5 thu\u1ED9c +CalculationDialogBox.Automatic=T\u1EF1 \u0111\u1ED9ng +CalculationDialogBox.Calculate=Tính toán +Category.distributionSpreadsheet=B\u1EA3ng tính +CalculationDialogBox.Calculation=S\u1EF1 tính toán +CalculationDialogBox.EarnedValue=Giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Category.projectSpreadsheet=B\u1EA3ng tính d\u1EF1 án +Category.resourceAssignmentSpreadsheet=b\u1EA3ng tính phân công tài nguyên +Category.resourceSpreadsheet=b\u1EA3ng tính tài nguyên +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=b\u1EA3ng tính phân công tài nguyên +Category.taskAssignmentSpreadsheet=b\u1EA3ng tính phân công tác v\u1EE5 +Category.taskSpreadsheet=b\u1EA3ng tính tác v\u1EE5 +Category.taskSpreadsheet;projectSpreadsheet=b\u1EA3ng tính d\u1EF1 án +CalculationDialogBox.End=K\u1EBFt thúc +Category.timesheetSpreadsheet=b\u1EA3ng tính th\u1EDDi gian bi\u1EC3u +ChangeWorkingTimeDialogBox.BasedOn=D\u1EF1a theo +ChangeWorkingTimeDialogBox.ChangeWorkingTime=Thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c +ChangeWorkingTimeDialogBox.For=cho +ChangeWorkingTimeDialogBox.From=t\u1EEB +ChangeWorkingTimeDialogBox.ModificationMessage="blue">thông \u0111i\u1EC7p thay \u0111\u1ED5i +ChangeWorkingTimeDialogBox.New=m\u1EDBi +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=không có th\u1EDDi gian làm vi\u1EC7c m\u1EB7c \u0111\u1ECBnh +ChangeWorkingTimeDialogBox.NonWorkingTime=không có th\u1EDDi gian làm vi\u1EC7c +ChangeWorkingTimeDialogBox.NotEdiableMessage="red">thông \u0111i\u1EC7p không s\u1EEDa \u0111\u1ED5i +ChangeWorkingTimeDialogBox.Options=Tùy ch\u1ECDn +ChangeWorkingTimeDialogBox.To=T\u1EDBi +ChangeWorkingTimeDialogBox.UseDefault=S\u1EED d\u1EE5ng m\u1EB7c \u0111\u1ECBnh +ChartLegend.ResourceFilter=L\u1ECDc tài nguyên +ClientRole.Inactive=\u0111ang ho\u1EA1t \u0111\u1ED9ng / inactive = không ho\u1EA1t \u0111\u1ED9ng) +ClientRole.ProjectManager=Qu\u1EA3n lý d\u1EF1 án +ClientRole.TeamMember=Thành viên \u0111\u1ED9i +ClientRole.TeamResource=Tài nguyên \u0111\u1ED9i +ColumnDialog.InsertColumn=Chèn c\u1ED9t +Command.UpateProject=C\u1EADp nh\u1EADt d\u1EF1 án +Command.UpdateTasks=C\u1EADp nh\u1EADt công vi\u1EC7c +ConstraintType.ALAP=tr\u1EC5 nh\u1EA5t có th\u1EC3 +ConstraintType.ASAP=s\u1EDBm nh\u1EA5t có th\u1EC3 +ConstraintType.FNET=k\u1EBFt thúc không s\u1EDBm h\u01A1n +ConstraintType.FNLT=k\u1EBFt thúc không tr\u1EC5 h\u01A1n +ConstraintType.HAMM=Hamak +ConstraintType.MFO=ph\u1EA3i k\u1EBFt thúc t\u1EA1i +ConstraintType.MSO=ph\u1EA3i b\u1EAFt \u0111\u1EA7u t\u1EA1i +ConstraintType.SNET=b\u1EAFt \u0111\u1EA7u không s\u1EDBm h\u01A1n +ConstraintType.SNLT=b\u1EAFt \u0111\u1EA7u không tr\u1EC5 h\u01A1n + +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=ch\u1EC9 s\u1ED1 t\u1EF7 l\u1EC7 chi phí A +CostRateIndex.B=ch\u1EC9 s\u1ED1 t\u1EF7 l\u1EC7 chi phí B +CostRateIndex.C=ch\u1EC9 s\u1ED1 t\u1EF7 l\u1EC7 chi phí C +CostRateIndex.D=ch\u1EC9 s\u1ED1 t\u1EF7 l\u1EC7 chi phí D +CostRateIndex.E=ch\u1EC9 s\u1ED1 t\u1EF7 l\u1EC7 chi phí E +Date.NoEnd=không cu\u1ED1i cùng +# NA=không áp d\u1EE5ng +Date.NoStart=không b\u1EAFt \u0111\u1EA7u +Date.Quarter=m\u1ED9t ph\u1EA7n t\u01B0 1 +Date.Half=m\u1ED9t n\u1EEDa 1 +Date.Quarter=m\u1ED9t ph\u1EA7n t\u01B0 2 +Date.Half=m\u1ED9t n\u1EEDa 2 +DefaultFrameManager.Project=d\u1EF1 án +DelegateTaskDialog.DelegateTask=tác v\u1EE5 \u1EE7y quy\u1EC1n + +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=KK +DependencyType.FS=KB +DependencyType.SF=BK +DependencyType.SS=BB +DependencyType.longFF=KK dài +DependencyType.longFS=KB dài +DependencyType.longSF=BK dài +DependencyType.longSS=BB dài +EarnedValueCalculator.SPI=ZPE \u2026\u2026\u2026\u2026\u2026\u2026\u2026 Zamanlama Performans Endeksi +EarnedValueCalculator.CPI=MPE \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Performans Endeksi +EarnedValueCalculator.CSI=MÇE \u2026\u2026\u2026\u2026\u2026\u2026. Maliyet Çizelgesi Endeksi +EarnedValueMethodType.PercentComplete=Ph\u1EA7n tr\u0103m hoàn thành +EarnedValueMethodType.PhysicalPercentComplete=ph\u1EA7n tr\u0103m kh\u1ED1i l\u01B0\u1EE3ng công vi\u1EC7c th\u1EF1c t\u1EBF hoàn thành +ExpenseType.CAPITALIZE=Tài tr\u1EE3 +ExpenseType.DIRECT=Tr\u1EF1c ti\u1EBFp +ExpenseType.EXPENSE=Kinh phí +ExpenseType.INDIRECT=Gián ti\u1EBFp +ExpenseType.NONE=Không có +ExpenseType.OVERHEAD=Chi phí chung +Field.accessControlPolicy=chính sách qu\u1EA3n lý truy c\u1EADp +Field.accrueAt=tích l\u0169y t\u1EA1i +Field.actualCost=Chi phí th\u1EF1c t\u1EBF +Field.actualDuration=Kho\u1EA3ng th\u1EDDi gian th\u1EF1c t\u1EBF +Field.actualFinish=K\u1EBFt thúc th\u1EF1c t\u1EBF +Field.actualFixedCost=Chi phí c\u1ED1 \u0111\u1ECBnh th\u1EF1c t\u1EBF +Field.actualOvertimeCost=Chi phí t\u0103ng ca th\u1EF1c t\u1EBF +Field.actualOvertimeWork=Công vi\u1EC7c t\u0103ng ca th\u1EF1c t\u1EBF +Field.actualOvertimeWorkProtected=Công vi\u1EC7c t\u0103ng ca th\u1EF1c t\u1EBF \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 +Field.actualStart=B\u1EAFt \u0111\u1EA7u th\u1EF1c t\u1EBF +Field.actualWork=Công vi\u1EC7c th\u1EF1c t\u1EBF +Field.actualWorkProtected=Công vi\u1EC7c th\u1EF1c t\u1EBF \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 +Field.acwp=GÇFM \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Gerçekle\u015Ftirilen Çal\u0131\u015Fman\u0131n Fiili Maliyeti +Field.assignedRate=t\u1EF7 l\u1EC7 \u0111\u01B0\u1EE3c phân công +Field.assignment=s\u1EF1 phân công +Field.assignmentEntryAssigned=phân công \u0111\u1EA7u vào +Field.assignmentEntryName=tên \u0111\u1EA7u vào +Field.assignmentEntryRate=t\u1EF7 l\u1EC7 \u0111\u1EA7u vào phân công +Field.assignmentProjectName=tên d\u1EF1 án phân công +Field.assignmentResourceId=mã tài nguyên phân công +Field.assignmentResourceName=tên tài nguyên phân công +Field.assignmentTaskId=mã tác v\u1EE5 phân công +Field.assignmentTaskName=tên tác v\u1EE5 phân công +Field.assignmentUnits=\u0111\u01A1n v\u1ECB phân công +Field.availableFrom=s\u1EB5n có t\u1EEB +Field.availableTo=có s\u1EB5n t\u1EDBi +Field.bac=TB \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Tamamlanma Bütçesi +Field.baseCalendar=l\u1ECBch c\u01A1 s\u1EDF +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # Chi phí +Field.baseline#Duration=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # Kho\u1EA3ng th\u1EDDi gian +Field.baseline#Finish=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # K\u1EBFt thúc +Field.baseline#Start=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # B\u1EAFt \u0111\u1EA7u +Field.baseline#Work=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF # Công vi\u1EC7c +Field.bcwp=GÇBM \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Gerçekle\u015Fen Çal\u0131\u015Fma Bütçe Maliyeti +Field.bcws=ZÇBM \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026 Zamanlanan Çal\u0131\u015Fma Bütçe Maliyeti +Field.benefit=l\u1EE3i nhu\u1EADn +Field.bookingType=lo\u1EA1i \u0111\u0103ng ký +Field.budgetStatusIndicator=ch\u1EC9 s\u1ED1 tr\u1EA1ng thái d\u1EF1 toán +Field.cachedEnd=cu\u1ED1i cùng +Field.cachedStart=b\u1EAFt \u0111\u1EA7u +Field.canLevel=m\u1EE9c \u0111\u1ED9 có th\u1EC3 +Field.code=mã +Field.complete=hoàn thành +Field.completeThrough=hoàn thành hoàn toàn +Field.completedThrough=\u0111ã hoàn thành hoàn toàn +Field.confirmed=\u0111ã xác nh\u1EADn +Field.constraintDate=ngày ràng bu\u1ED9c +Field.constraintType=lo\u1EA1i ràng bu\u1ED9c +Field.contact=liên h\u1EC7 +Field.cost=chi phí +Field.costPerUse=chi phí m\u1ED7i l\u1EA7n s\u1EED d\u1EE5ng +Field.costRateTable=b\u1EA3ng t\u1EF7 l\u1EC7 chi phí +Field.costVariance=sai l\u1EC7ch chi phí +Field.cpi=MPE \u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Performans Endeksi +Field.created=\u0111ã t\u1EA1o ra +Field.creationDate=ngày t\u1EA1o ra +Field.critical=quan tr\u1ECDng +Field.csi=MÇE \u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Çizelgesi Endeksi +Field.cumulativeCost=chi phí tích l\u0169y +Field.cumulativePercentComplete=ph\u1EA7n tr\u0103m hoàn thành tích l\u0169y +FieldDialog.ResourceInformation=thông tin tài nguyên +Field.cumulativeWork=công vi\u1EC7c tích l\u0169y +Field.currentDate=ngày hi\u1EC7n t\u1EA1i +Field.customCost=chi phí tùy ch\u1EC9nh +Field.customDate=ngày tùy ch\u1EC9nh +Field.customDuration=kho\u1EA3ng th\u1EDDi gian tùy ch\u1EC9nh +Field.customFinish=k\u1EBFt thúc tùy ch\u1EC9nh +Field.customFlag=c\u1EDD tùy ch\u1EC9nh +Field.customNumber=S\u1ED1 tùy ch\u1EC9nh +Field.customOutlineCode=mã phân c\u1EA5p tùy ch\u1EC9nh +Field.customStart=B\u1EAFt \u0111\u1EA7u tùy ch\u1EC9nh +Field.customText=v\u0103n b\u1EA3n tùy ch\u1EC9nh +Field.cv=MV \u2026\u2026\u2026\u2026\u2026\u2026\u2026.. Maliyet Varyans\u0131 +Field.cvPercent=ph\u1EA7n tr\u0103m +Field.deadline=h\u1EA1n chót +Field.debugDependencyOrder=ch\u1EC9nh l\u1ED7i th\u1EE9 b\u1EADc ph\u1EE5 thu\u1ED9c +Field.delay=ch\u1EADm tr\u1EC5 +Field.delegatedTo=\u1EE7y quy\u1EC1n t\u1EDBi +Field.dependencyDate=ngày ph\u1EE5 thu\u1ED9c +Field.dependencyStart=b\u1EAFt \u0111\u1EA7u ph\u1EE5 thu\u1ED9c +Field.dependencyType=lo\u1EA1i ph\u1EE5 thu\u1ED9c +Field.dirty=b\u1EA9n +Field.duration=kho\u1EA3ng th\u1EDDi gian +Field.durationVariance=sai l\u1EC7ch kho\u1EA3ng th\u1EDDi gian +Field.eac=TTM \u2026\u2026\u2026\u2026\u2026\u2026 Tahmini Tamamlama Maliyeti +Field.earliestStartingTask=tác v\u1EE5 b\u1EAFt \u0111\u1EA7u s\u1EDBm nh\u1EA5t +Field.earlyFinish=k\u1EBFt thúc s\u1EDBm +Field.earlyStart=b\u1EAFt \u0111\u1EA7u s\u1EDBm +Field.earnedValueMethod=ph\u01B0\u01A1ng pháp giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Field.effectiveDate=ngày hi\u1EC7u l\u1EF1c +Field.effortDriven=n\u1ED7 l\u1EF1c thúc \u0111\u1EA9y +Field.elapsedDuration=kho\u1EA3ng th\u1EDDi gian trôi qua +Field.emailAddress=\u0111\u1ECBa ch\u1EC9 th\u01B0 \u0111i\u1EC7n t\u1EED +Field.estimated=\u01B0\u1EDBc tính +Field.expectedDuration=kho\u1EA3ng th\u1EDDi gian k\u1EF3 v\u1ECDng +Field.expectedFinish=k\u1EBFt thúc k\u1EF3 v\u1ECDng +Field.expectedStart=b\u1EAFt \u0111\u1EA7u k\u1EF3 v\u1ECDng +Field.expenseType=lo\u1EA1i kinh phí +Field.externalId=mã bên ngoài +Field.externalTask=tác v\u1EE5 bên ngoài +Field.finish=K\u1EBFt thúc +Field.finishDate=Ngày k\u1EBFt thúc +Field.finishOffset=\u0111\u1ED9 l\u1EC7ch k\u1EBFt thúc +Field.finishSlack=d\u1EF1 tr\u1EEF k\u1EBFt thúc +Field.finishVariance=sai l\u1EC7ch k\u1EBFt thúc +Field.fixedCost=Chi phí c\u1ED1 \u0111\u1ECBnh +Field.fixedCostAccrual=c\u1ED9ng d\u1ED3n chi phí c\u1ED1 \u0111\u1ECBnh +Field.forward=phía tr\u01B0\u1EDBc +Field.freeSlack=d\u1EF1 tr\u1EEF riêng ph\u1EA7n +Field.ganttSnapshot=\u1EA3nh ch\u1EE5p nhanh Gantt +Field.generic=chung +Field.group=nhóm +Field.groupBySummary=nhóm b\u1EDFi tóm t\u1EAFt +Field.hideBar=\u1EA9n thanh +Field.hyperlink=siêu liên k\u1EBFt +Field.hyperlinkAddress=\u0111\u1ECBa ch\u1EC9 siêu liên k\u1EBFt +Field.hyperlinkHref=\u0111\u1ECBa ch\u1EC9 siêu liên k\u1EBFt Href +Field.hyperlinkSubAddress=\u0111\u1ECBa ch\u1EC9 ph\u1EE5 siêu liên k\u1EBFt +# ID=Identifier +Field.id=Mã +Field.ignoreResourceCalendar=b\u1ECF qua tài nguyên l\u1ECBch +Field.inactive=(in active = \u0111ang ho\u1EA1t \u0111\u1ED9ng / inactive = không ho\u1EA1t \u0111\u1ED9ng) +Field.indicators=ch\u1EC9 s\u1ED1 +Field.initials=vi\u1EBFt t\u1EAFt +Field.justModified=m\u1EDBi thay \u0111\u1ED5i +Field.lag=\u0111\u1ED9 tr\u1EC5 +Field.lastModificationDate=ngày thay \u0111\u1ED5i cu\u1ED1i cùng +Field.lastTimesheetUpdate=c\u1EADp nh\u1EADt th\u1EDDi gian bi\u1EC3u cu\u1ED1i cùng +Field.lateFinish=k\u1EBFt thúc mu\u1ED9n +Field.lateStart=b\u1EAFt \u0111\u1EA7u mu\u1ED9n +Field.latestFinishingTask=tác v\u1EE5 k\u1EBFt thúc tr\u1EC5 nh\u1EA5t +Field.levelAssignments=phân công m\u1EE9c \u0111\u1ED9 +Field.levelingCanSplit=phân chia có th\u1EC3 san b\u1EB1ng +Field.levelingDelay=ch\u1EADm tr\u1EC5 san b\u1EB1ng +Field.linkedFields=tr\u01B0\u1EDDng k\u1EBFt n\u1ED1i +Field.manager=qu\u1EA3n lý +Field.markTaskAsMilestone=\u0111ánh d\u1EA5u tác v\u1EE5 làm m\u1ED1c +Field.marked=\u0111ã \u0111ánh d\u1EA5u +Field.materialLabel=nhãn v\u1EADt t\u01B0 +Field.maximumUnits=\u0111\u01A1n v\u1ECB t\u1ED1i \u0111a +Field.milestone=m\u1ED1c +Field.name=tên +Field.negativeSlack=d\u1EF1 tr\u1EEF âm +Field.netPresentValue=giá tr\u1ECB hi\u1EC7n t\u1EA1i ròng +Field.networkSnapshot=\u1EA3nh ch\u1EE5p nhanh công vi\u1EC7c ròng +Field.notes=ghi chú +Field.objects=m\u1EE5c tiêu +Field.optimisticDuration=kho\u1EA3ng th\u1EDDi gian t\u1ED1i \u01B0u hóa +Field.optimisticFinish=k\u1EBFt thúc t\u1ED1i \u01B0u hóa +Field.optimisticStart=b\u1EAFt \u0111\u1EA7u t\u1ED1i \u01B0u hóa +Field.outlineLevel=m\u1EE9c \u0111\u1ED9 phân c\u1EA5p +Field.outlineNumber=s\u1ED1 phân c\u1EA5p +Field.overallocated=v\u01B0\u1EE3t quá phân b\u1ED5 +Field.overallocation=v\u01B0\u1EE3t quá s\u1EF1 phân b\u1ED5 +Field.overtimeCost=chi phí t\u0103ng ca +Field.overtimeRate=t\u1EF7 l\u1EC7 t\u0103ng ca +Field.overtimeWork=công vi\u1EC7c t\u0103ng ca +Field.parentId=mã ngu\u1ED3n g\u1ED1c +Field.partner=\u0111\u1ED1i tác +Field.peak=\u0111\u1EC9nh +Field.peakUnits=\u0111\u01A1n v\u1ECB \u0111\u1EC9nh +Field.pendingTimesheetUpdate=c\u1EADp nh\u1EADt th\u1EDDi gian bi\u1EC3u ch\u01B0a gi\u1EA3i quy\u1EBFt +Field.percentAllocation=ph\u1EA7n tr\u0103m phân b\u1ED5 +Field.percentComplete=ph\u1EA7n tr\u0103m hoàn thành +Field.percentWorkComplete=ph\u1EA7n tr\u0103m hoàn thành công vi\u1EC7c +Field.pessimisticDuration=kho\u1EA3ng th\u1EDDi gian bi quan +Field.pessimisticFinish=k\u1EBFt thúc bi quan +Field.pessimisticStart=b\u1EAFt \u0111\u1EA7u bi quan +Field.phonetics=ng\u1EEF âm h\u1ECDc +Field.physicalPercentComplete=ph\u1EA7n tr\u0103m kh\u1ED1i l\u01B0\u1EE3ng công vi\u1EC7c th\u1EF1c t\u1EBF hoàn thành +Field.predecessorId=mã \u0111\u1EE9ng tr\u01B0\u1EDBc +Field.predecessorName=tên \u0111\u1EE9ng tr\u01B0\u1EDBc +Field.predecessors=\u0111\u1EE9ng tr\u01B0\u1EDBc +Field.preleveledFinish=k\u1EBFt thúc tr\u01B0\u1EDBc san b\u1EB1ng +Field.preleveledStart=b\u1EAFt \u0111\u1EA7u tr\u01B0\u1EDBc san b\u1EB1ng +Field.priority=\u01B0u tiên +Field.project=d\u1EF1 án +Field.projectDivision=b\u1ED9 ph\u1EADn d\u1EF1 án +Field.projectGroup=nhóm d\u1EF1 án +Field.projectId=mã d\u1EF1 án +Field.projectStatus=tr\u1EA1ng thái d\u1EF1 án +Field.projectType=lo\u1EA1i d\u1EF1 án +Field.rate=t\u1EF7 l\u1EC7 +Field.rbsCode=mã RBS +Field.readOnlyDuration=kho\u1EA3ng th\u1EDDi gian ch\u1EC9 \u0111\u1ECDc +Field.recurring=\u0111\u1ECBnh k\u1EF3 +Field.referringSubprojectTaskDependencyDate=ngày ph\u1EE5 thu\u1ED9c tác v\u1EE5 d\u1EF1 án ph\u1EE5 liên quan +Field.regularWork=công vi\u1EC7c th\u01B0\u1EDDng xuyên +Field.remainingAvailability=s\u1EB5n có còn l\u1EA1i +Field.remainingCost=chi phí còn l\u1EA1i +Field.remainingDuration=kho\u1EA3ng th\u1EDDi gian còn l\u1EA1i +Field.remainingOvertimeCost=chi phí t\u0103ng ca còn l\u1EA1i +Field.remainingOvertimeWork=công vi\u1EC7c t\u0103ng ca còn l\u1EA1i +FieldDialog.TaskInformation=thông tin tác v\u1EE5 +Field.remainingWork=công vi\u1EC7c còn l\u1EA1i +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=lo\u1EA1i yêu c\u1EA7u nhu c\u1EA7u +Field.resourceAvailability=s\u1EB5n có tài nguyên +Field.resourceGroup=nhóm tài nguyên +Field.resourceId=mã tài nguyên +Field.resourceInitials=vi\u1EBFt t\u1EAFt tài nguyên +Field.resourceNames=tên tài nguyên +Field.resourcePhonetics=ng\u1EEF âm h\u1ECDc tài nguyên +Field.resourcePool=t\u1ED5 h\u1EE3p tài nguyên +Field.resourceType=lo\u1EA1i tài nguyên +Field.responsePending=ch\u01B0a gi\u1EA3i quy\u1EBFt ph\u1EA3n h\u1ED3i +Field.resume=làm l\u1EA1i +Field.risk=r\u1EE7i ro +Field.rollup=\u0111i\u1EC3m danh +Field.scheduleStatusIndicator=ch\u1EC9 s\u1ED1 tr\u1EA1ng thái l\u1ECBch trình +Field.schedulingMethod=ph\u01B0\u01A1ng pháp l\u1ECBch trình +Field.showProjectResourcesOnly=ch\u1EC9 hi\u1EC7n th\u1ECB tài nguyên d\u1EF1 án +Field.spi=TME \u2026\u2026\u2026\u2026\u2026\u2026\u2026. Takvim Maliyet Endeksi +Field.standardRate=t\u1EF7 l\u1EC7 tiêu chu\u1EA9n +Field.start=b\u1EAFt \u0111\u1EA7u +Field.startDate=ngày b\u1EAFt \u0111\u1EA7u +Field.startOffset=\u0111\u1ED9 l\u1EC7ch b\u1EAFt \u0111\u1EA7u +Field.startSlack=d\u1EF1 tr\u1EEF b\u1EAFt \u0111\u1EA7u +Field.startVariance=sai l\u1EC7ch b\u1EAFt \u0111\u1EA7u +Field.status=tr\u1EA1ng thái +Field.statusDate=ngày tr\u1EA1ng thái +Field.statusIndicator=ch\u1EC9 s\u1ED1 trang thái +Field.statusTaskIndicator=ch\u1EC9 s\u1ED1 tr\u1EA1ng thái tác v\u1EE5 +Field.stop=d\u1EEBng +Field.subprojectFile=h\u1ED3 s\u01A1 d\u1EF1 án ph\u1EE5 +Field.subprojectOf=d\u1EF1 án ph\u1EE5 c\u1EE7a +Field.subprojectReadOnly=ch\u1EC9 \u0111\u1ECDc d\u1EF1 án ph\u1EE5 +Field.successorId=mã \u0111\u1EE9ng sau +Field.successorName=tên \u0111\u1EE9ng sau +Field.successors=\u0111\u1EE9ng sau +Field.summary=tóm t\u1EAFt +Field.summaryProgress=ti\u1EBFn \u0111\u1ED9 tóm t\u1EAFt +Field.suprojectReadOnly=ch\u1EC9 \u0111\u1ECDc d\u1EF1 án ph\u1EE5 +Field.sv=SV +Field.svPercent=ph\u1EA7n tr\u0103m +Field.taskCalendar=l\u1ECBch tác v\u1EE5 +Field.taskId=mã tác v\u1EE5 +Field.taskName=tên tác v\u1EE5 +Field.taskOutlineNumber=s\u1ED1 phân c\u1EA5p tác v\u1EE5 +Field.taskSummaryName=tên tóm t\u1EAFt tác v\u1EE5 +Field.taskType=lo\u1EA1i tác v\u1EE5 +Field.tcpi=TGPE \u2026\u2026\u2026\u2026\u2026.. Tamamlama için Gerekli Performans Endeksi +Field.teamStatusPending=tr\u1EA1ng thái ch\u01B0a gi\u1EA3i quy\u1EBFt +Field.textAbove=v\u0103n b\u1EA3n phía trên +Field.timesheetFinish=k\u1EBFt thúc th\u1EDDi gian bi\u1EC3u +Field.timesheetStart=b\u1EAFt \u0111\u1EA7u th\u1EDDi gian bi\u1EC3u +FieldDialog.document=tài li\u1EC7u +Field.timesheetStatus=tr\u1EA1ng thái th\u1EDDi gian bi\u1EC3u +Field.timesheetStatusName=tên tr\u1EA1ng thái th\u1EDDi gian bi\u1EC3u +Field.totalSlack=d\u1EF1 tr\u1EEF toàn ph\u1EA7n +Field.totalSlackEnd=d\u1EF1 tr\u1EEF toàn ph\u1EA7n cu\u1ED1i cùng +Field.totalSlackStart=d\u1EF1 tr\u1EEF toàn ph\u1EA7n b\u1EAFt \u0111\u1EA7u +Field.uniqueId=mã duy nh\u1EA5t +Field.uniqueIdPredecessors=mã \u0111\u1EE9ng tr\u01B0\u1EDBc duy nh\u1EA5t +Field.uniqueIdSuccessors=mã \u0111\u1EE9ng sau duy nh\u1EA5t +Field.unitAvailability=s\u1EB5n có \u0111\u01A1n v\u1ECB +Field.updateNeeded=nhu c\u1EA7u c\u1EADp nh\u1EADt +Field.userAccount=tài kho\u1EA3n ng\u01B0\u1EDDi dùng +Field.userRole=vai trò ng\u01B0\u1EDDi dùng +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=ngu\u1ED3n g\u1ED1c +Field.wbsParentName=tên ngu\u1ED3n g\u1ED1c +Field.wbsPredecessors=WBS \u0111\u1EE9ng tr\u01B0\u1EDBc +Field.wbsSuccessors=WBS \u0111\u1EE9ng sau +Field.work=công vi\u1EC7c +Field.workAvailability=s\u1EB5n có công vi\u1EC7c +Field.workContour=\u0111\u1ED3ng m\u1EE9c công vi\u1EC7c +Field.workVariance=sai l\u1EC7ch công vi\u1EC7c +File.microsoft=Microsoft +File.microsoftXML=microsoftXML +File.planner=ng\u01B0\u1EDDi l\u1EADp k\u1EBF ho\u1EA1ch +File.projects=d\u1EF1 án +File.projity=ProjectLibre +Filter.CompletedTasks=tác v\u1EE5 \u0111ã hoàn thành +Filter.CostOverbudgetTasks=tác v\u1EE5 có chi phí v\u01B0\u1EE3t d\u1EF1 toán +Filter.CriticalTasks=tác v\u1EE5 quan tr\u1ECDng +Filter.DateRange=ph\u1EA1m vi ngày +Filter.Flag=c\u1EDD 1 +Filter.Flag=c\u1EDD 2 +Filter.Flag=c\u1EDD 3 +Filter.InProgressAssignments=phân công \u0111ang ti\u1EBFn hành +Filter.InProgressTasks=tác v\u1EE5 \u0111ang ti\u1EBFn hành +Filter.IncompleteTasks=tác v\u1EE5 \u0111ang hoàn thành +Filter.LateOrOverbudgetTasks=tác v\u1EE5 tr\u1EC5 ho\u1EB7c v\u01B0\u1EE3t d\u1EF1 toán +Filter.Milestones=m\u1ED1c +Filter.MyDelegatedTasks=tác v\u1EE5 \u1EE7y quy\u1EC1n c\u1EE7a tôi +Filter.MyTasks=tác v\u1EE5 c\u1EE7a tôi +Filter.None=không có +Filter.NormalTasks=tác v\u1EE5 bình th\u01B0\u1EDDng +Filter.ResourcesMaterial=v\u1EADt t\u01B0 tài nguyên +Filter.ResourcesMe=Ben +Filter.ResourcesWork=công vi\u1EC7c tài nguyên +Filter.SlippedTasks=tác v\u1EE5 quá h\u1EA1n +Filter.SummaryTasks=tác v\u1EE5 tóm t\u1EAFt +Filter.TasksWithEstimatedDurations=tác v\u1EE5 v\u1EDBi kho\u1EA3ng th\u1EDDi gian \u01B0\u1EDBc tính +Filter.UnstartedAssignments=phân công ch\u01B0a b\u1EAFt \u0111\u1EA7u +FixedDuration.FixedDuration=kho\u1EA3ng th\u1EDDi gian c\u1ED1 \u0111\u1ECBnh +Filter.UnstartedTasks=tác v\u1EE5 ch\u01B0a b\u1EAFt \u0111\u1EA7u +Filter.WorkComplete=công vi\u1EC7c hoàn thành +FixedWork.FixedWork=công vi\u1EC7c c\u1ED1 \u0111\u1ECBnh +FixedUnits.FixedUnits=\u0111\u01A1n v\u1ECB c\u1ED1 \u0111\u1ECBnh +FixedDuration.TheDurationMessage=thông \u0111i\u1EC7p kho\u1EA3ng th\u1EDDi gian +FooterRenderer.page=trang +Gantt.Popup.annotationStylesMenu=ki\u1EC3u trình \u0111\u01A1n chú thích +Gantt.Popup.barStylesMenu=ki\u1EC3u trình \u0111\u01A1n thanh +Gantt.Popup.showAssignments=hi\u1EC3n th\u1ECB phân công +Gantt.Popup.showCalendar=hi\u1EC3n th\u1ECB l\u1ECBch +Gantt.Popup.showRows=hi\u1EC3n th\u1ECB hàng +Gantt.Popup.splitMode=ch\u1EBF \u0111\u1ED9 phân chia +Gantt.tooltip.Assignment=phân công +Gantt.tooltip.Resource=tài nguyên +Gantt.tooltip.Task=tác v\u1EE5 +Gantt.tooltip.from=t\u1EEB +Gantt.tooltip.lag=\u0111\u1ED9 tr\u1EC5 +Gantt.tooltip.link=k\u1EBFt n\u1ED1i +Gantt.tooltip.to=t\u1EDBi +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=d\u1EF1 án \u0111\u01B0\u1EE3c ch\u1ECDn \u0111ã m\u1EDF nh\u01B0 d\u1EF1 án ph\u1EE5 +GraphicManager.SelectedProjectAlreadySubproject=d\u1EF1 án \u0111\u01B0\u1EE3c ch\u1ECDn \u0111ã là d\u1EF1 án ph\u1EE5 +Grouper.AssignmentProjectName=tên d\u1EF1 án phân công +Grouper.CompleteIncomplete=hoàn thành trên hoàn thành +Grouper.Critical=quan tr\u1ECDng +Grouper.CriticalThenDuration=quan tr\u1ECDng sau \u0111ó +Grouper.Delegated=\u0111\u01B0\u1EE3c \u1EE7y quy\u1EC1n +Grouper.Duration=kho\u1EA3ng th\u1EDDi gian +Grouper.None=không có +Grouper.ResourceGroup=nhóm tài nguyên +Grouper.ResourceType=lo\u1EA1i tài nguyên +HelpDialog.About=nói v\u1EC1 +HelpDialog.GoToOnlineHelp=\u0111i t\u1EDBi tr\u1EE3 giúp tr\u1EF1c tuy\u1EBFn +HelpDialog.ShowLicense=hi\u1EC3n th\u1ECB gi\u1EA5y phép +HelpDialog.ShowTipsOfTheDay=hi\u1EC3n th\u1ECB m\u1EB9o c\u1EE7a ngày +HelpDialog.WatchHowToVideos=xem th\u1EBF nào \u0111\u1EC3 chi\u1EBFu phim +HyperLinkToolTip.SeeOnlineDemo=xem b\u1EA3n th\u1EED tr\u1EF1c tuy\u1EBFn +HyperLinkToolTip.SeeOnlineHelp=xem tr\u1EE3 giúp tr\u1EF1c tuy\u1EBFn +InformationDialog.AssignResources=tài nguyên phân công +InformationDialog.ChangeWorkingTime=thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c +License.Inactive=(in active = \u0111ang ho\u1EA1t \u0111\u1ED9ng / inactive = không ho\u1EA1t \u0111\u1ED9ng) +License.LiteUser=ng\u01B0\u1EDDi dùng Lite +License.PowerUser=ng\u01B0\u1EDDi s\u1EED d\u1EE5ng thành th\u1EA1o +LicenseDialog.CouldNotLoadLater=Lisans yüklenemedi. Lütfen daha sonra tekrar deneyiniz. +=không th\u1EC3 t\u1EA3i +LicenseDialog.CouldNotLoadExiting=không th\u1EC3 t\u1EA3i +LicenseDialog.Email=th\u01B0 \u0111i\u1EC7n t\u1EED +LicenseDialog.EmailLabel=nhãn th\u01B0 \u0111i\u1EC7n t\u1EED +LicenseDialog.License=gi\u1EA5y phép +LicenseDialog.ThirdParty=bên th\u1EE9 ba +LicenseOption.Administrator=qu\u1EA3n tr\u1ECB viên +LicenseOption.External=bên ngoài +LicenseOption.Inactive=\u0111ang ho\u1EA1t \u0111\u1ED9ng / inactive = không ho\u1EA1t \u0111\u1ED9ng) +LocalFileImporter.Exporting=xu\u1EA5t +LocalFileImporter.Importing=nh\u1EADp +LoginDialog.Login=\u0111\u0103ng nh\u1EADp +LoginDialog.Password=m\u1EADt kh\u1EA9u +LoginDialog.RememberMe=ghi nh\u1EDB tôi +LoginDialog.UseOfficeLook= +LookupDialog.EnterPartOfTheName=nh\u1EADp m\u1ED9t ph\u1EA7n c\u1EE7a tên +LookupDialog.Find=tìm ki\u1EBFm +LookupDialog.LookupAnObject=tìm ki\u1EBFm m\u1EE5c tiêu +LookupDialog.NoMatchesFound=không tìm th\u1EA5y k\u1EBFt qu\u1EA3 phù h\u1EE3p +LookupDialog.Results=k\u1EBFt qu\u1EA3 +LookupDialog.Type=lo\u1EA1i +LookupDialog.UnableToContactServer=không th\u1EC3 liên h\u1EC7 máy ch\u1EE7 +LookupField.LookupAValue=tìm ki\u1EBFm giá tr\u1ECB +Message.ImportError=l\u1ED7i nh\u1EADp +Message.allowDeleteActuals=cho phép xóa th\u1EF1c t\u1EBF +Message.allowDistrbutedStartBeforeProjectStart=cho phép b\u1EAFt \u0111\u1EA7u \u0111\u01B0\u1EE3c phân ph\u1ED1i tr\u01B0\u1EDBc b\u1EAFt \u0111\u1EA7u d\u1EF1 án +Message.allowDistrbutedStartBeforeTaskStart=cho phép b\u1EAFt \u0111\u1EA7u \u0111\u01B0\u1EE3c phân ph\u1ED1i tr\u01B0\u1EDBc b\u1EAFt \u0111\u1EA7u tác v\u1EE5 +Message.allowTaskStartBeforeProjectStart=cho phép b\u1EAFt \u0111\u1EA7u tác v\u1EE5 tr\u01B0\u1EDBc d\u1EF1 án b\u1EAFt \u0111\u1EA7u +Message.alreadyParentChildHierarchy=Zaten mevcut bir özet görev / alt görev ili\u015Fkisi var. +\u0110ã phân c\u1EA5p m\u1ED1i quan h\u1EC7 +Message.badTimeFormat=\u0111\u1ECBnh d\u1EA1ng th\u1EDDi gian x\u1EA5u +Message.badTimeIntervals=chu k\u1EF3 th\u1EDDi gian x\u1EA5u +Message.cannotEnterUnits=không th\u1EC3 nh\u1EADp \u0111\u01A1n v\u1ECB +Message.cannotLinkToSummary=không th\u1EC3 k\u1EBFt n\u1ED1i t\u1EDBi tóm t\u1EAFt +Message.cannotLinkTwice=không th\u1EC3 k\u1EBFt n\u1ED1i l\u1EA7n hai +Message.cantEmptySpreadsheet=b\u1EA3ng tính không th\u1EC3 tr\u1ED1ng +Message.cantLinkToClosedSubproject=không th\u1EC3 k\u1EBFt n\u1ED1i t\u1EDBi d\u1EF1 án ph\u1EE5 \u0111ã \u0111óng +Message.cantLinkToExternal=không th\u1EC3 k\u1EBFt n\u1ED1i t\u1EDBi bên ngoài +Message.cantLinkToSelf=không th\u1EC3 k\u1EBFt n\u1ED1i t\u1EDBi chính nó +Message.circularDependency=s\u1EF1 ph\u1EE5 thu\u1ED9c vòng tròn +Message.confirmDeleteRows=Bu sat\u0131rlar\u0131 silmek istedi\u011Finize emin misiniz? +# {0} öncül görevin ad\u0131d\u0131r, {1} ard\u0131l görevin ad\u0131d\u0131r=xác nh\u1EADn xóa hàng +Message.crossProjectCircularDependency.mf=s\u1EF1 ph\u1EE5 thu\u1ED9c qua các vòng d\u1EF1 án +Message.errorCalendarMustHaveWorkingDay=l\u1ED7i l\u1ECBch ph\u1EA3i có ngày làm vi\u1EC7c +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=l\u1ED7i ph\u1EA7n tr\u0103m ph\u1EA1m vi l\u1EDBn nh\u1EA5t +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=l\u1ED7i ph\u1EA7n tr\u0103m ph\u1EA1m vi nh\u1ECF nh\u1EA5t +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=l\u1ED7i ph\u1EA1m vi +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=l\u1ED7i ph\u1EA1m vi l\u1EDBn nh\u1EA5t +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=l\u1ED7i ph\u1EA1m vi nh\u1ECF nh\u1EA5t +Message.importCircularLink=nh\u1EADp k\u1EBFt n\u1ED1i vòng tròn +Message.invalidAssignments=phân công không hi\u1EC7u l\u1EF1c +Message.invalidChoice=l\u1EF1a ch\u1ECDn không hi\u1EC7u l\u1EF1c +Message.invalidCost=chi phí không hi\u1EC7u l\u1EF1c +Message.invalidDate=Invalid Date\nThis is not a valid date, or it is outside the range of dates, which is 01 January 1970 through 31 December 2049.\nThe date format is your system's date format. For example\: 3/12/06 or 3 Mar 2006. +# {0} is either "predecessor" or "successor=ngày không hi\u1EC7u l\u1EF1c +Message.invalidDependency.mf=Invalid {0}.\nLütfen geçerli görev ID numaralar\u0131 kullan\u0131n.\n\u00B7 {0} bilgisi \u015Fu \u015Fekilde ifade edilmektedir\: {0} ID numaras\u0131, ba\u011F\u0131ml\u0131l\u0131k, teslim/gecikme süresi.\n\u00B7 Görev Bilgi diyalog kutusunu da kullanabilirsiniz. +Message.invalidDuration=s\u1EF1 ph\u1EE5 thu\u1ED9c không hi\u1EC7u l\u1EF1c +Message.invalidInput=\u0111\u1EA7u vào không hi\u1EC7u l\u1EF1c +Message.invalidIntersection=s\u1EF1 giao nhau không hi\u1EC7u l\u1EF1c +Message.invalidRate=t\u1EF7 l\u1EC7 không hi\u1EC7u l\u1EF1c +Message.invalidUnits=\u0111\u01A1n v\u1ECB không hi\u1EC7u l\u1EF1c +Message.notAResource=không ph\u1EA3i tài nguyên +Message.notATask=không ph\u1EA3i tác v\u1EE5 +Message.onlyReplaceOneResourceAtATime=ch\u1EC9 thay th\u1EBF m\u1ED9t tài nguyên m\u1ED9t l\u1EA7n +Message.onlySelectOneElement=ch\u1EC9 l\u1EF1a ch\u1ECDn m\u1ED9t thành ph\u1EA7n +Message.parentConstraintType=lo\u1EA1i ràng bu\u1ED9c ngu\u1ED3n g\u1ED1c +Message.parentSuccessorCannotHaveFinishLink=ngu\u1ED3n g\u1ED1c sau không th\u1EC3 có k\u1EBFt n\u1ED1i k\u1EBFt thúc +Message.projectAlreadyExists=d\u1EF1 án \u0111ã t\u1ED3n t\u1EA1i +Message.projectMustHaveName=d\u1EF1 án ph\u1EA3i có tên +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject=\u0111\u1ED5i tên d\u1EF1 án 1 +Message.renameProject=\u0111\u1ED5i tên d\u1EF1 án 2 +Message.saveProjectAs=l\u01B0u d\u1EF1 án là 1 +Message.saveProjectAs=l\u01B0u d\u1EF1 án là 2 +Message.saveProjectBeforeClosing=l\u01B0u d\u1EF1 án tr\u01B0\u1EDBc khi \u0111óng 1 +Message.saveProjectBeforeClosing=l\u01B0u d\u1EF1 án tr\u01B0\u1EDBc khi \u0111óng 2 +Message.subprojectCut=c\u1EAFt d\u1EF1 án ph\u1EE5 +Message.synchronizeResources=\u0111\u1ED3ng b\u1ED9 tài nguyên +Message.tooManyResourcesSelectedToList.mf=quá nhi\u1EC1u tài nguyên \u0111\u01B0\u1EE3c ch\u1ECDn lên danh sách +Message.tooManyTasksSelectedToList.mf=quá nhi\u1EC1u tác v\u1EE5 \u0111\u01B0\u1EE3c ch\u1ECDn lên danh sách +MicrosoftImporter.ErrorImportingXML=l\u1ED7i nh\u1EADp +MicrosoftImporter.ImportWithSubprojects=nh\u1EADp v\u1EDBi d\u1EF1 án ph\u1EE5 +MicrosoftImporter.Importing=\u0111ang nh\u1EADp +MicrosoftImporter.PrepareResources=chu\u1EA9n b\u1ECB tài nguyên +Network.Popup.barStylesMenu=thanh ki\u1EC3u trình \u0111\u01A1n +NewBaseCalendarDialog.CreateACopyOfCalendar=t\u1EA1o ra m\u1ED9t sao chép c\u1EE7a l\u1ECBch +NewBaseCalendarDialog.CreateANewBaseCalendar=t\u1EA1o ra m\u1ED9t l\u1ECBch c\u01A1 s\u1EDF m\u1EDBi +NewBaseCalendarDialog.Name=tên +NewBaseCalendarDialog.NewBaseCalendar=l\u1ECBch c\u01A1 s\u1EDF m\u1EDBi +Open_Text.ApplicationTitle=tiêu \u0111\u1EC1 \u1EE9ng d\u1EE5ng +OpenProjectDialog.LockedBy=khóa b\u1EDFi +Open_Text.ShortTitle=tiêu \u0111\u1EC1 ng\u1EAFn +Open_Text.welcomeToPod=chào m\u1EEBng t\u1EDBi +OpenProjectDialog.CreationDate=t\u1EA1o ngày +OpenProjectDialog.ModificationDate=ngày thay \u0111\u1ED5i +OpenProjectDialog.Name=tên +Open_Title.ProjityError=l\u1ED7i +Open_Title.ProjityWarning=c\u1EA3nh báo +PageSetupDialog.Margins=\u0111\u01B0\u1EDDng biên +PageSetupDialog.Margins.Left=trái +PageSetupDialog.Margins.Right=ph\u1EA3i +PageSetupDialog.Margins.Top=trên +PageSetupDialog.Margins.Bottom=d\u01B0\u1EDBi +PageSetupDialog.Orientation=h\u01B0\u1EDBng +PageSetupDialog.Orientation.Landscape=n\u1EB1m ngang +PageSetupDialog.Orientation.Portrait=th\u1EB3ng \u0111\u1EE9ng +PageSetupDialog.Orientation.ReverseLandscape=n\u1EB1m ngang \u0111\u1EA3o ng\u01B0\u1EE3c +PageSetupDialog.Page=trang +PageSetupDialog.Paper=gi\u1EA5y +PageSetupDialog.PaperFormat.Custom=\u0111\u1ECBnh d\u1EA1ng gi\u1EA5y.tùy ch\u1EC9nh +PageSetupDialog.PaperSize=kích th\u01B0\u1EDBc gi\u1EA5y +PageSetupDialog.PaperSizeSettings.Custom=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.tùy ch\u1EC9nh +PageSetupDialog.PaperSizeSettings.Custom.Width=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.tùy ch\u1EC9nh. Chi\u1EC1u r\u1ED9ng +PageSetupDialog.PaperSizeSettings.Custom.Height=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.tùy ch\u1EC9nh. Chi\u1EC1u cao + +PageSetupDialog.PaperSizeSettings.Printer=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.máy in + +PageSetupDialog.PaperSizeSettings.SinglePage=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.m\u1ED9t m\u1EB7t +PageSetupDialog.PaperSizeSettings.SinglePage=cài \u0111\u1EB7t kích th\u01B0\u1EDBc gi\u1EA5y.m\u1ED9t m\u1EB7t 2 +PageSetupDialog.Printers=máy in +PageSetupDialog.PrinterPageSetup=cài \u0111\u1EB7t trang máy in +PageSetupDialog.PrinterPDFService=in d\u1EA1ng PDF +PageSetupDialog.PODOnly=ch\u1EC9 nhu c\u1EA7u d\u1EF1 án +PageSetupDialog.PODOnly=ch\u1EC9 nhu c\u1EA7u d\u1EF1 án 2 +PageSetupDialog.Refresh=làm m\u1EDBi +PageSetupDialog.SaveSettings=l\u01B0u cài \u0111\u1EB7t +PageSetupDialog.SaveSettings.ToolTip=m\u1EB9o công c\u1EE5 +PageSetupDialog.SaveWebPDFSettings=l\u01B0u cài \u0111\u1EB7t web PDF +PageSetupDialog.SaveWebPDFSettings.ToolTip=m\u1EB9o công c\u1EE5 +PageSetupDialog.Settings.Label=nhãn +PageSetupDialog.Settings.Local=c\u1EE5c b\u1ED9 +PageSetupDialog.Settings.WebPDF=Web PDF +PageSetupDialog.Scaling=t\u1EF7 l\u1EC7 +PageSetupDialog.Scaling.FitTo=v\u1EEBa v\u1EDBi +PageSetupDialog.Scaling.FitToHeight=v\u1EEBa v\u1EDBi chi\u1EC1u cao +PageSetupDialog.Scaling.FitToWidth=v\u1EEBa v\u1EDBi chi\u1EC1u r\u1ED9ng +PageSetupDialog.Scaling.ScaleTo=t\u1EF7 l\u1EC7 v\u1EDBi +PageSetupDialog.Scaling.ScaleToHeight=t\u1EF7 l\u1EC7 v\u1EDBi chi\u1EC1u cao +PageSetupDialog.Scaling.ScaleToWidth=t\u1EF7 l\u1EC7 v\u1EDBi chi\u1EC1u r\u1ED9ng +PageSetupDialog.Scaling.ScaleToProportions=t\u1EF7 l\u1EC7 cân \u0111\u1ED1i +PageSetupDialog.Scaling.ScaleToProportions=t\u1EF7 l\u1EC7 cân \u0111\u1ED1i 2 +PageSetupDialog.ShowGantt=hi\u1EC3n th\u1ECB Gantt +PageSetupDialog.ShowParts=hi\u1EC3n th\u1ECB ph\u1EA7n +PageSetupDialog.ShowSpreadSheet=hi\u1EC3n th\u1ECB b\u1EA3ng tính +PageSetupDialog.Title=tiêu \u0111\u1EC1 +PageSetupDialog.NotPDFPrintServiceForWebDefault=không in d\u1EA1ng PDF cho m\u1EB7c \u0111\u1ECBnh Web +PageSetupDialog.NotValidPrinter=máy in không h\u1EE3p l\u1EC7 +PersonalContour.personal=cá nhân +ProjectStatus.ACTIVE=ho\u1EA1t \u0111\u1ED9ng +PreviewPanel.Preview=xem tr\u01B0\u1EDBc +PreviewPanelEnd.Preview=xem tr\u01B0\u1EDBc +ProjectDialog.AllResourcesExceptCustomerPartner=t\u1EA5t c\u1EA3 tài nguyên tr\u1EEB khách hàng \u0111\u1ED1i tác +ProjectDialog.Notes=ghi chú +ProjectInformationDialog.ProjectInformation=thông tin d\u1EF1 án +ProjectStatus.CANCELLED=\u0111ã h\u1EE7y +ProjectStatus.COMPLETED=\u0111ã hoàn thành +ProjectDialog.NewProject=d\u1EF1 án m\u1EDBi +ProjectDialog.StartDate=ngày b\u1EAFt \u0111\u1EA7u +ProjectDialog.FinishDate=ngày k\u1EBFt thúc +ProjectStatus.ON_HOLD=t\u1EA1m d\u1EEBng +ProjectDialog.Manager=qu\u1EA3n lý +ProjectStatus.PENDING_APPROVAL=phê duy\u1EC7t ch\u01B0a gi\u1EA3i quy\u1EBFt +ProjectStatus.PLANNING=l\u1EADp k\u1EBF ho\u1EA1ch +ProjectType.EVENT_PLANNING=l\u1EADp k\u1EBF ho\u1EA1ch s\u1EF1 ki\u1EC7n +ProjectType.IT=nó +ProjectType.MARKETING_CAMPAIGN=chi\u1EBFn d\u1ECBch qu\u1EA3ng cáo +ProjectInformationDialog.Notes=ghi chú +PrintPreviewFrame.PrintPreview=xem tr\u01B0\u1EDBc b\u1EA3n in +ProjectType.OTHER=khác +ProjectType.PRODUCT_DEVELOPMENT=phát tri\u1EC3n s\u1EA3n ph\u1EA9m +ProjectType.PROFESSIONAL_SERVICES=d\u1ECBch v\u1EE5 chuyên nghi\u1EC7p +ProjectInformationDialog.Statistics=th\u1ED1ng kê +ProjectDialog.BasedOnProjectRole=d\u1EF1a theo vai trò d\u1EF1 án +ProjectInformationDialog.General=chung +ProjectType.SALES_CAMPAIGN=chi\u1EBFn d\u1ECBch kinh doanh +ProjectDialog.ProjectName=tên d\u1EF1 án +ProjectDialog.ProjectTeam=\u0111\u1ED9i d\u1EF1 án +ProjectType.TECHNICAL_SUPPORT=h\u1ED7 tr\u1EE3 k\u1EF9 thu\u1EADt +RenameDialog.AnotherItemWithThatNameAlreadyExists=h\u1EA1ng m\u1EE5c khác v\u1EDBi tên này \u0111ã t\u1ED3n t\u1EA1i +RenameDialog.NewName=tên m\u1EDBi +RenameDialog.Rename=\u0111\u1ED5i tên +RenameDialog.TheNameCannotBeEmpty=tên không th\u1EC3 \u0111\u1EC3 tr\u1ED1ng +RenameProjectDialog.NewProject=d\u1EF1 án m\u1EDBi +RenameProjectDialog.NewProjectName=tên d\u1EF1 án m\u1EDBi +RenameProjectDialog.RenameProject=\u0111\u1ED5i tên d\u1EF1 án +ReportView.Columns=c\u1ED9t +ReportView.Report=báo cáo +RequestDemandType.Demand=nhu c\u1EA7u +RenameDialog.CurrentName=tên hi\u1EC7n t\u1EA1i +RequestDemandType.None=không có +RequestDemandType.Request=yêu c\u1EA7u +ResourceAdditionDialog.ResourceMerging=sát nh\u1EADp tài nguyên +ResourceAdditionDialog.SelectResourcesToAdd=ch\u1ECDn ngu\u1ED3n \u0111\u1EC3 thêm +ResourceIndicatorsComponent.Administrator=qu\u1EA3n tr\u1ECB viên +ResourceIndicatorsComponent.PartnerCustomer=khách hàng \u0111\u1ED1i tác +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=tài nguyên này trong \u0111\u1ED9i d\u1EF1 án +ResourceIndicatorsComponent.UserLicense=gi\u1EA5y phép ng\u01B0\u1EDDi dùng +ResourceInformationDialog.AssignedToTasks=phân công t\u1EDBi tác v\u1EE5 +ResourceInformationDialog.Costs=chi phí +ResourceInformationDialog.General=chung +ResourceInformationDialog.Notes=ghi chú +ResourceInformationDialog.ResourceAvailability=s\u1EB5n có tài nguyên +ResourceInformationDialog.ResourceInformation=thông tin tài nguyên +ResourceInformationDialog.Tasks=tác v\u1EE5 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=t\u1EA5t c\u1EA3 tài nguyên tr\u1EEB khách hàng \u0111\u1ED1i tác +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=xem d\u1EF1a theo vai trò tài nguyên d\u1EF1 án +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u0111\u1EEBng sát nh\u1EADp m\u1EDF d\u1EF1 án ch\u1EC9 \u0111\u1ECDc +ResourceMappingDialog.ImportedResources=nh\u1EADp tài nguyên +ResourceMappingDialog.MergeResourcesUsingField=sát nh\u1EADp tài nguyên dùng tr\u01B0\u1EDDng +ResourceMappingDialog.ProjectTeam=\u0111\u1ED9i d\u1EF1 án +ResourceMappingDialog.ResourceMerging=sát nh\u1EADp tài nguyên +ResourceMappingDialog.ServerResources=tài nguyên máy ch\u1EE7 +ResourceType.Location=v\u1ECB trí +ResourceType.Machine=máy móc +ResourceType.Material=v\u1EADt t\u01B0 +ResourceType.Other=khác +ResourceType.Work=công vi\u1EC7c +ResourceView.ThisResourceCurrentlyHasAssignments=tài nguyên này \u0111ã phân công g\u1EA7n \u0111ây +ResourceView.ToMoveAProtectedResource=di chuy\u1EC3n m\u1ED9t tài nguyên \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 +ResourceView.UsersCanOnlyBeRemoved=ng\u01B0\u1EDDi dùng ch\u1EC9 có th\u1EC3 b\u1ECB xóa +ResourceView.YouCannotDeleteTheResource=b\u1EA1n không th\u1EC3 xóa tài nguyên +Role.Inactive=(in active = \u0111ang ho\u1EA1t \u0111\u1ED9ng / inactive = không ho\u1EA1t \u0111\u1ED9ng) +Role.ProjectManager=qu\u1EA3n lý d\u1EF1 án +Role.TeamMember=thành viên \u0111\u1ED9i +SchedulingType.FixedDuration=kho\u1EA3ng th\u1EDDi gian c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.Percentage=ph\u1EA7n tr\u0103m +ScheduleDialogBox.FixedDuration=kho\u1EA3ng th\u1EDDi gian c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.FixedUnits=\u0111\u01A1n v\u1ECB c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.FixedWork=công vi\u1EC7c c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.SetAsDefault=cài \u0111\u1EB7t m\u1EB7c \u0111\u1ECBnh +ScheduleDialogBox.WorkIsEnteredIn=công vi\u1EC7c \u0111ã \u0111\u01B0\u1EE3c nh\u1EADp vào +ScheduleDialogBox.DefaultTaskType=m\u1EB7c \u0111\u1ECBnh lo\u1EA1i tác v\u1EE5 +SchedulingType.FixedUnits=\u0111\u01A1n v\u1ECB c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.Schedule=l\u1ECBch trình +ScheduleDialogBox.Decimal=s\u1ED1 th\u1EADp phân +ScheduleDialogBox.Minutes=phút +ScheduleDialogBox.NewTask=tác v\u1EE5 m\u1EDBi +SchedulingType.FixedWork=công vi\u1EC7c c\u1ED1 \u0111\u1ECBnh +ScheduleDialogBox.Hours=Gi\u1EDD +ScheduleDialogBox.Days=ngày +ScheduleDialogBox.Weeks=tu\u1EA7n +ScheduleDialogBox.Months=tháng +Sorter.AssignmentProjectName=tên d\u1EF1 án phân công +Sorter.CompleteIncomplete=hoàn thành trên hoàn thành +Sorter.Cost=chi phí +Sorter.CostOverbudget=chi phí v\u01B0\u1EE3t d\u1EF1 toán +Sorter.CostPerUse=chi phí cho m\u1ED9t l\u1EA7n s\u1EED d\u1EE5ng +Sorter.Critical=quan tr\u1ECDng +Sorter.Delegated=\u0111\u01B0\u1EE3c \u1EE7y quy\u1EC1n +Sorter.Duration=kho\u1EA3ng th\u1EDDi gian +Sorter.DurationThenCost=Duration then cost +Sorter.FinishDate=ngày hoàn thành +Sorter.Name=tên +Sorter.None=không có +Sorter.OvertimeRate=t\u1EF7 l\u1EC7 t\u0103ng ca +Sorter.ResourceGroup=nhóm tài nguyên +Sorter.ResourceType=lo\u1EA1i tài nguyên +Sorter.StandardRate=t\u1EF7 l\u1EC7 tiêu chu\u1EA9n +Sorter.StartDate=ngày b\u1EAFt \u0111\u1EA7u +Spreadsheet.Action.collapse=s\u1EE5p \u0111\u1ED5 +Spreadsheet.Action.copy=sao chép +Spreadsheet.Action.cut=c\u1EAFt +Spreadsheet.Action.delete=xóa +Spreadsheet.Action.expand=m\u1EDF r\u1ED9ng +Spreadsheet.Action.indent=th\u1EE5t vào +Spreadsheet.Action.new=m\u1EDBi +Spreadsheet.Action.outdent=th\u1EE5t ra +Spreadsheet.Action.paste=dán +Spreadsheet.Assignment.resourceUsage=s\u1EED d\u1EE5ng tài nguyên +Spreadsheet.Assignment.taskUsage=s\u1EED d\u1EE5ng tác v\u1EE5 +Spreadsheet.AssignmentEntry.assignResources=tài nguyên phân công +Spreadsheet.AssignmentEntry.replaceResources=tài nguyên thay th\u1EBF +Spreadsheet.Dependency.predecessors=\u0111\u1EE9ng tr\u01B0\u1EDBc +Spreadsheet.Dependency.successors=\u0111\u1EE9ng sau +Spreadsheet.Project.default=m\u1EB7c \u0111\u1ECBnh +Spreadsheet.Project.portfolio=h\u1ED3 s\u01A1 +Spreadsheet.Project.properties=thông s\u1ED1 +Spreadsheet.Resource.earnedValue=giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Resource.earnedValueCostIndicators=ch\u1EC9 s\u1ED1 chi phí giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Resource.earnedValueScheduleIndicators=ch\u1EC9 s\u1ED1 l\u1ECBch trình giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Resource.entryWorkResources=tài nguyên công vi\u1EC7c \u0111\u1EA7u vào +Spreadsheet.ResourceAssignment.reportAssignmentResource=báo cáo tài nguyên phân công +Spreadsheet.ResourceAssignment.reportAssignmentTask=báo cáo tác v\u1EE5 phân công +Spreadsheet.ResourceAssignment.resources=tài nguyên +Spreadsheet.ResourceAssignment.tasks=tác v\u1EE5 +Spreadsheet.ResourceTimesheet.status=tr\u1EA1ng thái +Spreadsheet.ResourceUsage.default=m\u1EB7c \u0111\u1ECBnh +Spreadsheet.nameOnly=ch\u1EC9 tên +Spreadsheet.Task.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +Spreadsheet.Task.constraintDates=ngày ràng bu\u1ED9c +Spreadsheet.Task.cost=chi phí +Spreadsheet.Task.delay=ch\u1EADm tr\u1EC5 +Spreadsheet.Task.earnedValue=giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Task.earnedValueCostIndicators=ch\u1EC9 s\u1ED1 chi phí giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Task.earnedValueScheduleIndicators=ch\u1EC9 s\u1ED1 l\u1ECBch trình giá tr\u1ECB thu \u0111\u01B0\u1EE3c +Spreadsheet.Task.entry=\u0111\u1EA7u vào +SpreadSheetColumnMenu.InsertColumn=chèn c\u1ED9t +Spreadsheet.Task.schedule=l\u1ECBch trình +Spreadsheet.Task.summary=tóm t\u1EAFt +Spreadsheet.Task.tracking=truy tìm +Spreadsheet.Task.usage=s\u1EED d\u1EE5ng +Spreadsheet.Task.variance=sai l\u1EC7ch +Spreadsheet.TaskAssignment.reportAssignmentResource=báo cáo tài nguyên phân công +Spreadsheet.TaskAssignment.reportAssignmentTask=báo cáo tác v\u1EE5 phân công +Spreadsheet.TaskAssignment.resources=tài nguyên +Spreadsheet.TaskAssignment.tasks=tác v\u1EE5 +Spreadsheet.TaskTimesheet.status=tr\u1EA1ng thái +Spreadsheet.TaskUsage.default=m\u1EB7c \u0111\u1ECBnh +Spreadsheet.Timesheet.Default=m\u1EB7c \u0111\u1ECBnh +Spreadsheet.Timesheet.completion=s\u1EF1 hoàn thành +SpreadSheetColumnMenu.HideColumn=\u1EA9n c\u1ED9t +Spreadsheet.availability=s\u1EB5n có +Spreadsheet.costRates=t\u1EF7 l\u1EC7 chi phí +Spreadsheet.empty=tr\u1ED1ng +StandardContour.backLoaded=\u0111ã t\u1EA3i sau +StandardContour.bell=chuông +StandardContour.doublePeak=hai \u0111\u1EC9nh +StandardContour.earlyPeak=\u0111\u1EC9nh \u0111\u1EA7u +StandardContour.flat=ph\u1EB3ng +StandardContour.frontLoaded=\u0111ã t\u1EA3i tr\u01B0\u1EDBc +StandardContour.latePeak=\u0111\u1EC9nh sau +StandardContour.plateau=\u0111o\u1EA1n b\u1EB1ng +Styles.Annotation.milestone=m\u1ED1c +Styles.Annotation.normal=bình th\u01B0\u1EDDng +Styles.Bar.Row.assignment=phân công +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 10 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 1 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 2 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 3 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 4 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 5 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 6 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 7 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 8 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF 9 +Styles.Bar.Row.baseline=\u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +Styles.Bar.Row.critical=quan tr\u1ECDng +Styles.Bar.Row.deadline=h\u1EA1n chót +Styles.Bar.Row.external=bên ngoài +Styles.Bar.Row.milestone=m\u1ED1c +Styles.Bar.Row.subproject=d\u1EF1 án ph\u1EE5 +Styles.Bar.Row.summary=tóm t\u1EAFt +Styles.Bar.Row.task=tác v\u1EE5 +Styles.Bar.Row.timesheet=th\u1EDDi gian bi\u1EC3u +Styles.Bar.Row.totalSlack=d\u1EF1 tr\u1EEF toàn ph\u1EA7n +Styles.Calendar.nonWorking=không làm vi\u1EC7c +Styles.Gantt.showRows=hi\u1EC3n th\u1ECB hàng +Styles.showLinks=hi\u1EC3n th\u1ECB liên k\u1EBFt +Summary.AND=và +Summary.Average=trung bình +Summary.AverageFirstSublevel=trung bình m\u1EE9c \u0111\u1ED9 ph\u1EE5 \u0111\u1EA7u tiên +Summary.CountAll=\u0111\u1EBFm toàn b\u1ED9 +Summary.CountNonsummaries=\u0111\u1EBFm không có tóm t\u1EAFt +Summary.List=danh sách +Summary.Maximum=t\u1ED1i \u0111a +Summary.Minimum=t\u1ED1i thi\u1EC3u +Summary.None=không có +Summary.OR=ho\u1EB7c +Summary.Sum=t\u1ED5ng + +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=ghi chú +TaskIndicatorsComponent.TheCalendar=l\u1ECBch +TaskIndicatorsComponent.TheIntersection=s\u1EF1 giao nhau +TaskIndicatorsComponent.TheTaskWasCompletedOn=tác v\u1EE5 hoàn thành lúc +TaskIndicatorsComponent.ThisParentTaskHasResources=tác v\u1EE5 g\u1ED1c này có tài nguyên +TaskIndicatorsComponent.ThisSubprojectIsNotValid=d\u1EF1 án ph\u1EE5 này không hi\u1EC7u l\u1EF1c +TaskIndicatorsComponent.ThisTaskFinishesOn=tác v\u1EE5 này k\u1EBFt thúc lúc +TaskIndicatorsComponent.ThisTaskHasA=tác v\u1EE5 này có +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=tác v\u1EE5 này \u0111\u01B0\u1EE3c \u1EE7y quy\u1EC1n t\u1EDBi +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=tác v\u1EE5 này \u0111\u01B0\u1EE3c \u1EE7y quy\u1EC1n t\u1EDBi b\u1EA1n +TaskIndicatorsComponent.ThisTasksRepresentsThe=tác v\u1EE5 này \u0111\u1EA1i di\u1EC7n cho +TaskIndicatorsComponent.constraintOn=ràng bu\u1ED9c t\u1EA1i +TaskIndicatorsComponent.isAssignedToTheTask=\u0111\u01B0\u1EE3c phân công t\u1EDBi tác v\u1EE5 +TaskIndicatorsComponent.opened=\u0111ã m\u1EDF +TaskIndicatorsComponent.subproject=d\u1EF1 án ph\u1EE5 +TaskIndicatorsComponent.unopened=ch\u01B0a m\u1EDF +TaskIndicatorsComponent.whichIsAfterItsDeadline=cái nào phía sau thì cái \u0111ó là h\u1EA1n chót +TaskInformationDialog.Advanced=nâng cao +TaskInformationDialog.ConstrainTask=tác v\u1EE5 ràng bu\u1ED9c +TaskInformationDialog.Dates=ngày +TaskInformationDialog.General=chung +TaskInformationDialog.Notes=ghi chú +TaskInformationDialog.Predecessors=\u0111\u1EE9ng tr\u01B0\u1EDBc +TaskInformationDialog.Resources=tài nguyên +TaskInformationDialog.Successors=\u0111\u1EE9ng sau +TaskInformationDialog.TaskInformation=thông tin tác v\u1EE5 +Text.Allocated=\u0111ã ch\u1EC9 \u0111\u1ECBnh +Text.ApplicationTitle=tiêu \u0111\u1EC1 \u1EE9ng d\u1EE5ng +Text.Assign=tác v\u1EE5 +Text.AssignResources=tài nguyên tác v\u1EE5 +Text.Baseline=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF +Text.Cancel=H\u1EE7y +Text.ClearBaseline=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +Text.CostRateTables=B\u1EA3ng t\u1EC9 l\u1EC7 chi phí +Text.Cumulative=Tích l\u0169y +Text.DetectingJavaVersion=phát hi\u1EC7n phiên b\u1EA3n Java +Text.DisabledExternalTaskDependency=vô hi\u1EC7u hóa ph\u1EE5 thu\u1ED9c tác v\u1EE5 bên ngoài +Text.EntireProject=Toàn b\u1ED9 d\u1EF1 án +Text.ExternalTaskDependency=ph\u1EE5 thu\u1ED9c tác v\u1EE5 bên ngoài +Text.Field=tr\u01B0\u1EDDng +Text.Filter=L\u1ECDc +Text.From=T\u1EEB +Text.Group=Nhóm +Text.HierarchicalRelation=m\u1ED1i quan h\u1EC7 th\u1EE9 b\u1EADc +Text.Histogram=Bi\u1EC3u \u0111\u1ED3 +Text.Lag=\u0111\u1ED9 tr\u1EC5 +Text.No=Không +Text.None=Không có +Text.OtherProjects=D\u1EF1 án khác +Text.Remove=B\u1ECF +Text.Replace=Thay th\u1EBF +Text.ReplaceResource=tài nguyên thay th\u1EBF +Text.Save=L\u01B0u +Text.SaveBaseline=L\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +Text.Selected=\u0111ã l\u1EF1a ch\u1ECDn +Text.SelectedTasks=tác v\u1EE5 \u0111\u01B0\u1EE3c l\u1EF1a ch\u1ECDn +Text.ShowSelectedOnTop=hi\u1EC3n th\u1ECB \u0111ã l\u1EF1a ch\u1ECDn trên cùng +Text.ShowTeamResourcesOnly=ch\u1EC9 hi\u1EC7n th\u1ECB tài nguyên \u0111\u1ED9i +Text.Sort=s\u1EAFp x\u1EBFp +Text.Task=tác v\u1EE5 +Text.TaskDependency=tác v\u1EE5 ph\u1EE5 thu\u1ED9c +Text.Tasks=tác v\u1EE5 +Text.ThisProject=d\u1EF1 án này +Text.To=t\u1EDBi +Text.Type=lo\u1EA1i +Text.Unassigned=ch\u01B0a phân công +Text.Untitled=không tiêu \u0111\u1EC1 +Text.UserDefinedInParentheses=(ng\u01B0\u1EDDi dùng xác \u0111\u1ECBnh) +Text.With=v\u1EDBi +Text.Yes=có +Text.budget=d\u1EF1 toán +Text.clickToRename=nh\u1EA5p \u0111\u1EC3 \u0111\u1ED5i tên +Text.cost=chi phí +Text.createProject=t\u1EA1o d\u1EF1 án +Text.forwardScheduled=l\u1ECBch trình phía tr\u01B0\u1EDBc +Text.insertProject=chèn d\u1EF1 án +Text.manageResources=qu\u1EA3n lý tài nguyên +Text.modifiedInParentheses=(\u0111ã thay \u0111\u1ED5i) +Text.thousandsAbbreviation=Ngàn +Text.millionsAbbreviation=Tri\u1EC7u +Text.newServerProject=máy ch\u1EE7 d\u1EF1 án m\u1EDBi +Text.openProject=d\u1EF1 án m\u1EDF +Text.predecessor=\u0111\u1EE9ng tr\u01B0\u1EDBc +# {0} is the name of the thing to rename +Text.rename.mf=\u0111\u1ED5i tên +Text.resetRoles=l\u1EADp l\u1EA1i vai trò +Text.reverseScheduled=l\u1ECBch trình \u0111\u1EA3o ng\u01B0\u1EE3c +Text.rightClickSelectToSpreadsheet=nh\u1EA5p ch\u1ECDn ph\u1EA3i t\u1EDBi b\u1EA3ng tính +Text.rightClickToInsertRemoveColumns=nh\u1EA5p ph\u1EA3i t\u1EDBi chèn ho\u1EB7c xóa c\u1ED9t +Text.successor=\u0111\u1EE9ng sau +Text.taskHierarchy=th\u1EE9 b\u1EADc tác v\u1EE5 +Text.welcomeSubject=chào m\u1EEBng t\u1EDBi d\u1EF1 án theo nhu c\u1EA7u +Text.welcomeToPod=chào m\u1EEBng t\u1EDBi ProjectLibre +Text.work=công vi\u1EC7c +TimeChartPopupMenu.VerticalScrolling=cu\u1ED9n th\u1EB3ng \u0111\u1EE9ng +TimesheetHelper.Entered=\u0111ã vào +TimesheetHelper.Integrated=\u0111ã tích h\u1EE3p +TimesheetHelper.Mixed=\u0111ã tr\u1ED9n +TimesheetHelper.New=m\u1EDBi +TimesheetHelper.Rejected=\u0111ã t\u1EEB ch\u1ED1i +TimesheetHelper.Saved=\u0111ã l\u01B0u +TimesheetHelper.Validated=\u0111ã xác th\u1EF1c +Title.ProjityError=l\u1ED7i ProjectLibre +Title.ProjityWarning=c\u1EA3nh báo ProjectLibre +TransformParameter.FinishDate=ngày k\u1EBFt thúc +TransformParameter.StartDate=ngày b\u1EAFt \u0111\u1EA7u +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# Các giá tr\u1ECB \u0110\u01A1n v\u1ECB bên d\u01B0\u1EDBi \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng n\u1ED9i b\u1ED9 \u0111\u1EC3 \u0111\u1ECBnh d\u1EA1ng và phân tích cú pháp th\u1EDDi l\u01B0\u1EE3ng (phút, gi\u1EDD, ngày, v.v.) theo các cách khác nhau +# For each line, there must be four values separated by a |. No spaces are allowed +# \u0110\u1ED1i v\u1EDBi m\u1ED7i dòng, ph\u1EA3i có b\u1ED1n giá tr\u1ECB cách nhau b\u1EDFi d\u1EA5u |. Không có kho\u1EA3ng tr\u1EAFng nào \u0111\u01B0\u1EE3c cho phép +# The lines are of the form: ||| +# Các dòng có d\u1EA1ng: <\u0111\u1ECBnh d\u1EA1ng ng\u1EAFn> | <\u0111\u1ECBnh d\u1EA1ng v\u1EEBa> | <\u0111\u1ECBnh d\u1EA1ng dài> | <\u0111\u1ECBnh d\u1EA1ng ng\u1EAFn nh\u1EA5t> +# The user will be able to choose which format he wants to use +# Ng\u01B0\u1EDDi dùng s\u1EBD có th\u1EC3 ch\u1ECDn \u0111\u1ECBnh d\u1EA1ng mà h\u1ECD mu\u1ED1n s\u1EED d\u1EE5ng +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural= +Units.epercent.singular= +# the two estimated symbol strings do not need translation +# hai chu\u1ED7i ký hi\u1EC7u \u01B0\u1EDBc tính không c\u1EA7n d\u1ECBch +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=toàn b\u1ED9 d\u1EF1 án +UpdateProjectDialogBox.For=cho +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=l\u1ECBch trình l\u1EA1i công vi\u1EC7c \u0111ã hoàn thành \u0111\u1EC3 b\u1EAFt \u0111\u1EA7u sau \u0111ó +UpdateProjectDialogBox.SelectedTasks=tác v\u1EE5 \u0111\u01B0\u1EE3c ch\u1ECDn +UpdateProjectDialogBox.SetZeroHundred=\u0111i\u1EC1u ch\u1EC9nh ph\u1EA7n tr\u0103m hoàn thành theo ngày +UpdateProjectDialogBox.SetZeroOrHundredOnly=ch\u1EC9 cài không ho\u1EB7c tr\u0103m +UpdateProjectDialogBox.UpdateProject=c\u1EADp nh\u1EADt d\u1EF1 án +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=c\u1EADp nh\u1EADt công vi\u1EC7c \u0111ã xong +UpdateTaskDialog.Actual=th\u1EF1c t\u1EBF +UpdateTaskDialog.Current=hi\u1EC7n t\u1EA1i +UpdateTaskDialog.UpdateTask=c\u1EADp nh\u1EADt tác v\u1EE5 +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=ngày hi\u1EC7u l\u1EF1c \u0111ã có trong b\u1EA3ng +ValueObjectForIntervalTable.ThisDateMustBeAfter=ngày này ph\u1EA3i \u1EDF phía sau +ValueObjectForIntervalTable.ThisDateMustBeBefore=ngày này ph\u1EA3i \u1EDF phía tr\u01B0\u1EDBc +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=b\u1EA1n không th\u1EC3 xóa ngày \u0111\u1EA7u tiên +WelcomeDialog.WhatWouldYouLikeToDo=b\u1EA1n thích làm cái gì +WorkRangeException.EndMustBeAfterStart=cu\u1ED1i cùng ph\u1EA3i phía sau b\u1EAFt \u0111\u1EA7u +WorkRangeException.RangeIncomplete=ph\u1EA1m vi trong hoàn thành +WorkRangeException.RangesCannotOverlap=ph\u1EA1m v\u1ECB không th\u1EC3 ch\u1ED3ng chéo +WorkRangeException.RangesMustBeOrdered=ph\u1EA1m vi ph\u1EA3i có tr\u1EADt t\u1EF1 +tip.1.description=You can become a member of the ProjectLibre community at http://www.projectlibre.org We will have updates, information and community events. +tip.1.description=B\u1EA1n có th\u1EC3 tr\u1EDF thành thành viên c\u1EE7a c\u1ED9ng \u0111\u1ED3ng ProjectLibre t\u1EA1i http://www.projectlibre.org Chúng tôi s\u1EBD c\u1EADp nh\u1EADt, thông tin và các s\u1EF1 ki\u1EC7n c\u1ED9ng \u0111\u1ED3ng. +tip.1.name=ProjectLibre community Join +tip.1.name=Tham gia C\u1ED9ng \u0111\u1ED3ng ProjectLibre +tip.2.description=You can right-click on the Gantt Chart, Spreadsheet Cells, Spreadsheet Headers, and the upper left corner of the Spreadsheet to get context-sensitive menus for modifying the view. +tip.2.description=B\u1EA1n có th\u1EC3 nh\u1EA5p chu\u1ED9t ph\u1EA3i vào Bi\u1EC3u \u0111\u1ED3 Gantt, Ô B\u1EA3ng tính, Tiêu \u0111\u1EC1 B\u1EA3ng tính và góc trên bên trái c\u1EE7a B\u1EA3ng tính \u0111\u1EC3 nh\u1EADn các trình \u0111\u01A1n phù h\u1EE3p v\u1EDBi ng\u1EEF c\u1EA3nh \u0111\u1EC3 s\u1EEDa \u0111\u1ED5i ch\u1EBF \u0111\u1ED9 xem. +tip.2.name=Modify views +tip.2.name=S\u1EEDa \u0111\u1ED5i ch\u1EBF \u0111\u1ED9 xem +tip.3.description=You can contribute to ProjectLibre! We're looking for translators and developers to make ProjectLibre better and better. Contact partners@projectlibre.org. +tip.3.description=B\u1EA1n có th\u1EC3 \u0111óng góp cho ProjectLibre! Chúng tôi \u0111ang tìm ki\u1EBFm ng\u01B0\u1EDDi d\u1ECBch và nhà phát tri\u1EC3n \u0111\u1EC3 làm cho ProjectLibre ngày càng t\u1ED1t h\u01A1n. Liên h\u1EC7 v\u1EDBi partner@projectlibre.org. +tip.3.name=Contribute to ProjectLibre +tip.3.name=\u0110óng góp cho ProjectLibre +tip.4.description=The histogram and charts are dynamic and depend on what tasks you have selected above. +tip.4.description=Bi\u1EC3u \u0111\u1ED3 và \u0111\u1ED3 th\u1ECB là \u0111\u1ED9ng và ph\u1EE5 thu\u1ED9c vào nh\u1EEFng tác v\u1EE5 b\u1EA1n \u0111ã ch\u1ECDn \u1EDF trên. +tip.4.name=Dynamic charts +tip.4.name=Bi\u1EC3u \u0111\u1ED3 \u0111\u1ED9ng +tip.5.description=You can edit directly on the Network Diagram (PERT chart). +tip.5.description=B\u1EA1n có th\u1EC3 ch\u1EC9nh s\u1EEDa tr\u1EF1c ti\u1EBFp trên S\u01A1 \u0111\u1ED3 m\u1EA1ng (\u0111\u1ED3 th\u1ECB PERT). +tip.5.name=Edit Network blocks +tip.5.name=Ch\u1EC9nh s\u1EEDa kh\u1ED1i m\u1EA1ng +tip.6.description=You can indent and outdent tasks to make a hierarchy for your project. This will be reflected in the WBS view too. +tip.6.description=B\u1EA1n có th\u1EC3 th\u1EE5t vào và th\u1EE5t ra các tác v\u1EE5 \u0111\u1EC3 t\u1EA1o th\u1EE9 b\u1EADc cho d\u1EF1 án c\u1EE7a mình. \u0110i\u1EC1u này c\u0169ng s\u1EBD \u0111\u01B0\u1EE3c ph\u1EA3n ánh trong ch\u1EBF \u0111\u1ED9 xem WBS. +tip.6.name=Make a project hierarchy +tip.6.name=T\u1EA1o h\u1EC7 th\u1ED1ng phân c\u1EA5p d\u1EF1 án +tip.7.description=You can use the mouse to link tasks, extend them, complete them, move them, and split them. +tip.7.description=B\u1EA1n có th\u1EC3 s\u1EED d\u1EE5ng chu\u1ED9t \u0111\u1EC3 liên k\u1EBFt các nhi\u1EC7m v\u1EE5, m\u1EDF r\u1ED9ng chúng, hoàn thành chúng, di chuy\u1EC3n chúng và chia chúng. +tip.7.name=Mouse operations +tip.7.name=Thao tác chu\u1ED9t +tip.8.description=Usually you'll want to keep the default FS (Finish-Start) links between tasks. Occasionally you may want SS and FF, but SF are very rare. You can change the link type by clicking on it. You can also set a lag. +tip.8.description=Thông th\u01B0\u1EDDng b\u1EA1n s\u1EBD mu\u1ED1n gi\u1EEF các liên k\u1EBFt FS (K\u1EBFt thúc-B\u1EAFt \u0111\u1EA7u) m\u1EB7c \u0111\u1ECBnh gi\u1EEFa các tác v\u1EE5. \u0110ôi khi b\u1EA1n có th\u1EC3 mu\u1ED1n SS và FF, nh\u01B0ng SF r\u1EA5t hi\u1EBFm. B\u1EA1n có th\u1EC3 thay \u0111\u1ED5i lo\u1EA1i liên k\u1EBFt b\u1EB1ng cách nh\u1EA5p vào nó. B\u1EA1n c\u0169ng có th\u1EC3 \u0111\u1EB7t \u0111\u1ED9 tr\u1EC5. +tip.8.name=Link types +tip.8.name=Các lo\u1EA1i liên k\u1EBFt +tip.9.description=It is always a good idea to save a baseline for your project. ProjectLibre lets you save up to 11 of them which you can display on the Gantt and use for Earned Value Analysis. +tip.9.description=Luôn luôn là m\u1ED9t ý t\u01B0\u1EDFng hay \u0111\u1EC3 l\u01B0u m\u1ED9t \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF cho d\u1EF1 án c\u1EE7a b\u1EA1n. ProjectLibre cho phép b\u1EA1n l\u01B0u t\u1EDBi 11 trong s\u1ED1 chúng mà b\u1EA1n có th\u1EC3 hi\u1EC3n th\u1ECB trên Gantt và s\u1EED d\u1EE5ng cho Phân tích giá tr\u1ECB thu \u0111\u01B0\u1EE3c. +tip.9.name=Baselines +tip.9.name=\u0110\u01B0\u1EDDng c\u01A1 s\u1EDF +tip.10.description=You can adjust printing to a page by zooming the gantt in/out and resizing or hiding columns. Use Print Preview to verify. +tip.10.description=B\u1EA1n có th\u1EC3 \u0111i\u1EC1u ch\u1EC9nh vi\u1EC7c in m\u1ED9t trang b\u1EB1ng cách phóng to / thu nh\u1ECF gantt và thay \u0111\u1ED5i kích th\u01B0\u1EDBc ho\u1EB7c \u1EA9n các c\u1ED9t. S\u1EED d\u1EE5ng Xem tr\u01B0\u1EDBc khi in \u0111\u1EC3 xác minh. +tip.10.name=Printing to a page +tip.10.name=In m\u1ED9t trang +tip.11.description=You can open files created by Microsoft Project in ProjectLibre, and you can also save them back out to Microsoft's XML format. +tip.11.description=B\u1EA1n có th\u1EC3 m\u1EDF các t\u1EC7p \u0111\u01B0\u1EE3c t\u1EA1o b\u1EDFi Microsoft Project trong ProjectLibre và b\u1EA1n c\u0169ng có th\u1EC3 l\u01B0u chúng tr\u1EDF l\u1EA1i \u0111\u1ECBnh d\u1EA1ng XML c\u1EE7a Microsoft. +tip.11.name=MS Project compatibility +tip.11.name=Kh\u1EA3 n\u0103ng t\u01B0\u01A1ng thích v\u1EDBi MS Project +tip.12.description=ProjectLibre has lots of user-defined fields at your disposal. Try right clicking on a spreadsheet header and see. +tip.12.description=ProjectLibre có r\u1EA5t nhi\u1EC1u tr\u01B0\u1EDDng do ng\u01B0\u1EDDi dùng xác \u0111\u1ECBnh theo ý c\u1EE7a b\u1EA1n. Hãy th\u1EED nh\u1EA5p chu\u1ED9t ph\u1EA3i vào tiêu \u0111\u1EC1 b\u1EA3ng tính và xem. +tip.12.name=User defined fields +tip.12.name=Các tr\u01B0\u1EDDng do ng\u01B0\u1EDDi dùng xác \u0111\u1ECBnh +tip.13.description=You can assign calendars to tasks, resources, and projects so as to take into account holidays. +tip.13.description=B\u1EA1n có th\u1EC3 gán l\u1ECBch cho các tác v\u1EE5, tài nguyên và d\u1EF1 án \u0111\u1EC3 tính \u0111\u1EBFn các ngày ngh\u1EC9. +tip.13.name=l\u1ECBch +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + +Text.badJavaVersion=Your Java version is "{0}". To run ProjectLibre, you need Java 1.6 or later. +Text.badJavaVersion=Phiên b\u1EA3n Java c\u1EE7a b\u1EA1n là "{0}". \u0110\u1EC3 ch\u1EA1y ProjectLibre, b\u1EA1n c\u1EA7n Java 1.6 tr\u1EDF lên. +Text.badJavaVendor=Your Java vendor is "{0}". To run ProjectLibre, you need the Sun Java implementation. +Text.badJavaVendor=Nhà cung c\u1EA5p Java c\u1EE7a b\u1EA1n là "{0}". \u0110\u1EC3 ch\u1EA1y ProjectLibre, b\u1EA1n c\u1EA7n tri\u1EC3n khai Sun Java. +Text.javaExecutable=The auto-detected Java Runtime used is {0}.\nIf you have a newer version, you can manualy change it by editing the\n"{1}" property in the auto-detection file, "{2}".\nOtherwise, to force auto-detection again you can remove "{2}". +Text.javaExecutable=Java Runtime t\u1EF1 \u0111\u1ED9ng phát hi\u1EC7n \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng là {0}. \ N N\u1EBFu b\u1EA1n có phiên b\u1EA3n m\u1EDBi h\u01A1n, b\u1EA1n có th\u1EC3 thay \u0111\u1ED5i th\u1EE7 công b\u1EB1ng cách ch\u1EC9nh s\u1EEDa thu\u1ED9c tính \ n "{1}" trong t\u1EC7p t\u1EF1 \u0111\u1ED9ng phát hi\u1EC7n, "{2 } ". \ n Ngoài ra, \u0111\u1EC3 bu\u1ED9c t\u1EF1 \u0111\u1ED9ng phát hi\u1EC7n l\u1EA1i, b\u1EA1n có th\u1EC3 xóa" {2} ". + +Text.newVersion=There is a newer version {0} of ProjectLibre available.\nYour current version is {1}.\nWould you like to go to the download page to get it now? +Text.newVersion=Hi\u1EC7n có phiên b\u1EA3n m\u1EDBi h\u01A1n {0} c\u1EE7a ProjectLibre. \ N Phiên b\u1EA3n hi\u1EC7n t\u1EA1i c\u1EE7a b\u1EA1n là {1}. \ N B\u1EA1n có mu\u1ED1n truy c\u1EADp trang t\u1EA3i xu\u1ED1ng \u0111\u1EC3 l\u1EA5y ngay không? + +TipOfTheDay.dialogTitle=M\u1EB9o trong ngày +TipOfTheDay.didYouKnowText=B\u1EA1n có bi\u1EBFt ... +TipOfTheDay.showOnStartupText=Hi\u1EC3n th\u1ECB các m\u1EB9o khi kh\u1EDFi \u0111\u1ED9ng +TipOfTheDay.previousTipText=Quay l\u1EA1i +TipOfTheDay.nextTipText=Ti\u1EBFp theo +TipOfTheDay.closeText=\u0110óng + + +Warn.lockMessage=The project is already locked by {0}. Would you like to open it read-only for viewing? +Warn.lockMessage=D\u1EF1 án \u0111ã b\u1ECB khóa b\u1EDFi {0}. B\u1EA1n có mu\u1ED1n m\u1EDF nó \u1EDF ch\u1EBF \u0111\u1ED9 ch\u1EC9 \u0111\u1ECDc \u0111\u1EC3 xem không? + +#added 14/2/08 +Filter.StartingWithinWeek=B\u1EAFt \u0111\u1EA7u trong vòng m\u1ED9t tu\u1EA7n +Filter.StartingWithinTwoWeeks=B\u1EAFt \u0111\u1EA7u trong vòng hai tu\u1EA7n +Filter.LateStarting=B\u1EAFt \u0111\u1EA7u mu\u1ED9n + + +Warn.resourcePoolOpen=You cannot open another project while the Resource Pool is open. +Warn.resourcePoolOpen=B\u1EA1n không th\u1EC3 m\u1EDF m\u1ED9t d\u1EF1 án khác khi t\u1ED5 h\u1EE3p tài nguyên \u0111ang m\u1EDF. +Warn.resourcePoolCannotOpen="red">You cannot open the resource pool when another project is open. +Warn.resourcePoolCannotOpen="red"> B\u1EA1n không th\u1EC3 m\u1EDF t\u1ED5 h\u1EE3p tài nguyên khi m\u1ED9t d\u1EF1 án khác \u0111ang m\u1EDF. +Warn.fileNotFound=File not Found + +Text.donateMessage=ProjectLibre is provided free of charge. There are no strings attached, and it saves you the $999.99 list price of commercial project management software. We do ask our users to consider voluntary contributions via PayPal. +Text.donateTitle=Please support ProjectLibre +Text.runsSinceMessage=You have run ProjectLibre {0,number} times since {1,date,short} +Text.tryPODTitle=Không tìm th\u1EA5y t\u1EC7p + + +Text.notAvailableInOpenProj=không có s\u1EB5n trên OpenProj +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=không hi\u1EC3n th\u1ECB l\u1EA1i + +Warn.saveXML=You should only use the XML format when exchanging with another application as some data may be lost.\nDo you want to continue? +Warn.saveXML=B\u1EA1n ch\u1EC9 nên s\u1EED d\u1EE5ng \u0111\u1ECBnh d\u1EA1ng XML khi trao \u0111\u1ED5i v\u1EDBi \u1EE9ng d\u1EE5ng khác vì m\u1ED9t s\u1ED1 d\u1EEF li\u1EC7u có th\u1EC3 b\u1ECB m\u1EA5t. \ N B\u1EA1n có mu\u1ED1n ti\u1EBFp t\u1EE5c không? + +Text.rightClickForOptions=nh\u1EA5p chu\u1ED9t ph\u1EA3i vào Tùy ch\u1ECDn diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_zh.properties b/projectlibre_core/src/com/projectlibre1/strings/client_zh.properties new file mode 100644 index 0000000..637d4f5 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_zh.properties @@ -0,0 +1,1248 @@ +#The contents of this file are subject to the Common Public Attribution License +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +#License Version 1.1 but Sections 14 and 15 have been added to cover use of +#software over a computer network and provide for limited attribution for the +#Original Developer. In addition, Exhibit A has been modified to be consistent +#with Exhibit B. +# +#Software distributed under the License is distributed on an "AS IS" basis, +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +#specific language governing rights and limitations under the License. The +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +#the provisions of the ProjectLibre License are applicable instead of those above. +#If you wish to allow use of your version of this file only under the terms of the +#ProjectLibre License and not to allow others to use your version of this file under +#the CPAL, indicate your decision by deleting the provisions above and replace them +#with the notice and other provisions required by the Project Libre License. If you +#do not delete the provisions above, a recipient may use your version of this file +#under either the CPAL or the ProjectLibre Licenses. +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +#in the Source Code files of the Original Code. You should use the text of this +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Modifications.] +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +#alternatives listed on http://www.projectlibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally +#aligned immediately above the ProjectLibre logo and left justified in alignment with the +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with +#alternatives listed on http://www.ProjectLibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. + + + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + + + + +AboutDialog.About=\u95DC\u65BC +AboutDialog.copyright=\u7248\u6B0A\u6240\u67092012 ProjectLibre Inc.\u4FDD\u7559\u6240\u6709\u6B0A\u5229 +AccessControlPolicy.PUBLIC=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +AccessControlPolicy.RESTRICTED=\u57FA\u65BC\u8CC7\u6E90\u6AA2\u8996\u4E2D\u7684\u5C08\u6848\u89D2\u8272 +AccrualType.End=\u7D50\u675F +AccrualType.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +AccrualType.Start=\u958B\u59CB +AssignmentDialog.ShowingAllResources=\u986F\u793A\u6240\u6709\u8CC7\u6E90 +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=\u50C5\u986F\u793A\u5C08\u6848\u5718\u968A\u7684\u8CC7\u6E90 +AssignmentDialog.none=(\u7121) +Bar.assignment=\u6307\u5B9A +Bar.baseline10=\u57FA\u7DDA10 +Bar.baseline1=\u57FA\u7DDA1 +Bar.baseline2=\u57FA\u7DDA2 +Bar.baseline3=\u57FA\u7DDA3 +Bar.baseline4=\u57FA\u7DDA4 +Bar.baseline5=\u57FA\u7DDA5 +Bar.baseline6=\u57FA\u7DDA6 +Bar.baseline7=\u57FA\u7DDA7 +Bar.baseline8=\u57FA\u7DDA8 +Bar.baseline9=\u57FA\u7DDA9 +Bar.baseline=\u57FA\u7DDA +Bar.critical=\u95DC\u9375 +Bar.deadline=\u671F\u9650 +Bar.external=\u5916\u90E8 +Bar.milestone=\u91CC\u7A0B\u7891 +Bar.subproject=\u5B50\u5C08\u6848 +Bar.summary=\u6458\u8981 +Bar.task=\u4EFB\u52D9 +Bar.timesheet=\u6642\u9593\u8868 +Bar.totalSlack=\u5BEC\u9B06\u7E3D\u6578 +BarPanel.Shape=\u5F62\u72C0: +BaselineDialog.Baseline=\u57FA\u7DDA: +BaselineDialog.For=\u70BA: +BookingType.Committed=\u5DF2\u63D0\u4EA4 +BookingType.Proposed=\u6BD4\u4F8B\u5206\u914D +ButtonText.Cancel=\u53D6\u6D88 +ButtonText.Close=\u95DC +ButtonText.IAccept=\u6211\u63A5\u53D7 +ButtonText.OK=OK +ButtonText.Open=\u6253\u958B +ButtonText.OpenCopy=\u552F\u8B80\u958B\u555F +Calendar.24Hours=24\u5C0F\u6642 +Calendar.EditedWorkingHours=\u7DE8\u8F2F\u5DE5\u4F5C\u6642\u9593 +CalendarDialogBox.Wednesday=\u661F\u671F\u4E09 +CalendarDialogBox.September=\u4E5D\u6708 +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ \u624B\u518A +Calendar.EditsToADayOfTheWeek=\u7DE8\u8F2F\u5230\u661F\u671F\u5E7E +CalendarDialogBox.HoursPerday=\u6BCF\u5929\u5C0F\u6642\u6578 : +CalculationDialogBox.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +Calendar.EditsToAnIndividualDay=\u7DE8\u8F2F\u5230\u4E00\u7368\u7ACB\u65E5\u671F +CalendarDialogBox.DurationSettings=\u671F\u7A0B\u8A2D\u5B9A +CalendarDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D\u503C +CalendarDialogBox.HoursPerWeek=\u6BCF\u9031\u5C0F\u6642\u6578 : +CalendarDialogBox.DaysPerMonth=\u6BCF\u6708\u5929\u6578 : +Calendar.ExceptionCircular=\u60A8\u4E0D\u80FD\u5C07\u6B64\u884C\u662F\u5229\u7528\u65BC\u57FA\u6E96\u884C\u4E8B\u66C6\uFF0C\u56E0\u70BA\u6703\u5C0E\u81F4\u6B64\u884C\u4E8B\u66C6\u81EA\u6211\u76F8\u4F9D\u3002 +CalendarDialogBox.Monday=\u661F\u671F\u4E00 +CalendarDialogBox.Tuesday=\u661F\u671F\u4E8C +CalendarDialogBox.Thursday=\u661F\u671F\u56DB +CalendarDialogBox.Friday=\u661F\u671F\u4E94 +CalendarDialogBox.Saturday=\u661F\u671F\u516D +CalendarDialogBox.Sunday=\u661F\u671F\u65E5 +CalendarDialogBox.January=\u4E00\u6708 +CalendarDialogBox.February=\u4E8C\u6708 +CalendarDialogBox.March=\u4E09\u6708 +CalendarDialogBox.April=\u56DB\u6708 +CalendarDialogBox.August=\u516B\u6708 +CalendarDialogBox.October=\u5341\u6708 +CalendarDialogBox.November=\u5341\u4E00\u6708 +CalendarDialogBox.December=\u5341\u4E8C\u6708 +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=\u958B\u59CB +Calendar.NightShift=\u591C\u73ED +Calendar.Nonworking=\u975E\u5DE5\u4F5C +Calendar.Standard=\u6A19\u6E96 +Calendar.Unmodified=\u672A\u7D93\u4FEE\u6539 +CalendarDialogBox.May=\u4E94\u6708 +CalendarDialogBox.June=6\u6708 +CalendarDialogBox.July=7\u6708 +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=\u4F7F\u7528\u8D77\u59CB\u5E74\u4EFD\u9032\u884CFV\u7DE8\u865F +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=\u9019\u4E9B\u8A2D\u5B9A\u50C5\u9069\u7528\u65BC\u671F\u7A0B\u6642\u9593 +CalculationDialogBox.AndMoveStartOfRemaining=\u4E26\u5C07\u5269\u9918\u5DE5\u4F5C\u7684\u958B\u59CB\u6642\u9593\u5F8C\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.AndMoveEndOfCompleted=\u4E26\u5C07\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u524D\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.MoveEndOfCompleteParts=\u5C07\u72C0\u614B\u65E5\u671F\u4E4B\u5F8C\u7684\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u79FB\u81F3\u72C0\u614B\u65E5\u671F +Calendar.Working=\u5DE5\u4F5C\u4E2D +Category.assignmentEntrySpreadsheet=\u4F5C\u696D\u8F38\u5165\u8A66\u7B97\u8868 +Category.assignmentSpreadsheet=\u4F5C\u696D\u8A66\u7B97\u8868 +Category.availabilitySpreadsheet=\u53EF\u7528\u6027\u8A66\u7B97\u8868 +Category.costRates=\u8CBB\u7528\u7387 +Category.dependencySpreadsheet=\u4F9D\u8CF4\u8A66\u7B97\u8868 +CalculationDialogBox.Automatic=\ \u81EA\u52D5 +CalculationDialogBox.Calculate=\u8A08\u7B97: +Category.distributionSpreadsheet=\u4F7F\u7528\u60C5\u51B5\u8A66\u7B97\u8868 +CalculationDialogBox.Calculation=\u8A08\u7B97\u65B9\u5F0F +CalculationDialogBox.EarnedValue=\u6399\u503C +Category.projectSpreadsheet=\u5C08\u6848\u8A66\u7B97\u8868 +Category.resourceAssignmentSpreadsheet=\u8CC7\u6E90\u5206\u914D\u8A66\u7B97\u8868 +Category.resourceSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.taskAssignmentSpreadsheet=\u4EFB\u52D9\u5206\u914D\u8A66\u7B97\u8868 +Category.taskSpreadsheet=\u4EFB\u52D9\u8A66\u7B97\u8868 +Category.taskSpreadsheet;projectSpreadsheet=\u4EFB\u52D9\u548C\u5C08\u6848\u8A66\u7B97\u8868 +CalculationDialogBox.End=\u7D50\u675F +Category.timesheetSpreadsheet=\u5DE5\u6642\u8A66\u7B97\u8868 +ChangeWorkingTimeDialogBox.BasedOn=\u57FA\u65BC +ChangeWorkingTimeDialogBox.ChangeWorkingTime=\u66F4\u6539\u5DE5\u4F5C\u65E5\u66C6 +ChangeWorkingTimeDialogBox.For=\u70BA: +ChangeWorkingTimeDialogBox.From=\u5F9E: +ChangeWorkingTimeDialogBox.ModificationMessage=\u5C0D\u6B64\u884C\u4E8B\u66C6\u7684\u4FEE\u6539\u6703\u5F71\u97FF\u5230\u6240\u6709\u4F7F\u7528\u5B83\u7684\u5C08\u6848. +ChangeWorkingTimeDialogBox.New=\u65B0... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=\u975E\u9810\u8A2D\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NonWorkingTime=\u975E\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NotEdiableMessage=\u53EA\u6709\u5728\u7DE8\u8F2F\u4E3B\u5C08\u6848\u6642\u6B64\u884C\u4E8B\u66C6\u624D\u53EF\u7DE8\u8F2F(\u8CC7\u6E90\u6C60). +ChangeWorkingTimeDialogBox.Options=\u9078\u9805... +ChangeWorkingTimeDialogBox.To=\ \u81F3\: +ChangeWorkingTimeDialogBox.UseDefault=\u4F7F\u7528\u9810\u8A2D\u503C +ChartLegend.ResourceFilter=\u8CC7\u6E90\u904E\u6FFE\u5668: +ClientRole.Inactive=- +ClientRole.ProjectManager=\u5C08\u6848\u7D93\u7406 +ClientRole.TeamMember=\u5718\u968A\u6210\u54E1 +ClientRole.TeamResource=\u5718\u968A\u8CC7\u6E90 +ColumnDialog.InsertColumn=\u63D2\u5165\u6B04 +Command.UpateProject=\u66F4\u65B0\u5C08\u6848 +Command.UpdateTasks=\u66F4\u65B0\u4EFB\u52D9 +ConstraintType.ALAP=\u8D8A\u665A\u8D8A\u597D +ConstraintType.ASAP=\u8D8A\u5FEB\u8D8A\u597D +ConstraintType.FNET=\u5118\u65E9\u5B8C\u6210 +ConstraintType.FNLT=\u5B8C\u6210\u4E0D\u665A\u65BC +ConstraintType.HAMM=Hammock +ConstraintType.MFO=\u5FC5\u9808\u5B8C\u6210 +ConstraintType.MSO=\u5FC5\u9808\u958B\u59CB +ConstraintType.SNET=\u958B\u59CB\u4E0D\u65E9\u65BC +ConstraintType.SNLT=\u958B\u59CB\u4E0D\u665A\u65BC +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=\u8A55\u50F9 A +CostRateIndex.B=\u8A55\u50F9 B +CostRateIndex.C=\u8A55\u50F9 C +CostRateIndex.D=\u8A55\u50F9D +CostRateIndex.E=\u8A55\u50F9 E +Date.NoEnd=\u7136\u5F8C +# NA = Not Applicable +Date.NoStart=NA +Date.Quarter1=Q +Date.Half1=H +Date.Quarter2=Qtr +Date.Half2=Half +DefaultFrameManager.Project=\u5C08\u6848 +DelegateTaskDialog.DelegateTask=\u59D4\u6D3E\u4EFB\u52D9 +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=\u5B8C\u6210\u5230\u5B8C\u6210(F-F) +DependencyType.longFS=\u5B8C\u6210\u5230\u958B\u59CB(F-S) +DependencyType.longSF=\u958B\u59CB\u5230\u5B8C\u6210(S-F) +DependencyType.longSS=\u958B\u59CB\u5230\u958B\u59CB(S-S) +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% \u5B8C\u6210 +EarnedValueMethodType.PhysicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u7387 +ExpenseType.CAPITALIZE=\u5927\u5BEB +ExpenseType.DIRECT=\u76F4\u63A5 +ExpenseType.EXPENSE=\u8CBB\u7528 +ExpenseType.INDIRECT=\u9593\u63A5 +ExpenseType.NONE=\u7121 +ExpenseType.OVERHEAD=\u7BA1\u7406\u8CBB +Field.accessControlPolicy=\u5C08\u6848\u5718\u968A +Field.accrueAt=\u61C9\u8A08 +Field.actualCost=\u5BE6\u969B\u8CBB\u7528 +Field.actualDuration=\u5BE6\u969B\u671F\u7A0B +Field.actualFinish=\u5BE6\u969B\u5B8C\u6210 +Field.actualFixedCost=\u5BE6\u969B\u56FA\u5B9A\u6210\u672C +Field.actualOvertimeCost=\u5BE6\u969B\u52A0\u73ED\u8CBB +Field.actualOvertimeWork=\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualOvertimeWorkProtected=\u53D7\u4FDD\u8B77\u7684\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualStart=\u5BE6\u969B\u958B\u59CB +Field.actualWork=\u5BE6\u969B\u5DE5\u4F5C +Field.actualWorkProtected=\u53D7\u4FDD\u62A4\u7684\u5B9E\u9645\u5DE5\u4F5C +Field.acwp=ACWP +Field.assignedRate=\u5206\u914D\u7387 +Field.assignment=\u5206\u914D +Field.assignmentEntryAssigned=\u5DF2\u5206\u914D +Field.assignmentEntryName=\u59D3\u540D +Field.assignmentEntryRate=\u55AE\u4F4D +Field.assignmentProjectName=\u5C08\u6848 +Field.assignmentResourceId=\u8CC7\u6E90 ID +Field.assignmentResourceName=\u8CC7\u6E90 +Field.assignmentTaskId=\u4EFB\u52D9ID +Field.assignmentTaskName=\u4EFB\u52D9 +Field.assignmentUnits=\u5206\u914D\u55AE\u4F4D +Field.availableFrom=\u53EF\u5F9E +Field.availableTo=\u53EF\u7528\u65BC +Field.bac=BAC +Field.baseCalendar=\u57FA\u6E96\u884C\u4E8B\u66C6 +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u57FA\u6E96# \u6210\u672C +Field.baseline#Duration=\u57FA\u6E96# \u671F\u7A0B +Field.baseline#Finish=\u57FA\u6E96# \u5B8C\u6210 +Field.baseline#Start=\u57FA\u6E96# \u958B\u59CB +Field.baseline#Work=\u57FA\u6E96# \u5DE5\u4F5C +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=\u6548\u76CA +Field.bookingType=\u9810\u8A02\u985E\u578B +Field.budgetStatusIndicator=\u9810\u7B97\u72C0\u6CC1 +Field.cachedEnd=\u7D50\u675F +Field.cachedStart=\u958B\u59CB +Field.canLevel=\u53EF\u64AB\u5E73 +Field.code=\u7DE8\u78BC +Field.complete=\u5B8C\u6210 +Field.completeThrough=\u5B8C\u6210\u7D93\u904E +Field.completedThrough=\u5DF2\u5B8C\u6210 +Field.confirmed=\u5DF2\u78BA\u8A8D +Field.constraintDate=\u7D04\u675F\u65E5\u671F +Field.constraintType=\u7D04\u675F\u985E\u578B +Field.contact=\u806F\u7E6B +Field.cost=\u6210\u672C +Field.costPerUse=\u6BCF\u6B21\u4F7F\u7528\u6210\u672C +Field.costRateTable=\u6210\u672C\u7387\u8868 +Field.costVariance=\u6210\u672C\u5DEE\u7570 +Field.cpi=CPI +Field.created=\u5DF2\u5EFA\u7ACB +Field.creationDate=\u5275\u7ACB\u65E5\u671F +Field.critical=\u95DC\u9375 +Field.csi=CSI +Field.cumulativeCost=\u7D2F\u8A08\u6210\u672C +Field.cumulativePercentComplete=\u7D2F\u8A08\u5B8C\u6210\u767E\u5206\u6BD4 +FieldDialog.ResourceInformation=\u8CC7\u6E90\u4FE1\u606F +Field.cumulativeWork=\u7D2F\u8A08\u5DE5\u6642 +Field.currentDate=\u7576\u524D\u65E5\u671F +Field.customCost#=\u6210\u672C# +Field.customDate#=\u65E5\u671F# +Field.customDuration#=\u671F\u7A0B# +Field.customFinish#=\u5B8C\u6210# +Field.customFlag#=\u65D7\u6A19# +Field.customNumber#=\u865F\u78BC# +Field.customOutlineCode#=\u5927\u7DB1\u4EE3\u78BC# +Field.customStart#=\u958B\u59CB# +Field.customText#=\u6587\u5B57# +Field.cv=\u6210\u672C\u5DEE\u7570(CV) +Field.cvPercent=\u6210\u672C\u5DEE\u7570(CV)\u7387 +Field.deadline=\u6700\u5F8C\u671F\u9650 +Field.debugDependencyOrder=\u76F8\u4F9D\u9806\u5E8F +Field.delay=\u5206\u914D\u5EF6\u9072 +Field.delegatedTo=\u59D4\u6D3E\u7D66 +Field.dependencyDate=\u5F9E\u5C6C\u65E5\u671F +Field.dependencyStart=\u958B\u59CB\u76F8\u4F9D +Field.dependencyType=\u985E\u578B +Field.dirty=\u6C59\u67D3 +Field.duration=\u671F\u7A0B +Field.durationVariance=\u671F\u7A0B\u8B8A\u7570 +Field.eac=EAC +Field.earliestStartingTask=\u6700\u65E9\u958B\u59CB\u7684\u4EFB\u52D9 +Field.earlyFinish=\u63D0\u524D\u5B8C\u6210 +Field.earlyStart=\u63D0\u65E9\u958B\u59CB +Field.earnedValueMethod=\u6399\u503C\u6CD5 +Field.effectiveDate=\u6709\u6548\u65E5\u671F +Field.effortDriven=\u5DE5\u4F5C\u9A45\u52D5 +Field.elapsedDuration=\u6B77\u6642\u671F\u7A0B +Field.emailAddress=\u96FB\u5B50\u90F5\u4EF6\u5730\u5740 +Field.estimated=\u4F30\u8A08\u503C +Field.expectedDuration=\u9810\u671F\u671F\u7A0B +Field.expectedFinish=\u9810\u671F\u5B8C\u6210 +Field.expectedStart=\u9810\u8A08\u958B\u59CB\u6642\u9593 +Field.expenseType=\u8CBB\u7528\u985E\u578B +Field.externalId=\u5916\u90E8ID +Field.externalTask=\u5916\u90E8\u4EFB\u52D9 +Field.finish=\u5B8C\u6210 +Field.finishDate=\u5B8C\u6210 +Field.finishOffset=\u7D42\u9EDE\u504F\u79FB +Field.finishSlack=\u5B8C\u6210\u9B06\u5F1B +Field.finishVariance=\u5B8C\u6210\u8B8A\u7570 +Field.fixedCost=\u56FA\u5B9A\u6210\u672C +Field.fixedCostAccrual=\u56FA\u5B9A\u6210\u672C\u61C9\u8A08 +Field.forward=\u524D\u63A8\u6392\u7A0B +Field.freeSlack=\u81EA\u7531\u9B06\u5F1B +Field.ganttSnapshot=\u7518\u7279 +Field.generic=\u901A\u7528 +Field.group=\u7D44 +Field.groupBySummary=\u6309\u6458\u8981\u5206\u7D44 +Field.hideBar=\u96B1\u85CF\u6B04 +Field.hyperlink=\u8D85\u9023\u7D50 +Field.hyperlinkAddress=\u8D85\u93C8\u63A5\u7DB2\u5740 +Field.hyperlinkHref=Hyperlink Href +Field.hyperlinkSubAddress=\u8D85\u93C8\u63A5\u5B50\u7DB2\u5740 +# ID = \u8B58\u5225\u78BC +Field.id=ID +Field.ignoreResourceCalendar=\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6 +Field.inactive=\u4E0D\u6D3B\u8E8D +Field.indicators=\u6307\u6A19 +Field.initials=\u7E2E\u5BEB +Field.justModified=\u525B\u525B\u4FEE\u6539 +Field.lag=\u843D\u5F8C +Field.lastModificationDate=\u6700\u5F8C\u4FEE\u6539 +Field.lastTimesheetUpdate=\u6700\u8FD1\u7684\u6642\u9593\u8868\u66F4\u65B0 +Field.lateFinish=\u903E\u671F\u672A\u5B8C\u6210 +Field.lateStart=\u9072\u5230 +Field.latestFinishingTask=\u6700\u65B0\u5B8C\u6210\u7684\u4EFB\u52D9 +Field.levelAssignments=\u64AB\u5E73\u5206\u6D3E +Field.levelingCanSplit=\u64AB\u5E73\u53EF\u5206\u5272 +Field.levelingDelay=\u64AB\u5E73\u5EF6\u9072 +Field.linkedFields=\u93C8\u63A5\u5B57\u6BB5 +Field.manager=\u7D93\u7406 +Field.markTaskAsMilestone=\u4EE5\u91CC\u7A0B\u7891\u986F\u793A\u4EFB\u52D9 +Field.marked=\u5DF2\u6A19\u8A18 +Field.materialLabel=\u6750\u6599\u6A19\u7C64 +Field.maximumUnits=\u6700\u5927\u55AE\u4F4D +Field.milestone=\u91CC\u7A0B\u7891 +Field.name=\u59D3\u540D +Field.negativeSlack=\u8CA0\u9B06\u5F1B +Field.netPresentValue=\u6DE8\u73FE\u503C +Field.networkSnapshot=\u7DB2\u7D61 +Field.notes=\u7B46\u8A18 +Field.objects=\u5C0D\u8C61 +Field.optimisticDuration=\u6A02\u89C0\u6301\u7E8C\u671F\u7A0B +Field.optimisticFinish=\u6A02\u89C0\u5B8C\u6210 +Field.optimisticStart=\u6A02\u89C0\u958B\u59CB +Field.outlineLevel=\u5927\u7DB1\u7D1A\u5225 +Field.outlineNumber=\u5927\u7DB1\u7DE8\u865F +Field.overallocated=\u904E\u5EA6\u5206\u914D +Field.overallocation=\u904E\u5EA6\u5206\u914D +Field.overtimeCost=\u52A0\u73ED\u8CBB +Field.overtimeRate=\u52A0\u73ED\u7387 +Field.overtimeWork=\u52A0\u73ED +Field.parentId#=\u7236 Id# +Field.partner=\u4F19\u4F34 +Field.peak=\u5CF0\u503C +Field.peakUnits=\u5CF0\u503C\u55AE\u4F4D +Field.pendingTimesheetUpdate=\u9700\u8981\u66F4\u65B0\u6642\u9593\u8868 +Field.percentAllocation=\u767E\u5206\u6BD4\u5206\u914D +Field.percentComplete=\u5B8C\u6210\u767E\u5206\u6BD4 +Field.percentWorkComplete=\u5DE5\u4F5C\u5B8C\u6210\u767E\u5206\u6BD4 +Field.pessimisticDuration=\u60B2\u89C0\u6301\u7E8C\u671F\u7A0B +Field.pessimisticFinish=\u60B2\u89C0\u5B8C\u6210 +Field.pessimisticStart=\u60B2\u89C0\u958B\u59CB +Field.phonetics=\u8A9E\u97F3\u5B78 +Field.physicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u767E\u5206\u6BD4 +Field.predecessorId=\u524D\u4EFB ID +Field.predecessorName=\u524D\u4EFB\u59D3\u540D +Field.predecessors=\u524D\u8F29 +Field.preleveledFinish=\u5168\u5C08\u6848\u5B8C\u6210 +Field.preleveledStart=\u5168\u5C08\u6848\u958B\u59CB +Field.priority=\u512A\u5148\u6B0A +Field.project=\u5C08\u6848 +Field.projectDivision=\u90E8\u9580 +Field.projectGroup=\u7D44 +Field.projectId=\u5C08\u6848 ID +Field.projectStatus=\u5C08\u6848\u72C0\u614B +Field.projectType=\u5C08\u6848\u985E\u578B +Field.rate=\u55AE\u4F4D +Field.rbsCode=RBS +Field.readOnlyDuration=\u6301\u7E8C\u671F\u7A0B +Field.recurring=\u91CD\u8907\u767C\u751F +Field.referringSubprojectTaskDependencyDate=\u5B50\u5C08\u6848\u4F9D\u8CF4\u6027\u65E5\u671F +Field.regularWork=\u6B63\u5E38\u5DE5\u4F5C +Field.remainingAvailability=\u5269\u9918\u53EF\u7528\u7387 +Field.remainingCost=\u5269\u9918\u6210\u672C +Field.remainingDuration=\u5269\u9918\u671F\u7A0B +Field.remainingOvertimeCost=\u5269\u9918\u52A0\u73ED\u8CBB +Field.remainingOvertimeWork=\u5269\u9918\u7684\u52A0\u73ED\u5DE5\u4F5C +FieldDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Field.remainingWork=\u5269\u9918\u5DE5\u4F5C +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +Field.resourceGroup=\u8CC7\u6E90\u7D44 +Field.resourceId=\u8CC7\u6E90 ID +Field.resourceInitials=\u8CC7\u6E90\u521D\u4F7F\u7DE8\u78BC +Field.resourceNames=\u8CC7\u6E90\u540D\u7A31 +Field.resourcePhonetics=\u8CC7\u6E90\u8A9E\u97F3 +Field.resourcePool=\u8CC7\u6E90\u6C60 +Field.resourceType=\u985E\u578B +Field.responsePending=\u5F85\u8655\u7406 +Field.resume=\u6062\u5FA9 +Field.risk=\u98A8\u96AA +Field.rollup=\u6372\u8D77 +Field.scheduleStatusIndicator=\u8A08\u756B\u8868\u72C0\u614B +Field.schedulingMethod=\u8ABF\u5EA6\u65B9\u6CD5 +Field.showProjectResourcesOnly=\u50C5\u986F\u793A\u8F49\u6848\u8A08\u5283\u8CC7\u6E90 +Field.spi=SPI +Field.standardRate=\u6A19\u6E96\u8CBB\u7387 +Field.start=\u958B\u59CB +Field.startDate=\u958B\u59CB +Field.startOffset=\u958B\u59CB\u504F\u79FB +Field.startSlack=\u958B\u59CB\u9B06\u5F1B +Field.startVariance=\u958B\u59CB\u5DEE\u7570 +Field.status=\u72C0\u614B +Field.statusDate=\u72C0\u614B\u65E5\u671F +Field.statusIndicator=\u7E3D\u9AD4\u72C0\u6CC1 +Field.statusTaskIndicator=\u72C0\u614B\u4EFB\u52D9\u6307\u793A\u5668 +Field.stop=\u505C\u6B62 +Field.subprojectFile=\u5B50\u5C08\u6848\u6A94\u6848 +Field.subprojectOf=\u5B50\u5C08\u6848 +Field.subprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.successorId=\u63A5\u73ED\u4EBA ID +Field.successorName=\u63A5\u73ED\u4EBA +Field.successors=\u5F8C\u7E7C\u8005 +Field.summary=\u6458\u8981 +Field.summaryProgress=\u6458\u8981\u9032\u5EA6 +Field.suprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.sv=SV +Field.svPercent=SV\u767E\u5206\u6BD4 +Field.taskCalendar=\u4EFB\u52D9\u884C\u4E8B\u66C6 +Field.taskId=\u4EFB\u52D9 ID +Field.taskName=\u4EFB\u52D9\u540D\u7A31 +Field.taskOutlineNumber=\u4EFB\u52D9\u5927\u7DB1\u7DE8\u865F +Field.taskSummaryName=\u4EFB\u52D9\u6458\u8981\u540D\u7A31 +Field.taskType=\u985E\u578B +Field.tcpi=TCPI +Field.teamStatusPending=\u5718\u968A\u72C0\u614B\u5F85\u5B9A +Field.textAbove=\u4E0A\u65B9\u6587\u5B57 +Field.timesheetFinish=\u6642\u9593\u8868\u5B8C\u6210 +Field.timesheetStart=\u6642\u9593\u8868\u958B\u59CB +FieldDialog.document=\u6587\u4EF6: +Field.timesheetStatus=\u6642\u9593\u8868\u72C0\u614B +Field.timesheetStatusName=\u72C0\u614B +Field.totalSlack=\u6020\u5DE5\u7E3D\u6578 +Field.totalSlackEnd=\u6020\u5DE5\u7E3D\u6578\u7D50\u675F +Field.totalSlackStart=\u6020\u5DE5\u7E3D\u6578\u958B\u59CB +Field.uniqueId=\u552F\u4E00\u8EAB\u4EFD +Field.uniqueIdPredecessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u524D\u8EAB +Field.uniqueIdSuccessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u5F8C\u7E7C\u8005 +Field.unitAvailability=\u55AE\u4F4D\u53EF\u7528\u6027 +Field.updateNeeded=\u9700\u8981\u66F4\u65B0 +Field.userAccount=\u4F7F\u7528\u8005\u5E33\u865F +Field.userRole=\u5C08\u6848\u89D2\u8272 +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=\u662F\u5426\u7236WBS +Field.wbsParentName=\u7236WBS +Field.wbsPredecessors=WBS \u524D\u8EAB +Field.wbsSuccessors=WBS\u5F8C\u7E7C\u8005 +Field.work=\u5DE5\u4F5C +Field.workAvailability=\u5DE5\u4F5C\u53EF\u7528\u6027 +Field.workContour=\u5DE5\u4F5C\u8F2A\u5ED3 +Field.workVariance=\u5DE5\u4F5C\u5DEE\u7570 +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Projects +File.projity=ProjectLibre +Filter.CompletedTasks=\u5DF2\u5B8C\u6210\u4EFB\u52D9 +Filter.CostOverbudgetTasks=\u9810\u7B97\u8D85\u652F\u4EFB\u52D9 +Filter.CriticalTasks=\u95DC\u9375\u4EFB\u52D9 +Filter.DateRange=\u65E5\u671F\u7BC4\u570D +Filter.Flag1=\u65D7\u6A19 1 +Filter.Flag2=\u65D7\u6A19 2 +Filter.Flag3=\u65D7\u6A19 3 +Filter.InProgressAssignments=\u9032\u884C\u4E2D\u7684\u4F5C\u696D +Filter.InProgressTasks=\u9032\u884C\u4E2D\u7684\u4EFB\u52D9 +Filter.IncompleteTasks=\u672A\u5B8C\u6210\u7684\u4EFB\u52D9 +Filter.LateOrOverbudgetTasks=\u5EF6\u9072/\u8D85\u9810\u7B97\u4EFB\u52D9 +Filter.Milestones=\u5927\u4E8B\u8A18 +Filter.MyDelegatedTasks=\u6211\u7684\u59D4\u6D3E\u4EFB\u52D9 +Filter.MyTasks=\u6211\u7684\u4EFB\u52D9 +Filter.None=\u7121\u904E\u6FFE\u5668 +Filter.NormalTasks=\u6B63\u5E38\u4EFB\u52D9 +Filter.ResourcesMaterial=\u7269\u8CEA\u8CC7\u6E90 +Filter.ResourcesMe=\u6211 +Filter.ResourcesWork=\u5DE5\u4F5C\u8CC7\u6E90 +Filter.SlippedTasks=\u5DF2\u6ED1\u52D5\u4EFB\u52D9 +Filter.SummaryTasks=\u6458\u8981\u4EFB\u52D9 +Filter.TasksWithEstimatedDurations=\u4F30\u8A08\u671F\u7A0B\u7684\u4EFB\u52D9... +Filter.UnstartedAssignments=\u672A\u958B\u59CB\u7684\u5206\u914D +FixedDuration.FixedDuration=\u56FA\u5B9A\u671F\u7A0B +Filter.UnstartedTasks=\u672A\u958B\u59CB\u7684\u4EFB\u52D9 +Filter.WorkComplete=\u5DE5\u4F5C\u5B8C\u6210 +FixedWork.FixedWork=\u56FA\u5B9A\u5DE5\u4F5C +FixedUnits.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +FixedDuration.TheDurationMessage=\u6B64\u5DE5\u4F5C\u4E2D\u7684\u56FA\u5B9A\u671F\u7A0B\u4EFB\u52D9\u5FC5\u9808\u66F4\u6539\u5176\u671F\u7A0B +FooterRenderer.page=\ - \u9801 +Gantt.Popup.annotationStylesMenu=\u8A3B\u91CB\u6A23\u5F0F +Gantt.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +Gantt.Popup.showAssignments=\u986F\u793A\u4F5C\u696D +Gantt.Popup.showCalendar=\u986F\u793A\u884C\u4E8B\u66C6 +Gantt.Popup.showRows=\u986F\u793A\u884C +Gantt.Popup.splitMode=\u5206\u5272 +Gantt.tooltip.Assignment=\u4F5C\u696D +Gantt.tooltip.Resource=\u8CC7\u6E90 +Gantt.tooltip.Task=\u4EFB\u52D9 +Gantt.tooltip.from=\u4F86\u81EA +Gantt.tooltip.lag=\u6EEF\u5F8C +Gantt.tooltip.link=\u93C8\u63A5 +Gantt.tooltip.to=\u81F3 +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u5728\u53E6\u4E00\u500B\u5408\u4F75\u5C08\u6848\u4E2D\u4F5C\u70BA\u5B50\u5C08\u6848\u958B\u555F +GraphicManager.SelectedProjectAlreadySubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u662F\u6B64\u5408\u4F75\u5C08\u6848\u4E2D\u7684\u5B50\u9805\u76EE +Grouper.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Grouper.CompleteIncomplete=\u5B8C\u6210/\u672A\u5B8C\u6210 +Grouper.Critical=\u95DC\u9375 +Grouper.CriticalThenDuration=\u95DC\u9375\u7136\u5F8C\u671F\u7A0B +Grouper.Delegated=\u59D4\u8A17\u7D66 +Grouper.Duration=\u671F\u7A0B +Grouper.None=\u7121\u7FA4\u9AD4 +Grouper.ResourceGroup=\u7D44 +Grouper.ResourceType=\u985E\u578B +HelpDialog.About=\u8AAA\u660E +HelpDialog.GoToOnlineHelp=\u8F49\u5230\u7DDA\u4E0A\u8AAA\u660E +HelpDialog.ShowLicense=\u986F\u793A\u4F7F\u7528\u6388\u6B0A +HelpDialog.ShowTipsOfTheDay=\u986F\u793A\u7576\u5929\u7684\u63D0\u793A +HelpDialog.WatchHowToVideos=\u89C0\u770B\u5165\u9580\u5F71\u7247 +HyperLinkToolTip.SeeOnlineDemo=">\u89C0\u770B\u7DDA\u4E0A\u5C55\u793A +HyperLinkToolTip.SeeOnlineHelp=">\u89C0\u770B\u7DDA\u4E0A\u8AAA\u660E +InformationDialog.AssignResources=\u5206\u914D\u8CC7\u6E90 +InformationDialog.ChangeWorkingTime=\u8B8A\u66F4\u5DE5\u4F5C\u6642\u9593 +License.Inactive =\u7121\u6548 +License.LiteUser=\u7CBE\u7C21\u7248\u4F7F\u7528\u8005 +License.PowerUser=\u8D85\u7D1A\u4F7F\u7528\u8005 +LicenseDialog.CouldNotLoadLater=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 +LicenseDialog.CouldNotLoadExiting=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002\u7A0B\u5F0F\u5C07\u95DC\u9589\u3002 +LicenseDialog.Email=\u8ACB\u8A3B\u518A\u60A8\u7684ProjectLibre\u526F\u672C\uFF0C\u4EE5\u4FBF\u96A8\u6642\u4E86\u89E3\u6709\u95DC\u8A72\u7522\u54C1\u7684\u6700\u65B0\u72C0\u6CC1\u548C\u66F4\u65B0\u3002 +LicenseDialog.EmailLabel=\u96FB\u5B50\u90F5\u4EF6\u4FE1\u7BB1 +LicenseDialog.License=\u6388\u6B0A\u66F8 +LicenseDialog.ThirdParty=\u7B2C\u4E09\u65B9 +LicenseOption.Administrator=\u7BA1\u7406\u54E1 +LicenseOption.External=\u5408\u4F5C\u5925\u4F34/\u5BA2\u6236 +LicenseOption.Inactive=- +LocalFileImporter.Exporting=\u51FA\u53E3... +LocalFileImporter.Importing=\u9032\u53E3... +LoginDialog.Login=\u767B\u9304\uFF1A +LoginDialog.Password=\u5BC6\u78BC\uFF1A +LoginDialog.RememberMe=\u81EA\u52D5\u767B\u9304 +LoginDialog.UseOfficeLook=\u4F7F\u7528 Office\u6A23\u5F0F +LookupDialog.EnterPartOfTheName=\u8F38\u5165\u60A8\u8981\u5C0B\u627E\u7684\u540D\u7A31\u7684\u4E00\u90E8\u5206 +LookupDialog.Find=\u5C0B\u627E +LookupDialog.LookupAnObject=\u5C0B\u627E\u5C0D\u8C61 +LookupDialog.NoMatchesFound=\u627E\u4E0D\u5230\u5339\u914D\u9805\u76EE +LookupDialog.Results=\u7D50\u679C +LookupDialog.Type=\u985E\u578B\uFF1A +LookupDialog.UnableToContactServer=\u7121\u6CD5\u9023\u63A5\u670D\u52D9\u5668\u3002 +LookupField.LookupAValue=\u5C0B\u627E\u503C +Message.ImportError=\u7121\u6CD5\u8B80\u53D6\u6587\u4EF6 +Message.allowDeleteActuals=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u6709\u5BE6\u969B\u8CC7\u6599\uFF0C\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u55CE? +Message.allowDistrbutedStartBeforeProjectStart=\u8A72\u503C\u5C07\u5C0E\u81F4\u4EFB\u52D9\u5728\u5C08\u6848\u555F\u52D5\u4E4B\u524D\u555F\u52D5\u3002\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowDistrbutedStartBeforeTaskStart=\u8A72\u503C\u65E9\u65BC\u5C08\u6848\u958B\u59CB\u671F\u7A0B\uFF0C\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowTaskStartBeforeProjectStart=\u8A72\u4EFB\u52D9\u662F\u5426\u53EF\u5728\u8F49\u6848\u958B\u59CB\u524D\u5C31\u958B\u59CB\uFF1F +Message.alreadyParentChildHierarchy=\u5DF2\u5B58\u5728\u7236/\u5B50\u95DC\u4FC2Message.badTimeFormat=\u6642\u9593\u683C\u5F0F\u932F\u8AA4 +Message.badTimeIntervals=\u4E0D\u826F\u6642\u9593\u9593\u9694 +Message.cannotEnterUnits=\u60A8\u4E0D\u80FD\u5728\u6B64\u6B04\u4F4D\u4E2D\u8F38\u5165\u55AE\u4F4D +Message.cannotLinkToSummary=\u60A8\u4E0D\u80FD\u5C07\u4E00\u500B\u6458\u8981\u4EFB\u52D9\u548C\u5B83\u7684\u4E00\u500B\u5B50\u4EFB\u52D9\u9023\u63A5\u8D77\u4F86\u3002\u5982\u679C\u60A8\u60F3\u5C07\u5B83\u5011\u9023\u63A5\u8D77\u4F86\uFF0C\u8ACB\u5C07\u5B50\u4EFB\u52D9\u79FB\u51FA\uFF0C\u4F7F\u5176\u4E0D\u518D\u5728\u6458\u8981\u4EFB\u52D9\u4E4B\u4E0B\uFF0C\u5F9E\u800C\u522A\u9664\u5C64\u6B21\u7D50\u69CB\u3002 +Message.cantEmptySpreadsheet=\u8A66\u7B97\u8868\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u6B04\u4F4D\u3002 +Message.cantLinkToClosedSubproject=\u5B50\u5C08\u6848\u5FC5\u9808\u662F\u958B\u555F\u548C\u53EF\u5BEB\u5165\uFF0C\u4F7F\u53EF\u6210\u70BA\u93C8\u63A5\u7684\u76EE\u6A19\uFF0C\u56E0\u70BA\u5B83\u6703\u5F71\u97FF\u5B50\u5C08\u6848\u7684\u958B\u59CB\u65E5\u671F\u3002 +Message.cantLinkToExternal=\u60A8\u7121\u6CD5\u93C8\u63A5\u5230\u5916\u90E8\u4EFB\u52D9\u3002 +Message.cantLinkToSelf=\u60A8\u4E0D\u80FD\u5C07\u4EFB\u52D9\u93C8\u63A5\u5230\u81EA\u9AD4\u3002 +Message.circularDependency=\u8A72\u93C8\u63A5\u7121\u6548\uFF0C\u56E0\u70BA\u5B83\u6703\u8207\u5176\u4ED6\u4EFB\u52D9\u5EFA\u7ACB\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 +Message.confirmDeleteRows=\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u9019\u4E9B\u884C\u55CE\uFF1F +# {0} is the name of the predecessor task, {1} is the name of the successor task +Message.crossProjectCircularDependency.mf=\u5F9E{0}\u5230{1}\u7684\u8DE8\u5C08\u6848\u93C8\u63A5\u5C07\u5C0E\u81F4\u8207\u5176\u4ED6\u4EFB\u52D9\u7684\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 \u5B83\u5DF2\u7981\u7528\u4E26\u4EE5\u865B\u7DDA\u6A19\u8A18\u3002 +Message.errorCalendarMustHaveWorkingDay=\u884C\u4E8B\u66C6\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u9810\u8A2D\u5DE5\u4F5C\u65E5\u3002 +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=\u8A72\u503C\u4E0D\u5F97\u8D85\u904E {1,number,percent}. +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u70BA {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=\u8A72\u503C\u5FC5\u9808\u5728{0\uFF0Cnumber}\u5230{1\uFF0Cnumber}\u4E4B\u9593\u3002 +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=\u8A72\u503C\u4E0D\u80FD\u8D85\u904E{1\uFF0Cnumber}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u662F{0,number}\u3002 +Message.importCircularLink=\u7531\u65BC\u5C08\u6848\u4E2D\u5305\u542B\u8FF4\u5708\u7684\u524D\u7F6E\u95DC\u4FC2\uFF0C\u6240\u4EE5\u7121\u6CD5\u5C0E\u5165\u3002 +Message.invalidAssignments=\u60A8\u5FC5\u9808\u5F9E\u8CC7\u6E90\u6C60\u4E2D\u8F38\u5165\u73FE\u6709\u8CC7\u6E90\uFF0C\u4E26\u7528\u6E05\u55AE\u5206\u9694\u7B26\u865F"\uFF1B "\u5206\u9694\u3002 \u5982\u679C\u60A8\u5E0C\u671B\u5206\u914D\u7684\u8CC7\u6E90\u5C11\u65BC100%\uFF0C\u60A8\u53EF\u4EE5\u5728\u62EC\u865F\u5167\u6DFB\u52A0\u4E00\u500B\u767E\u5206\u6BD4\uFF1AClark Kent[50%];Lois Lane\u3002 +Message.invalidChoice=\u7121\u6548\u7684\u9078\u64C7 +Message.invalidCost=\u7121\u6548\u6210\u672C\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u6210\u672C\u3002\u6210\u672C\u61C9\u8A72\u7528\u6578\u5B57\u8868\u793A\u3002\u8CA8\u5E63\u7B26\u865F\u662F\u53EF\u9078\u7684\u3002\u7B26\u865F\u70BA\u60A8\u7684\u7CFB\u7D71\u9810\u8A2D\u503C\u3002 +Message.invalidDate=\u7121\u6548\u65E5\u671F\n \u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u65E5\u671F\uFF0C\u6216\u8005\u4E0D\u5728\u65E5\u671F\u7BC4\u570D\u5167\uFF0C\u53731970\u5E741\u67081\u65E5\u52302049\u5E7412\u670831\u65E5\u3002\n\u65E5\u671F\u683C\u5F0F\u662F\u60A8\u7CFB\u7D71\u7684\u65E5\u671F\u683C\u5F0F\u3002 \u4F8B\u5982\uFF1A06\u5E743\u670812\u65E5\u62162006\u5E743\u67083\u65E5\u3002 +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf=\u7121\u6548\u7684{0}.\n\u8ACB\u4F7F\u7528\u6709\u6548\u7684\u4EFB\u52D9ID\u865F.\n\u00B7 {0}\u8CC7\u8A0A\u8868\u793A\u70BA\uFF1A{0}ID\u865F\uFF0C\u76F8\u4F9D\u6027\uFF0C\u4EE5\u53CA\u8D85\u524D\u6216\u6EEF\u5F8C\u6642\u9593.\n\u00B7\u4F60\u4E5F\u53EF\u4EE5\u4F7F\u7528\u4EFB\u52D9\u8CC7\u8A0A\u5C0D\u8A71\u6846\u3002 +Message.invalidDuration=\u7121\u6548\u7684\u671F\u7A0B\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u671F\u7A0B\u3002\n\u8ACB\u5617\u8A66\u4E00\u500B\u503C\uFF0C\u598224\u5C0F\u65F6\uFF0824h\uFF09\u30013\u5929\uFF083d\uFF09\u62169\u5929\uFF089ed\uFF09\u3002 +Message.invalidInput=\u8A72\u503C\u7121\u6548\u3002 +Message.invalidIntersection=\u7D50\u679C\u5DE5\u4F5C\u6642\u9593\u7121\u6548\n\n\u6709\u4E00\u500B\u8207\u5176\u8CC7\u6E90\u884C\u4E8B\u66C6\u76F8\u4EA4\u7684\u4EFB\u52D9\uFF0C\u7121\u8DB3\u5920\u5DE5\u4F5C\u6642\u9593\u4F86\u57F7\u884C\u4EFB\u4F55\u5DE5\u4F5C\u3002\n\u8A72\u4EFB\u52D9\u5C07\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u3002\n\u8981\u89E3\u6C7A\u6B64\u554F\u984C\uFF0C\u60A8\u53EF\u4EE5\u66F4\u6539\u4EFB\u52D9\u6216\u8CC7\u6E90\u884C\u4E8B\u66C6\uFF0C\u6216\u70BA\u4EFB\u52D9\u9078\u64C7\u201C\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u201D\u9078\u9805\u3002 Message.invalidRate =\u9019\u4E0D\u662F\u6709\u6548\u7684\u8CBB\u7387\u3002\n\u5C0D\u65BC\u201C\u5DE5\u4F5C\u201D\uFF08\u975E\u91CD\u8981\uFF09\u8CC7\u6E90\uFF0C\u8ACB\u8F38\u5165\u8CBB\u7387\u91D1\u984D\uFF0C\u5F8C\u8DDF\u659C\u6760\uFF08/\uFF09\uFF0C\u7136\u5F8C\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"100/h".\n\u5C0D\u65BC\u7269\u6599\u8CC7\u6E90\uFF0C\u9375\u5165\u4E0D\u5E36\u659C\u7DDA\u548C\u6642\u9593\u9031\u671F\u7684\u8CBB\u7387\u91D1\u984D\n\u4F8B\u5982\uFF0C"10"\u3002 \u5982\u679C\u60A8\u7684\u7269\u6599\u6A19\u7C64\u70BA\u201C\u6876\u201D\uFF0C\u5247\u8868\u793A\u70BA\u201C $ 10/\u6876\u201D\u3002 +Message.invaliidUnits=\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u55AE\u4F4D\u503C\n\n\u5C0D\u65BC\u5DE5\u4F5C\uFF08\u975E\u7269\u8CEA\uFF09\u8CC7\u6E90\uFF0C\u8F38\u5165\u4E00\u500B\u6578\u5B57\u3002\n\n\u5C0D\u65BC\u56FA\u5B9A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8ACB\u55AE\u7368\u8F38\u5165\u55AE\u4F4D\u503C\u3002 \u4F8B\u5982\uFF0C"10 "\u8868\u793A "10\u6876"\uFF0C\u5982\u679C\u4F60\u7684\u6750\u6599\u6A19\u7C64\u662F "\u6876"\u7684\u8A71\u3002\n\n\u5C0D\u65BC\u4E00\u500B\u53EF\u8B8A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8F38\u5165\u55AE\u4F4D\u503C\uFF0C\u7136\u5F8C\u8F38\u5165\u659C\u7DDA(/)\uFF0C\u518D\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"10/M "\u8868\u793A "\u6BCF\u670812\u6876"\u3002 +Message.notAResource=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u8CC7\u6E90 +Message.notATask=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u4EFB\u52D9 +Message.onlyReplaceOneResourceAtATime=\u60A8\u4E00\u6B21\u50C5\u80FD\u66FF\u63DB\u4E00\u500B\u8CC7\u6E90\u3002 +Message.onlySelectOneElement=\u6BCF\u6B21\u50C5\u80FD\u9078\u64C7\u4E00\u500B\u5143\u7D20\u3002 +Message.parentConstraintType=\u7236\u7D1A\u4EFB\u52D9\u53EA\u80FD\u662F\u5176\u4E2D\u4E4B\u4E00\u3002"\u5118\u5FEB"\uFF0C"\u4E0D\u65E9\u65BC\u958B\u59CB "\u6216 "\u4E0D\u665A\u65BC\u5B8C\u6210"\u3002\u5982\u679C\u60A8\u4F7F\u7528\u53CD\u5411\u8ABF\u5EA6\uFF0C\u90A3\u9EBC "\u76E1\u53EF\u80FD\u665A "\u662F\u4E00\u500B\u9078\u9805\uFF0C\u800C\u4E0D\u662F "\u76E1\u53EF\u80FD\u5FEB"\u3002 +Message.parentSuccessorCannotHaveFinishLink=\u7236\u4EFB\u52D9\u7684\u524D\u7F6E\u4EFB\u52D9\u53EA\u80FD\u662FFinish-Start\u6216Start-Start\u985E\u578B\u3002 +Message.projectAlreadyExists=\u5C08\u6848\u5DF2\u5B58\u5728\u3002\u662F\u5426\u53D6\u4EE3? +Message.projectMustHaveName=\u5C08\u6848\u5FC5\u9808\u6709\u4E00\u500B\u540D\u5B57\u3002 +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=\u5C08\u6848 " +Message.renameProject2=" \u5DF2\u7D93\u5B58\u5728\u65BC\u4F3A\u670D\u5668\u4E0A\u3002\u8ACB\u9078\u64C7\u5176\u4ED6\u540D\u7A31\u3002 +Message.saveProjectAs1=\u5132\u5B58\u5C08\u6848 " +Message.saveProjectAs2=" \u4F5C\u70BA +Message.saveProjectBeforeClosing1=\u60A8\u662F\u5426\u8981\u5C07\u66F4\u6539\u5132\u5B58\u5230 " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=\u5B50\u5C08\u6848\u5C07\u8F49\u63DB\u70BA\u6B63\u5E38\u4EFB\u52D9\u3002\u6B64\u64CD\u4F5C\u7121\u6CD5\u5FA9\u539F\u3002\u7E7C\u7E8C\uFF1F Message.synchronizeResources=\u8207\u4F3A\u670D\u5668\u540C\u6B65\u8CC7\u6E90\uFF1F +Message.tooManyResourcesSelectedToList.mf={0,number}\u5DF2\u9078\u53D6\u8CC7\u6E90 selected (\u592A\u591A\uFF0C\u7121\u6CD5\u5217\u51FA) +Message.tooManyTasksSelectedToList.mf={0,number}\u500B\u5DF2\u9078\u53D6\u7684\u4EFB\u52D9 (\u592A\u591A\u4EFB\u52D9\u7121\u6CD5\u5217\u51FA) +MicrosoftImporter.ErrorImportingXML=\u7121\u6CD5\u5C0E\u5165XML\u6587\u4EF6\u3002 \u50C5\u80FD\u5C0E\u5165\u4F7F\u7528MS Project\u6216Planner\u5275\u5EFA\u4E4BXML\u6587\u4EF6\u3002 +MicrosoftImporter.ImportWithSubprojects=\u8A72\u5C08\u6848\u5305\u542B\u5B50\u5C08\u6848\u3002 \u9019\u4E9B\u5B50\u5C08\u6848\u9700\u4EE5\u624B\u52D5\u5C0E\u5165\u3002 \u5B83\u5011\u6240\u5C0D\u61C9\u7684\u4EFB\u52D9\u70BA\uFF1A +MicrosoftImporter.Importing=\u9032\u53E3... +MicrosoftImporter.PrepareResources=\u6E96\u5099\u8CC7\u6E90 +Network.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +NewBaseCalendarDialog.CreateACopyOfCalendar=\u88FD\u4F5C\u4E00\u4EFD\u884C\u4E8B\u66C6\u526F\u672C +NewBaseCalendarDialog.CreateANewBaseCalendar=\u5EFA\u7ACB\u4E00\u500B\u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +NewBaseCalendarDialog.Name=\u540D\u7A31 +NewBaseCalendarDialog.NewBaseCalendar=\ \u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=\u9396\u5B9A +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +OpenProjectDialog.CreationDate=\u5EFA\u7ACB\u65E5\u671F +OpenProjectDialog.ModificationDate=\u4FEE\u6539\u65E5\u671F +OpenProjectDialog.Name=\u540D\u7A31 +Open_Title.ProjityError=ProjectLibre \u932F\u8AA4 +Open_Title.ProjityWarning=ProjectLibre \u8B66\u544A +PageSetupDialog.Margins=\u908A\u754C +PageSetupDialog.Margins.Left=\u5DE6 (mm) +PageSetupDialog.Margins.Right=\u53F3(mm) +PageSetupDialog.Margins.Top=\u4E0A (mm) +PageSetupDialog.Margins.Bottom=\u4E0B (mm) +PageSetupDialog.Orientation=\u65B9\u5411 +PageSetupDialog.Orientation.Landscape=\u6A6B +PageSetupDialog.Orientation.Portrait=\u76F4 +PageSetupDialog.Orientation.ReverseLandscape=\u6C34\u5E73\u7FFB\u8F49 +PageSetupDialog.Page=\u9801 +PageSetupDialog.Paper=\u7D19 +PageSetupDialog.PaperFormat.Custom=\u81EA\u8A02 +PageSetupDialog.PaperSize=\u7D19\u5F35\u5C3A\u5BF8 +PageSetupDialog.PaperSizeSettings.Custom=\u81EA\u5B9A\u7FA9\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.Custom.Width=\u5BEC (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=\u9AD8 (mm): +PageSetupDialog.PaperSizeSettings.Printer=\u4F7F\u7528\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.SinglePage=\u4E00\u5927\u9801 +PageSetupDialog.PaperSizeSettings.SinglePage2=(\u50C5PDF) +PageSetupDialog.Printers=\u5370\u8868\u6A5F +PageSetupDialog.PrinterPageSetup=\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=\u53EA\u6709\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u624D\u6709 +PageSetupDialog.PODOnly2=\u5C08\u6848\u9700\u6C42 +PageSetupDialog.Refresh=\u66F4\u65B0 +PageSetupDialog.SaveSettings=\u8A2D\u70BA\u9810\u8A2D +PageSetupDialog.SaveSettings.ToolTip=\u8A2D\u7F6E\u70BA\u9810\u8A2D\u5217\u5370\u8A2D\u7F6E +PageSetupDialog.SaveWebPDFSettings=\u8A2D\u70BA\u7DB2\u9801\u9810\u8A2D +PageSetupDialog.SaveWebPDFSettings.ToolTip=\u8A2D\u6210\u7DB2\u9801PDF\u5716\u50CF\u7684\u9810\u8A2D\u503C +PageSetupDialog.Settings.Label=\u8A2D\u5B9A +PageSetupDialog.Settings.Local=\u672C\u5730\u7AEF +PageSetupDialog.Settings.WebPDF=\u7DB2\u9801PDF +PageSetupDialog.Scaling=\u7E2E\u653E\u6BD4\u4F8B +PageSetupDialog.Scaling.FitTo=\u9069\u5408\uFF1A +PageSetupDialog.Scaling.FitToHeight=\u9801\u9AD8 +PageSetupDialog.Scaling.FitToWidth=\u9801\u5BEC +PageSetupDialog.Scaling.ScaleTo=\u7E2E\u653E\u5230\uFF1A +PageSetupDialog.Scaling.ScaleToHeight=\u9AD8 +PageSetupDialog.Scaling.ScaleToWidth=\u5BEC +PageSetupDialog.Scaling.ScaleToProportions=\u9650\u5236 +PageSetupDialog.Scaling.ScaleToProportions2=\u6BD4\u4F8B +PageSetupDialog.ShowGantt=\u7518\u7279\u5716 +PageSetupDialog.ShowParts=\u5716\u89E3 +PageSetupDialog.ShowSpreadSheet=\u8A66\u7B97\u8868 +PageSetupDialog.Title=\u9801\u9762\u8A2D\u7F6E +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=\u9078\u64C7\u7684\u670D\u52D9\u662FPDF\u670D\u52D9\uFF0C\u8ACB\u9078\u64C7\u5370\u8868\u6A5F\u3002 +PersonalContour.personal=\u4EBA\u54E1 +ProjectStatus.ACTIVE=\u6709\u6548 +PreviewPanel.Preview=\u9810\u89BD +PreviewPanelEnd.Preview=\u9810\u89BD +ProjectDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +ProjectDialog.Notes=\u7B46\u8A18\uFF1A +ProjectInformationDialog.ProjectInformation=\u5C08\u6848\u8CC7\u8A0A +ProjectStatus.CANCELLED=\u53D6\u6D88 +ProjectStatus.COMPLETED=\u5DF2\u5B8C\u6210 +ProjectDialog.NewProject=\u65B0\u7684\u5C08\u6848 +ProjectDialog.StartDate=\u958B\u59CB\u65E5\u671F\uFF1A +ProjectDialog.FinishDate=\u5B8C\u6210\u65E5\u671F\uFF1A +ProjectStatus.ON_HOLD=\u64F1\u7F6E +ProjectDialog.Manager=\u7D93\u7406\u4EBA\uFF1A +ProjectStatus.PENDING_APPROVAL=\u5F85\u6279\u51C6 +ProjectStatus.PLANNING=\u898F\u5283 +ProjectType.EVENT_PLANNING=\u6D3B\u52D5\u7B56\u5283 +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=\u884C\u92B7\u6D3B\u52D5 +ProjectInformationDialog.Notes=\u7B46\u8A18 +PrintPreviewFrame.PrintPreview=\u5217\u5370\u9810\u89BD +ProjectType.OTHER=\u5176\u4ED6 +ProjectType.PRODUCT_DEVELOPMENT=\u7522\u54C1\u958B\u767C +ProjectType.PROFESSIONAL_SERVICES=\u5C08\u696D\u7684\u670D\u52D9 +ProjectInformationDialog.Statistics=\u7D71\u8A08 +ProjectDialog.BasedOnProjectRole=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ProjectInformationDialog.General=\u4E00\u822C +ProjectType.SALES_CAMPAIGN=\u92B7\u552E\u6D3B\u52D5 +ProjectDialog.ProjectName=\u5C08\u6848\u540D\u7A31: +ProjectDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ProjectType.TECHNICAL_SUPPORT=\u6280\u8853\u8CC7\u6E90 +RenameDialog.AnotherItemWithThatNameAlreadyExists=\u5176\u4ED6\u9805\u76EE\u5DF2\u5B58\u5728\u6B64\u540D\u7A31 +RenameDialog.NewName=\u65B0\u540D\u7A31 +RenameDialog.Rename=\u66F4\u540D +RenameDialog.TheNameCannotBeEmpty=\u540D\u7A31\u4E0D\u53EF\u7A7A\u767D +RenameProjectDialog.NewProject=\u65B0\u5C08\u6848 +RenameProjectDialog.NewProjectName=\u65B0\u5C08\u6848\u540D\u7A31: +RenameProjectDialog.RenameProject=\u5C08\u6848\u66F4\u540D +ReportView.Columns=\u6B04\u4F4D: +ReportView.Report=\u56DE\u5831: +RenameDialog.CurrentName=\u73FE\u884C\u540D\u7A31 +RequestDemandType.Demand=Demand +RequestDemandType.None=- +RequestDemandType.Request=Request +ResourceAdditionDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceAdditionDialog.SelectResourcesToAdd=\u9078\u64C7\u8CC7\u6E90\u4EE5\u65B0\u589E +ResourceIndicatorsComponent.Administrator=\ (\u7BA1\u7406\u8005) +ResourceIndicatorsComponent.PartnerCustomer=\ (\u5925\u4F34/\u9867\u5BA2) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=\u6B64\u8CC7\u6E90\u5728\u5C08\u6848\u5718\u968A\u4E2D
+ResourceIndicatorsComponent.UserLicense=\u4F7F\u7528\u8005\u57F7\u7167: +ResourceInformationDialog.AssignedToTasks=\u5206\u914D\u81F3\u4EFB\u52D9: +ResourceInformationDialog.Costs=\u6210\u672C +ResourceInformationDialog.General=\u4E00\u822C +ResourceInformationDialog.Notes=\u7B46\u8A18 +ResourceInformationDialog.ResourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +ResourceInformationDialog.ResourceInformation=\u8CC7\u6E90\u8CC7\u8A0A +ResourceInformationDialog.Tasks=\u4EFB\u52D9 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90 (\u9664\u4E86\u9867\u5BA2/\u5925\u4F34) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u4E0D\u5408\u4F75, \u4EE5\u552F\u8B80\u958B\u555F\u5C08\u6848 +ResourceMappingDialog.ImportedResources=\u5DF2\u532F\u5165\u7684\u8CC7\u6E90 +ResourceMappingDialog.MergeResourcesUsingField=\u4F7F\u7528\u6B04\u4F4D\u532F\u5165\u8CC7\u6E90 +ResourceMappingDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ResourceMappingDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceMappingDialog.ServerResources=\u4F3A\u670D\u5668\u8CC7\u6E90 +ResourceType.Location=\u4F4D\u7F6E +ResourceType.Machine=\u6A5F\u68B0 +ResourceType.Material=\u6750\u6599 +ResourceType.Other=\u5176\u4ED6 +ResourceType.Work=\u5DE5\u4F5C +ResourceView.ThisResourceCurrentlyHasAssignments=. \u6B64\u8CC7\u6E90\u7576\u524D\u5DF2\u5206\u914D. +ResourceView.ToMoveAProtectedResource=\u82E5\u8981\u79FB\u52D5\u968E\u5C64\u4E2D\u7684\u4E0D\u53EF\u522A\u9664\u8CC7\u6E90, \u4F60\u53EF\u4EE5\u5728RBS\u8996\u5716\u4E2D\u5EFA\u7ACB\u9023\u7D50. +ResourceView.UsersCanOnlyBeRemoved=. \u4F7F\u7528\u8005\u53EA\u80FD\u5728\u7BA1\u7406\u4F7F\u7528\u8005\u9801\u4E2D\u522A\u9664\u6216\u8A2D\u70BA\u4E0D\u53EF\u7528. +ResourceView.YouCannotDeleteTheResource=\u4F60\u4E0D\u80FD\u522A\u9664\u9019\u500B\u8CC7\u6E90: +Role.Inactive=\u4E0D\u53EF\u7528 +Role.ProjectManager=\u5C08\u6848\u7D93\u7406 +Role.TeamMember=\u5718\u968A\u6210\u54E1 +SchedulingType.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.Percentage=\u767E\u5206\u7387 +ScheduleDialogBox.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D +ScheduleDialogBox.WorkIsEnteredIn=\ \u5DE5\u4F5C\u8F38\u5165\u5728 +ScheduleDialogBox.DefaultTaskType=\ \u9810\u8A2D\u4EFB\u52D9\u985E\u578B +SchedulingType.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.Schedule=\u8A08\u756B\u8868 +ScheduleDialogBox.Decimal=Decimal +ScheduleDialogBox.Minutes=\u5206\u9418 +ScheduleDialogBox.NewTask=\ \u65B0\u4EFB\u52D9 +SchedulingType.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.Hours=\u5C0F\u6642 +ScheduleDialogBox.Days=\u65E5\u5929 +ScheduleDialogBox.Weeks=\u9031 +ScheduleDialogBox.Months=\u6708 +Sorter.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Sorter.CompleteIncomplete=\u5B8C\u6574/\u4E0D\u5B8C\u6574 +Sorter.Cost=\u6210\u672C +Sorter.CostOverbudget=\u6210\u672C\u8D85\u904E\u9810\u7B97 +Sorter.CostPerUse=\u6BCF\u9805\u6210\u672C +Sorter.Critical=\u95DC\u9375 +Sorter.Delegated=\u59D4\u6D3E\u7D66 +Sorter.Duration=\u6642\u7A0B +Sorter.DurationThenCost=\u6642\u7A0B+\u6210\u672C +Sorter.FinishDate=\u7D50\u675F\u65E5\u671F +Sorter.Name=\u540D\u7A31 +Sorter.None=\u7121\u6392\u5E8F +Sorter.OvertimeRate=\u8D85\u6642\u7387 +Sorter.ResourceGroup=\u7FA4\u7D44 +Sorter.ResourceType=\u985E\u578B +Sorter.StandardRate=\u6A19\u6E96\u7387 +Sorter.StartDate=\u958B\u59CB\u65E5\u671F +Spreadsheet.Action.collapse=\u6536\u5408 +Spreadsheet.Action.copy=\u8907\u88FD +Spreadsheet.Action.cut=\u526A\u4E0B +Spreadsheet.Action.delete=\u522A\u9664 +Spreadsheet.Action.expand=\u5C55\u958B +Spreadsheet.Action.indent=\u7E2E\u6392 +Spreadsheet.Action.new=\u65B0\u589E +Spreadsheet.Action.outdent=\u53CD\u7E2E\u6392 +Spreadsheet.Action.paste=\u8CBC\u4E0A +Spreadsheet.Assignment.resourceUsage=\u8CC7\u6E90\u4F7F\u7528 +Spreadsheet.Assignment.taskUsage=\u4EFB\u52D9\u4F7F\u7528 +Spreadsheet.AssignmentEntry.assignResources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.AssignmentEntry.replaceResources=\u53D6\u4EE3\u8CC7\u6E90 +Spreadsheet.Dependency.predecessors=\u524D\u4E00\u624B +Spreadsheet.Dependency.successors=\u5F8C\u4E00\u624B +Spreadsheet.Project.default=\u9810\u8A2D +Spreadsheet.Project.portfolio=\u7D44\u5408 +Spreadsheet.Project.properties=\u8CA1\u7522 +Spreadsheet.Resource.earnedValue=\u6399\u503C +Spreadsheet.Resource.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Resource.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Resource.entryWorkResources=\u9810\u8A2D +Spreadsheet.ResourceAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.ResourceAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.ResourceAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.ResourceTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.ResourceUsage.default=\u8CC7\u6E90\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.nameOnly=Name +Spreadsheet.Task.baseline=\u57FA\u7DDA +Spreadsheet.Task.constraintDates=\u9650\u5236\u65E5\u671F +Spreadsheet.Task.cost=\u6210\u672C +Spreadsheet.Task.delay=Delay +Spreadsheet.Task.earnedValue=\u6399\u503C +Spreadsheet.Task.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Task.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Task.entry=\u9810\u8A2D +SpreadSheetColumnMenu.InsertColumn=I\u63D2\u5165\u6B04\u4F4D... +Spreadsheet.Task.schedule=\u8A08\u756B\u8868 (CPM) +Spreadsheet.Task.summary=\u6458\u8981 +Spreadsheet.Task.tracking=\u8FFD\u8E64 +Spreadsheet.Task.usage=\u5DE5\u4F5C +Spreadsheet.Task.variance=\u8A08\u756B\u8868\u8B8A\u7570 +Spreadsheet.TaskAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.TaskAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.TaskAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.TaskAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.TaskTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.TaskUsage.default=\u4EFB\u52D9\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.Timesheet.Default=\u5DE5\u6642\u8868 +Spreadsheet.Timesheet.completion=\u5B8C\u6210 +SpreadSheetColumnMenu.HideColumn=\u96B1\u85CF\u6B04\u4F4D +Spreadsheet.availability=\u53EF\u5229\u7528 +Spreadsheet.costRates=\u6210\u672C\u7387 +Spreadsheet.empty= +StandardContour.backLoaded=\u63A8\u9072 +StandardContour.bell=\u9418\u8072 +StandardContour.doublePeak=\u96D9\u5CF0 +StandardContour.earlyPeak=\u524D\u671F\u5CF0\u503C +StandardContour.flat=\u5E73\u539F +StandardContour.frontLoaded=\u63D0\u524D +StandardContour.latePeak=\u5F8C\u671F\u5CF0\u503C +StandardContour.plateau=\u9AD8\u539F\u5340 +Styles.Annotation.milestone=\u91CC\u7A0B\u7891 +Styles.Annotation.normal=\u4E00\u822C\u4EFB\u52D9 +Styles.Bar.Row.assignment=\u5206\u914D +Styles.Bar.Row.baseline10=\u57FA\u7DDA 10 +Styles.Bar.Row.baseline1=\u57FA\u7DDA 1 +Styles.Bar.Row.baseline2=\u57FA\u7DDA 2 +Styles.Bar.Row.baseline3=\u57FA\u7DDA 3 +Styles.Bar.Row.baseline4=\u57FA\u7DDA 4 +Styles.Bar.Row.baseline5=\u57FA\u7DDA 5 +Styles.Bar.Row.baseline6=\u57FA\u7DDA 6 +Styles.Bar.Row.baseline7=\u57FA\u7DDA 7 +Styles.Bar.Row.baseline8=\u57FA\u7DDA 8 +Styles.Bar.Row.baseline9=\u57FA\u7DDA 9 +Styles.Bar.Row.baseline=\u57FA\u7DDA +Styles.Bar.Row.critical=\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.deadline=\u6700\u5F8C\u671F\u9650 +Styles.Bar.Row.external=\u5916\u90E8\u4EFB\u52D9 +Styles.Bar.Row.milestone=\u91CC\u7A0B\u7891 +Styles.Bar.Row.subproject=\u5B50\u8A08\u756B +Styles.Bar.Row.summary=\u6458\u8981\u4EFB\u52D9 +Styles.Bar.Row.task=\u5206\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.timesheet=\u5DE5\u6642\u8868 +Styles.Bar.Row.totalSlack=\u6240\u6709\u5BEC\u9B06 +Styles.Calendar.nonWorking=\u986F\u793A\u884C\u4E8B\u66C6 +Styles.Gantt.showRows=\u986F\u793A\u884C +Styles.showLinks=\u986F\u793A\u9023\u7D50 +Summary.AND=\u4E14 +Summary.Average=\u5E73\u5747 +Summary.AverageFirstSublevel=\u5E73\u5747\u7B2C\u4E00\u500B\u6B21\u7B49\u7D1A +Summary.CountAll=\u5168\u90E8\u8A08\u7B97 +Summary.CountNonsummaries=\u8A08\u7B97\u98DB\u6458\u8981 +Summary.List=\u6E05\u55AE +Summary.Maximum=\u6700\u5927 +Summary.Minimum=\u6700\u5C0F +Summary.None=\u7121 +Summary.OR=\u6216 +Summary.Sum=\u52A0\u7E3D +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=\u7B46\u8A18: ' +TaskIndicatorsComponent.TheCalendar=\u884C\u4E8B\u66C6 ' +TaskIndicatorsComponent.TheIntersection=\u9019\u500B\u4EFB\u52D9\u8207\u8CC7\u6E90\u884C\u4E8B\u66C6\u7684\u4EA4\u96C6\u6C92\u6709\u5DE5\u4F5C\u6642\u9593.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=\u6B64\u4EFB\u52D9\u5DF2\u5B8C\u6210\u65BC +TaskIndicatorsComponent.ThisParentTaskHasResources=\u6B64\u7236\u4EFB\u52D9\u5177\u6709\u76F4\u63A5\u5206\u914D\u7D66\u5B83\u7684\u8CC7\u6E90: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=\u6B64\u5B50\u8A08\u756B\u7121\u6548: \u5728\u4E00\u500B\u5C08\u6848\u4E2D\u53EA\u80FD\u63D2\u5165\u4E00\u6B21. +TaskIndicatorsComponent.ThisTaskFinishesOn=\u6B64\u4EFB\u52D9\u5DF2\u7D50\u675F\u65BC +TaskIndicatorsComponent.ThisTaskHasA=\u6B64\u4EFB\u52D9\u6709\u4E00\u500B ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66 +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66\u4F60 +TaskIndicatorsComponent.ThisTasksRepresentsThe=\u6B64\u4EFB\u52D9\u4EE3\u8868 +TaskIndicatorsComponent.constraintOn=' \u9650\u5236\u65BC +TaskIndicatorsComponent.isAssignedToTheTask=' \u5206\u914D\u7D66\u6B64\u4EFB\u52D9.
+TaskIndicatorsComponent.opened=\u5DF2\u958B\u555F +TaskIndicatorsComponent.subproject=\ \u5B50\u8A08\u756B\: +TaskIndicatorsComponent.unopened=\u672A\u958B\u555F\u7684 +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ \u8D85\u904E\u81EA\u8EAB\u6B7B\u7DDA +TaskInformationDialog.Advanced=\u9032\u968E +TaskInformationDialog.ConstrainTask=\u9650\u5236 +TaskInformationDialog.Dates=\u65E5\u671F +TaskInformationDialog.General=\u4E00\u822C +TaskInformationDialog.Notes=\u7B46\u8A18 +TaskInformationDialog.Predecessors=\u4E0A\u4E00\u624B +TaskInformationDialog.Resources=\u8CC7\u6E90 +TaskInformationDialog.Successors=\u4E0B\u4E00\u624B +TaskInformationDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Text.Allocated=\u5206\u914D +Text.ApplicationTitle=ProjectLibre +Text.Assign=\u5206\u914D +Text.AssignResources=\u5206\u914D\u8CC7\u6E90 +Text.Baseline=\u57FA\u7DDA +Text.Cancel=\u53D6\u6D88 +Text.ClearBaseline=\u660E\u78BA\u57FA\u7DDA +Text.CostRateTables=\u6210\u672C\u7387\u8868 +Text.Cumulative=\u7D2F\u8A08 +Text.DetectingJavaVersion=\u5075\u6E2CJava\u7248\u672C... +Text.DisabledExternalTaskDependency=\u505C\u7528\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.EntireProject=\u6574\u500B\u5C08\u6848 +Text.ExternalTaskDependency=\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.Field=\u6B04\u4F4D +Text.Filter=\u7387\u93E1 +Text.From=\u8868\u55AE +Text.Group=\u7FA4\u7D44 +Text.HierarchicalRelation=\u7B49\u7D1A\u95DC\u4FC2 +Text.Histogram=\u9577\u689D\u5716 +Text.Lag=\u843D\u5F8C +Text.No=No +Text.None=\u7121 +Text.OtherProjects=\u5176\u4ED6\u5C08\u6848 +Text.Remove=\u79FB\u9664 +Text.Replace=\u53D6\u4EE3 +Text.ReplaceResource=\u53D6\u4EE3\u8CC7\u6E90 +Text.Save=\u5132\u5B58 +Text.SaveBaseline=\u5132\u5B58\u57FA\u7DDA +Text.Selected=\u5DF2\u9078\u64C7 +Text.SelectedTasks=\u5DF2\u9078\u64C7\u4EFB\u52D9 +Text.ShowSelectedOnTop=\u5728\u4E0A\u65B9\u986F\u793A\u5DF2\u9078\u64C7\u9805 +Text.ShowTeamResourcesOnly=\u50C5\u5718\u968A\u8CC7\u6E90 +Text.Sort=\u6392\u5E8F +Text.Task=\u4EFB\u52D9 +Text.TaskDependency=\u4EFB\u52D9\u4F9D\u5B58 +Text.Tasks=\u4EFB\u52D9 +Text.ThisProject=\u6B64\u5C08\u6848 +Text.To=\u7D66 +Text.Type=\u985E\u578B +Text.Unassigned=\u672A\u5206\u914D\u7684 +Text.Untitled=\u7121\u6A19\u984C +Text.UserDefinedInParentheses=(\u4F7F\u7528\u8005\u5B9A\u7FA9) +Text.With=\u8207 +Text.Yes=Yes +Text.budget=\u9810\u7B97 +Text.clickToRename=(\u9EDE\u64CA\u66F4\u540D) +Text.cost=\u6210\u672C +Text.createProject=\u5EFA\u7ACB\u5C08\u6848 +Text.forwardScheduled=\u524D\u63A8\u8A08\u756B\u8868 +Text.insertProject=\u63D2\u5165\u5C08\u6848 +Text.manageResources=\u5408\u4F75\u8CC7\u6E90\u6C60 +Text.modifiedInParentheses=(\u5DF2\u7DE8\u8F2F) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=\u4F3A\u670D\u5668\u5C08\u6848 +Text.openProject=\u958B\u555F\u5C08\u6848 +Text.predecessor=\u4E0A\u4E00\u624B +# {0} is the name of the thing to rename +Text.rename.mf=\u66F4\u540D {0} +Text.resetRoles=\u6B64"\u5168\u90E8\u8CC7\u6E90"\u9078\u9805\u5141\u8A31\u5728\u4F60\u516C\u53F8\u4E2D\u5B9A\u7FA9\u904E\u7684\u6240\u6709\u4F7F\u7528\u8005\u5B58\u53D6\u9019\u500B\u8A08\u756B, \u9664\u4E86"\u5925\u4F34/\u9867\u5BA2" \u4F7F\u7528\u8005.\n\u4F60\u5728\u6B64\u8CC7\u6E90\u8996\u5716\u5DF2\u8F38\u5165\u904E\u7684\u8A08\u756B\u7279\u5B9A\u9650\u5236\u5C07\u6703\u88AB\u91CD\u8A2D. +Text.reverseScheduled=\u53CD\u8F49\u8A08\u756B\u8868 +Text.rightClickSelectToSpreadsheet=\u53F3\u9EDE\u64CA\u4EE5\u9078\u53D6\u6216\u66F4\u540D\u8A66\u7B97\u8868 +Text.rightClickToInsertRemoveColumns=\u53F3\u9EDE\u64CA\u4EE5\u63D2\u5165/\u96B1\u85CF\u6B04\u4F4D +Text.successor=\u4E0B\u4E00\u624B +Text.taskHierarchy=\u4EFB\u52D9\u7B49\u7D1A: +Text.welcomeSubject=\u6B61\u8FCE\u4F7F\u7528 Projects On Demand +Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +Text.work=work +TimeChartPopupMenu.VerticalScrolling=\u5782\u76F4\u6372\u52D5 +TimesheetHelper.Entered=\u5DF2\u8F38\u5165 +TimesheetHelper.Integrated=\u5B8C\u6574 +TimesheetHelper.Mixed=\u6DF7 +TimesheetHelper.New=\u65B0 +TimesheetHelper.Rejected=\u88AB\u62D2\u7D55 +TimesheetHelper.Saved=\u5DF2\u5132\u5B58 +TimesheetHelper.Validated=\u5DF2\u9A57\u8B49 +Title.ProjityError=ProjectLibre \u932F\u8AA4 +Title.ProjityWarning=ProjectLibre \u8B66\u544A +TransformParameter.FinishDate=\u5B8C\u6210\u65E5\u671F +TransformParameter.StartDate=\u958B\u59CB\u65E5\u671F +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=\u6574\u500B\u5C08\u6848 +UpdateProjectDialogBox.For=\u7D66: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ \u91CD\u65B0\u5B89\u6392\u5269\u9918\u5DE5\u4F5C\u65BC +UpdateProjectDialogBox.SelectedTasks=\ \u5DF2\u9078\u64C7\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.SetZeroHundred=\u6839\u64DA\u65E5\u671F\u8ABF\u6574\u5B8C\u6210\u767E\u5206\u6BD4 +UpdateProjectDialogBox.SetZeroOrHundredOnly=\u50C5\u8ABF\u6574(\u8207\u5B8C\u6210)\u4EE5\u65E5\u671F\u7D50\u675F\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.UpdateProject=\u66F4\u65B0\u5C08\u6848 +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ \u901A\u904E\u66F4\u65B0\u5B8C\u6210\u5DE5\u4F5C +UpdateTaskDialog.Actual=\u5BE6\u969B\u7684 +UpdateTaskDialog.Current=\u7576\u524D\u7684 +UpdateTaskDialog.UpdateTask=\u66F4\u65B0\u4EFB\u52D9 +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=\u6B64\u65E5\u671F\u5DF2\u5B58\u5728\u65BC\u8868\u683C\u4E2D, \u8ACB\u9078\u64C7\u53E6\u4E00\u500B\u65E5\u671F. +ValueObjectForIntervalTable.ThisDateMustBeAfter=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0A\u4E00\u9805\u7684\u4E4B\u5F8C. +ValueObjectForIntervalTable.ThisDateMustBeBefore=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0B\u4E00\u9805\u7684\u4E4B\u524D. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=\u4F60\u4E0D\u53EF\u4EE5\u79FB\u9664\u8868\u683C\u4E2D\u7B2C\u4E00\u500B\u65E5\u671F. +WelcomeDialog.WhatWouldYouLikeToDo=\u4F60\u60F3\u8981\u505A\u4EC0\u9EBC: +WorkRangeException.EndMustBeAfterStart=\u7BC4\u570D\u7684\u622A\u6B62\u6642\u9593\u5FC5\u9808\u5927\u65BC\u81EA\u8EAB\u7684\u958B\u59CB +WorkRangeException.RangeIncomplete=\u5DE5\u4F5C\u7BC4\u570D\u5FC5\u9808\u540C\u6642\u6709\u958B\u59CB\u8207\u7D50\u675F +WorkRangeException.RangesCannotOverlap=\u4F60\u4E0D\u53EF\u6709\u91CD\u758A\u7684\u6642\u9593\u7BC4\u570D. +WorkRangeException.RangesMustBeOrdered=\u5DE5\u4F5C\u7BC4\u570D\u7684\u555F\u52D5\u5FC5\u9808\u5728\u524D\u4E00\u9805\u4E4B\u5F8C +tip.1.description= \u4F60\u53EF\u4EE5\u5728 http://www.projectlibre.org \u6210\u70BA ProjectLibre \u793E\u7FA4\u7684\u6210\u54E1. \u6211\u5011\u5C07\u63D0\u4F9B\u66F4\u65B0` \u8CC7\u8A0A\u548C\u793E\u7FA4\u6D3B\u52D5. +tip.1.name=\u52A0\u5165 ProjectLibre \u793E\u7FA4 +tip.2.description= \u4F60\u53EF\u4EE5\u5728 \u5E72\u7279\u8868, \u8A66\u7B97\u8868\u683C\u5B50, \u8A66\u7B97\u8868\u8868\u982D\u548C\u8A66\u7B97\u8868\u5DE6\u4E0A\u89D2\u9EDE\u53F3\u9375\u4F86\u7372\u5F97\u4FEE\u6539\u6AA2\u8996\u7684\u529F\u80FD\u9078\u55AE. +tip.2.name=\u4FEE\u6539\u6AA2\u8996 +tip.3.description=\u60A8\u53EF\u4EE5\u70BA ProjectLibre \u505A\u51FA\u8CA2\u737B! \u6211\u5011\u6B63\u5728\u5C0B\u627E\u7FFB\u8B6F\u4EBA\u54E1\u548C\u958B\u767C\u4EBA\u54E1,\u4EE5\u4F7F ProjectLibre \u8D8A\u4F86\u8D8A\u597D. \u8ACB\u806F\u7E6B partners@projectlibre.org +tip.3.name=\u7D66ProjectLibre\u8CA2\u737B +tip.4.description=\u9577\u689D\u5716\u8207\u5716\u8868\u90FD\u662F\u52D5\u614B\u4E14\u4F9D\u5B58\u65BC\u4F60\u9078\u64C7\u7684\u4EFB\u52D9. +tip.4.name=\u52D5\u614B\u5716\u8868 +tip.5.description=\u4F60\u53EF\u4EE5\u76F4\u63A5\u5728\u7DB2\u8DEF\u5716\u8868\u4E0A\u9032\u884C\u7DE8\u8F2F (PERT\u5716). +tip.5.name=\u7DE8\u8F2F\u7DB2\u8DEF\u584A +tip.6.description=\u60A8\u53EF\u4EE5\u7E2E\u6392\u548C\u53CD\u7E2E\u6392\u4EFB\u52D9\u4F86\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB. \u9019\u4E5F\u5C07\u8868\u73FE\u5728WBS\u8996\u5716\u4E2D. +tip.6.name=\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB +tip.7.description=\u4F60\u53EF\u4EE5\u7528\u6ED1\u9F20\u4F86\u9023\u7D50`\u5C55\u958B`\u5B8C\u6210`\u79FB\u52D5\u8207\u5206\u5272\u4EFB\u52D9. +tip.7.name=\u6ED1\u9F20\u64CD\u4F5C +tip.8.description=\u901A\u5E38\u4F60\u6703\u4FDD\u6301\u4EFB\u52D9\u9593\u9810\u8A2D\u7684 FS (\u7D50\u675F-\u958B\u59CB) \u9023\u7D50.\u6709\u6642\u4F60\u53EF\u80FD\u6703\u60F3\u8981 SS \u8207 FF, \u800C SF \u975E\u5E38\u7F55\u898B. \u4F60\u53EF\u4EE5\u9EDE\u64CA\u4F86\u4FEE\u6539\u9023\u7D50\u985E\u578B. \u4F60\u4E5F\u53EF\u4EE5\u8A2D\u5B9A\u5EF6\u5F8C. +tip.8.name=\u9023\u7D50\u985E\u578B +tip.9.description=\u70BA\u9805\u76EE\u4FDD\u5B58\u57FA\u7DDA\u59CB\u7D42\u662F\u4E00\u500B\u597D\u4E3B\u610F. ProjectLibre\u6700\u591A\u53EF\u4EE5\u4FDD\u5B58\u523011\u500B, \u4E14\u60A8\u53EF\u4EE5\u5728\u7518\u7279\u5716\u4E2D\u986F\u793A\u5B83\u5011\u4E26\u7528\u65BC\u6399\u503C\u5206\u6790. +tip.9.name=\u57FA\u7DDA +tip.10.description=\u4F60\u53EF\u4EE5\u5728\u5217\u5370\u9801\u9762\u4E2D\u8ABF\u6574\u5E72\u7279\u5716\u7E2E\u653E\u548C\u6B04\u4F4D\u7684\u5927\u5C0F\u4FEE\u6539\u6216\u96B1\u85CF. \u4E14\u4F7F\u7528\u9810\u89BD\u5217\u5370\u4F86\u8ABF\u6559. +tip.10.name=\u5217\u5370\u9801\u9762 +tip.11.description=\u4F60\u53EF\u4EE5\u5728ProjectLibre\u4E2D\u958B\u555F\u5FAE\u8EDF Project\u5EFA\u7ACB\u7684\u6A94\u6848, \u800C\u4F60\u4E5F\u53EF\u4EE5\u56DE\u5B58\u6210\u5FAE\u8EDF\u7684XML\u683C\u5F0F. +tip.11.name=\u5FAE\u8EDF Project \u76F8\u5BB9\u6027 +tip.12.description=ProjectLibre \u6709\u5F88\u591A\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF\u4F9B\u4F60\u4F7F\u7528. \u8A66\u8457\u53F3\u9375\u8A66\u7B97\u8868\u7684\u8868\u982D\u4F86\u78BA\u8A8D. +tip.12.name=\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF +tip.13.description=\u60A8\u53EF\u4EE5\u5C07\u884C\u4E8B\u66C6\u5206\u914D\u7D66\u4EFB\u52D9`\u8CC7\u6E90\u548C\u5C08\u6848, \u4EE5\u4FBF\u8003\u616E\u4F11\u5047. +tip.13.name=\u884C\u4E8B\u66C6 +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + + +Text.badJavaVersion=\u4F60\u7684Java\u7248\u672C\u70BA "{0}". \u8981\u904B\u884C ProjectLibre, \u4F60\u9700\u8981 Java 1.6\u4EE5\u4E0A. +Text.badJavaVendor=\u4F60\u7684Java\u63D0\u4F9B\u8005\u662F "{0}". \u8981\u904B\u884C ProjectLibre, \u9700\u8981\u57F7\u884C Sun Java. +Text.javaExecutable=\u81EA\u52D5\u5075\u6E2C\u7684\u4F7F\u7528\u4E2D Java Runtime \u70BA {0}.\n\u5982\u679C\u4F60\u6709\u65B0\u7248\u672C, \u4F60\u53EF\u4EE5\u900F\u904E\u7DE8\u8F2F\u81EA\u52D5\u5075\u6E2C\u6A94\u4E2D\u7684 "{1}" \u5C6C\u6027\u4F86\u624B\u52D5\u4FEE\u6539 "{2}".\n\u76F8\u5C0D\u7684\u4F60\u53EF\u4EE5\u79FB\u9664 "{2}" \u4EE5\u518D\u6B21\u81EA\u52D5\u5075\u6E2C. + + +Text.newVersion=\u6709\u65B0\u7248\u672C {0} \u7684 ProjectLibre \u53EF\u7528.\n\u4F60\u76EE\u524D\u7248\u672C\u70BA {1}.\n\u662F\u5426\u8981\u7ACB\u5373\u524D\u5F80\u4E0B\u8F09\u9801\u9762? + + +TipOfTheDay.dialogTitle=\u672C\u65E5\u63D0\u793A +TipOfTheDay.didYouKnowText=\u4F60\u77E5\u9053\u55CE... +TipOfTheDay.showOnStartupText=\u555F\u52D5\u6642\u986F\u793A\u63D0\u793A +TipOfTheDay.previousTipText=< \u4E0A\u4E00\u500B +TipOfTheDay.nextTipText=\u4E0B\u4E00\u500B > +TipOfTheDay.closeText=\u95DC\u9589 + + + + +Warn.lockMessage = \u6B64\u5C08\u6848\u4EE5\u88AB {0} \u9396\u5B9A. \u4F60\u8981\u552F\u8B80\u958B\u555F\u4F86\u6AA2\u8996\u55CE? + + +#added 14/2/08 +Filter.StartingWithinWeek=\u4E00\u9031\u5167\u555F\u52D5 +Filter.StartingWithinTwoWeeks=\u5169\u9031\u5167\u555F\u52D5 +Filter.LateStarting=\u665A\u9EDE\u555F\u52D5 + + +Warn.resourcePoolOpen=\u7576\u8CC7\u6E90\u6C60\u958B\u555F\u6642\u4E0D\u53EF\u4EE5\u958B\u555F\u5176\u4ED6\u5C08\u6848. +Warn.resourcePoolCannotOpen=\u7576\u5176\u4ED6\u5C08\u6848\u958B\u555F\u6642\u4F60\u4E0D\u80FD\u958B\u555F\u6B64\u8CC7\u6E90\u6C60. +Warn.fileNotFound=\u627E\u4E0D\u5230\u6A94\u6848 + +Text.donateMessage=ProjectLibre \u662F\u514D\u8CBB\u4F7F\u7528. \u5B83\u6C92\u6709\u4EFB\u4F55\u984D\u5916\u689D\u4EF6,\u4E14\u7701\u4E0B\u4F60\u50F9\u503C $999.99 \u7684\u5546\u7528\u5C08\u6848\u7BA1\u7406\u8EDF\u9AD4. \u6211\u5011\u6703\u5BA3\u5C0E\u4F7F\u7528\u8005\u900F\u904EPayPal\u81EA\u9858\u6027\u6350\u8D08. +Text.donateTitle=Please support ProjectLibre +Text.runsSinceMessage=\u4F60\u81EA\u5F9E{1,date,short}\u904B\u884C ProjectLibre \u5171 {0,number} \u6B21 +Text.tryPODTitle=\u5728Demand\u4E0A\u5617\u8A66Projects + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=\u4E0D\u518D\u986F\u793A\u6B64\u8A0A\u606F + +Warn.saveXML=\u7576\u8207\u5176\u4ED6\u61C9\u7528\u7A0B\u5F0F\u4EA4\u63DB\u6642\u4F60\u53EA\u80FD\u4F7F\u7528XML\u683C\u5F0F\u800C\u90E8\u5206\u8CC7\u6599\u53EF\u80FD\u907A\u5931.\n\u4F60\u60F3\u8981\u7E7C\u7E8C\u55CE? + +Text.rightClickForOptions=\u53F3\u9EDE\u64CA\u4F86\u9078\u9805 diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_zh2.properties b/projectlibre_core/src/com/projectlibre1/strings/client_zh2.properties new file mode 100644 index 0000000..7800861 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_zh2.properties @@ -0,0 +1,1248 @@ +#The contents of this file are subject to the Common Public Attribution License +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +#License Version 1.1 but Sections 14 and 15 have been added to cover use of +#software over a computer network and provide for limited attribution for the +#Original Developer. In addition, Exhibit A has been modified to be consistent +#with Exhibit B. +# +#Software distributed under the License is distributed on an "AS IS" basis, +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +#specific language governing rights and limitations under the License. The +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +#the provisions of the ProjectLibre License are applicable instead of those above. +#If you wish to allow use of your version of this file only under the terms of the +#ProjectLibre License and not to allow others to use your version of this file under +#the CPAL, indicate your decision by deleting the provisions above and replace them +#with the notice and other provisions required by the Project Libre License. If you +#do not delete the provisions above, a recipient may use your version of this file +#under either the CPAL or the ProjectLibre Licenses. +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +#in the Source Code files of the Original Code. You should use the text of this +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Modifications.] +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +#alternatives listed on http://www.projectlibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally +#aligned immediately above the ProjectLibre logo and left justified in alignment with the +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with +#alternatives listed on http://www.ProjectLibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. + + + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + + + + +AboutDialog.About=\u95DC\u65BC +AboutDialog.copyright=\u7248\u6B0A\u6240\u67092012 ProjectLibre Inc.\u4FDD\u7559\u6240\u6709\u6B0A\u5229 +AccessControlPolicy.PUBLIC=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +AccessControlPolicy.RESTRICTED=\u57FA\u65BC\u8CC7\u6E90\u6AA2\u8996\u4E2D\u7684\u5C08\u6848\u89D2\u8272 +AccrualType.End=\u7D50\u675F +AccrualType.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +AccrualType.Start=\u958B\u59CB +AssignmentDialog.ShowingAllResources=\u986F\u793A\u6240\u6709\u8CC7\u6E90 +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=\u50C5\u986F\u793A\u5C08\u6848\u5718\u968A\u7684\u8CC7\u6E90 +AssignmentDialog.none=(\u7121) +Bar.assignment=\u6307\u5B9A +Bar.baseline10=\u57FA\u7DDA10 +Bar.baseline1=\u57FA\u7DDA1 +Bar.baseline2=\u57FA\u7DDA2 +Bar.baseline3=\u57FA\u7DDA3 +Bar.baseline4=\u57FA\u7DDA4 +Bar.baseline5=\u57FA\u7DDA5 +Bar.baseline6=\u57FA\u7DDA6 +Bar.baseline7=\u57FA\u7DDA7 +Bar.baseline8=\u57FA\u7DDA8 +Bar.baseline9=\u57FA\u7DDA9 +Bar.baseline=\u57FA\u7DDA +Bar.critical=\u95DC\u9375 +Bar.deadline=\u671F\u9650 +Bar.external=\u5916\u90E8 +Bar.milestone=\u91CC\u7A0B\u7891 +Bar.subproject=\u5B50\u5C08\u6848 +Bar.summary=\u6458\u8981 +Bar.task=\u4EFB\u52D9 +Bar.timesheet=\u6642\u9593\u8868 +Bar.totalSlack=\u5BEC\u9B06\u7E3D\u6578 +BarPanel.Shape=\u5F62\u72C0: +BaselineDialog.Baseline=\u57FA\u7DDA: +BaselineDialog.For=\u70BA: +BookingType.Committed=\u5DF2\u63D0\u4EA4 +BookingType.Proposed=\u6BD4\u4F8B\u5206\u914D +ButtonText.Cancel=\u53D6\u6D88 +ButtonText.Close=\u95DC +ButtonText.IAccept=\u6211\u63A5\u53D7 +ButtonText.OK=OK +ButtonText.Open=\u6253\u958B +ButtonText.OpenCopy=\u552F\u8B80\u958B\u555F +Calendar.24Hours=24\u5C0F\u6642 +Calendar.EditedWorkingHours=\u7DE8\u8F2F\u5DE5\u4F5C\u6642\u9593 +CalendarDialogBox.Wednesday=\u661F\u671F\u4E09 +CalendarDialogBox.September=\u4E5D\u6708 +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ \u624B\u518A +Calendar.EditsToADayOfTheWeek=\u7DE8\u8F2F\u5230\u661F\u671F\u5E7E +CalendarDialogBox.HoursPerday=\u6BCF\u5929\u5C0F\u6642\u6578 : +CalculationDialogBox.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +Calendar.EditsToAnIndividualDay=\u7DE8\u8F2F\u5230\u4E00\u7368\u7ACB\u65E5\u671F +CalendarDialogBox.DurationSettings=\u671F\u7A0B\u8A2D\u5B9A +CalendarDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D\u503C +CalendarDialogBox.HoursPerWeek=\u6BCF\u9031\u5C0F\u6642\u6578 : +CalendarDialogBox.DaysPerMonth=\u6BCF\u6708\u5929\u6578 : +Calendar.ExceptionCircular=\u60A8\u4E0D\u80FD\u5C07\u6B64\u884C\u662F\u5229\u7528\u65BC\u57FA\u6E96\u884C\u4E8B\u66C6\uFF0C\u56E0\u70BA\u6703\u5C0E\u81F4\u6B64\u884C\u4E8B\u66C6\u81EA\u6211\u76F8\u4F9D\u3002 +CalendarDialogBox.Monday=\u661F\u671F\u4E00 +CalendarDialogBox.Tuesday=\u661F\u671F\u4E8C +CalendarDialogBox.Thursday=\u661F\u671F\u56DB +CalendarDialogBox.Friday=\u661F\u671F\u4E94 +CalendarDialogBox.Saturday=\u661F\u671F\u516D +CalendarDialogBox.Sunday=\u661F\u671F\u65E5 +CalendarDialogBox.January=\u4E00\u6708 +CalendarDialogBox.February=\u4E8C\u6708 +CalendarDialogBox.March=\u4E09\u6708 +CalendarDialogBox.April=\u56DB\u6708 +CalendarDialogBox.August=\u516B\u6708 +CalendarDialogBox.October=\u5341\u6708 +CalendarDialogBox.November=\u5341\u4E00\u6708 +CalendarDialogBox.December=\u5341\u4E8C\u6708 +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=\u958B\u59CB +Calendar.NightShift=\u591C\u73ED +Calendar.Nonworking=\u975E\u5DE5\u4F5C +Calendar.Standard=\u6A19\u6E96 +Calendar.Unmodified=\u672A\u7D93\u4FEE\u6539 +CalendarDialogBox.May=\u4E94\u6708 +CalendarDialogBox.June=6\u6708 +CalendarDialogBox.July=7\u6708 +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=\u4F7F\u7528\u8D77\u59CB\u5E74\u4EFD\u9032\u884CFV\u7DE8\u865F +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=\u9019\u4E9B\u8A2D\u5B9A\u50C5\u9069\u7528\u65BC\u671F\u7A0B\u6642\u9593 +CalculationDialogBox.AndMoveStartOfRemaining=\u4E26\u5C07\u5269\u9918\u5DE5\u4F5C\u7684\u958B\u59CB\u6642\u9593\u5F8C\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.AndMoveEndOfCompleted=\u4E26\u5C07\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u524D\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.MoveEndOfCompleteParts=\u5C07\u72C0\u614B\u65E5\u671F\u4E4B\u5F8C\u7684\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u79FB\u81F3\u72C0\u614B\u65E5\u671F +Calendar.Working=\u5DE5\u4F5C\u4E2D +Category.assignmentEntrySpreadsheet=\u4F5C\u696D\u8F38\u5165\u8A66\u7B97\u8868 +Category.assignmentSpreadsheet=\u4F5C\u696D\u8A66\u7B97\u8868 +Category.availabilitySpreadsheet=\u53EF\u7528\u6027\u8A66\u7B97\u8868 +Category.costRates=\u8CBB\u7528\u7387 +Category.dependencySpreadsheet=\u4F9D\u8CF4\u8A66\u7B97\u8868 +CalculationDialogBox.Automatic=\ \u81EA\u52D5 +CalculationDialogBox.Calculate=\u8A08\u7B97: +Category.distributionSpreadsheet=\u4F7F\u7528\u60C5\u51B5\u8A66\u7B97\u8868 +CalculationDialogBox.Calculation=\u8A08\u7B97\u65B9\u5F0F +CalculationDialogBox.EarnedValue=\u6399\u503C +Category.projectSpreadsheet=\u5C08\u6848\u8A66\u7B97\u8868 +Category.resourceAssignmentSpreadsheet=\u8CC7\u6E90\u5206\u914D\u8A66\u7B97\u8868 +Category.resourceSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.taskAssignmentSpreadsheet=\u4EFB\u52D9\u5206\u914D\u8A66\u7B97\u8868 +Category.taskSpreadsheet=\u4EFB\u52D9\u8A66\u7B97\u8868 +Category.taskSpreadsheet;projectSpreadsheet=\u4EFB\u52D9\u548C\u5C08\u6848\u8A66\u7B97\u8868 +CalculationDialogBox.End=\u7D50\u675F +Category.timesheetSpreadsheet=\u5DE5\u6642\u8A66\u7B97\u8868 +ChangeWorkingTimeDialogBox.BasedOn=\u57FA\u65BC +ChangeWorkingTimeDialogBox.ChangeWorkingTime=\u66F4\u6539\u5DE5\u4F5C\u65E5\u66C6 +ChangeWorkingTimeDialogBox.For=\u70BA: +ChangeWorkingTimeDialogBox.From=\u5F9E: +ChangeWorkingTimeDialogBox.ModificationMessage=\u5C0D\u6B64\u884C\u4E8B\u66C6\u7684\u4FEE\u6539\u6703\u5F71\u97FF\u5230\u6240\u6709\u4F7F\u7528\u5B83\u7684\u5C08\u6848. +ChangeWorkingTimeDialogBox.New=\u65B0... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=\u975E\u9810\u8A2D\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NonWorkingTime=\u975E\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NotEdiableMessage=\u53EA\u6709\u5728\u7DE8\u8F2F\u4E3B\u5C08\u6848\u6642\u6B64\u884C\u4E8B\u66C6\u624D\u53EF\u7DE8\u8F2F(\u8CC7\u6E90\u6C60). +ChangeWorkingTimeDialogBox.Options=\u9078\u9805... +ChangeWorkingTimeDialogBox.To=\ \u81F3\: +ChangeWorkingTimeDialogBox.UseDefault=\u4F7F\u7528\u9810\u8A2D\u503C +ChartLegend.ResourceFilter=\u8CC7\u6E90\u904E\u6FFE\u5668: +ClientRole.Inactive=- +ClientRole.ProjectManager=\u5C08\u6848\u7D93\u7406 +ClientRole.TeamMember=\u5718\u968A\u6210\u54E1 +ClientRole.TeamResource=\u5718\u968A\u8CC7\u6E90 +ColumnDialog.InsertColumn=\u63D2\u5165\u6B04 +Command.UpateProject=\u66F4\u65B0\u5C08\u6848 +Command.UpdateTasks=\u66F4\u65B0\u4EFB\u52D9 +ConstraintType.ALAP=\u8D8A\u665A\u8D8A\u597D +ConstraintType.ASAP=\u8D8A\u5FEB\u8D8A\u597D +ConstraintType.FNET=\u5118\u65E9\u5B8C\u6210 +ConstraintType.FNLT=\u5B8C\u6210\u4E0D\u665A\u65BC +ConstraintType.HAMM=Hammock +ConstraintType.MFO=\u5FC5\u9808\u5B8C\u6210 +ConstraintType.MSO=\u5FC5\u9808\u958B\u59CB +ConstraintType.SNET=\u958B\u59CB\u4E0D\u65E9\u65BC +ConstraintType.SNLT=\u958B\u59CB\u4E0D\u665A\u65BC +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=\u8A55\u50F9 A +CostRateIndex.B=\u8A55\u50F9 B +CostRateIndex.C=\u8A55\u50F9 C +CostRateIndex.D=\u8A55\u50F9D +CostRateIndex.E=\u8A55\u50F9 E +Date.NoEnd=\u7136\u5F8C +# NA = Not Applicable +Date.NoStart=NA +Date.Quarter1=Q +Date.Half1=H +Date.Quarter2=Qtr +Date.Half2=Half +DefaultFrameManager.Project=\u5C08\u6848 +DelegateTaskDialog.DelegateTask=\u59D4\u6D3E\u4EFB\u52D9 +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=\u5B8C\u6210\u5230\u5B8C\u6210(F-F) +DependencyType.longFS=\u5B8C\u6210\u5230\u958B\u59CB(F-S) +DependencyType.longSF=\u958B\u59CB\u5230\u5B8C\u6210(S-F) +DependencyType.longSS=\u958B\u59CB\u5230\u958B\u59CB(S-S) +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% \u5B8C\u6210 +EarnedValueMethodType.PhysicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u7387 +ExpenseType.CAPITALIZE=\u5927\u5BEB +ExpenseType.DIRECT=\u76F4\u63A5 +ExpenseType.EXPENSE=\u8CBB\u7528 +ExpenseType.INDIRECT=\u9593\u63A5 +ExpenseType.NONE=\u7121 +ExpenseType.OVERHEAD=\u7BA1\u7406\u8CBB +Field.accessControlPolicy=\u5C08\u6848\u5718\u968A +Field.accrueAt=\u61C9\u8A08 +Field.actualCost=\u5BE6\u969B\u8CBB\u7528 +Field.actualDuration=\u5BE6\u969B\u671F\u7A0B +Field.actualFinish=\u5BE6\u969B\u5B8C\u6210 +Field.actualFixedCost=\u5BE6\u969B\u56FA\u5B9A\u6210\u672C +Field.actualOvertimeCost=\u5BE6\u969B\u52A0\u73ED\u8CBB +Field.actualOvertimeWork=\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualOvertimeWorkProtected=\u53D7\u4FDD\u8B77\u7684\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualStart=\u5BE6\u969B\u958B\u59CB +Field.actualWork=\u5BE6\u969B\u5DE5\u4F5C +Field.actualWorkProtected=\u53D7\u4FDD\u62A4\u7684\u5B9E\u9645\u5DE5\u4F5C +Field.acwp=ACWP +Field.assignedRate=\u5206\u914D\u7387 +Field.assignment=\u5206\u914D +Field.assignmentEntryAssigned=\u5DF2\u5206\u914D +Field.assignmentEntryName=\u59D3\u540D +Field.assignmentEntryRate=\u55AE\u4F4D +Field.assignmentProjectName=\u5C08\u6848 +Field.assignmentResourceId=\u8CC7\u6E90 ID +Field.assignmentResourceName=\u8CC7\u6E90 +Field.assignmentTaskId=\u4EFB\u52D9ID +Field.assignmentTaskName=\u4EFB\u52D9 +Field.assignmentUnits=\u5206\u914D\u55AE\u4F4D +Field.availableFrom=\u53EF\u5F9E +Field.availableTo=\u53EF\u7528\u65BC +Field.bac=BAC +Field.baseCalendar=\u57FA\u6E96\u884C\u4E8B\u66C6 +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u57FA\u6E96# \u6210\u672C +Field.baseline#Duration=\u57FA\u6E96# \u671F\u7A0B +Field.baseline#Finish=\u57FA\u6E96# \u5B8C\u6210 +Field.baseline#Start=\u57FA\u6E96# \u958B\u59CB +Field.baseline#Work=\u57FA\u6E96# \u5DE5\u4F5C +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=\u6548\u76CA +Field.bookingType=\u9810\u8A02\u985E\u578B +Field.budgetStatusIndicator=\u9810\u7B97\u72C0\u6CC1 +Field.cachedEnd=\u7D50\u675F +Field.cachedStart=\u958B\u59CB +Field.canLevel=\u53EF\u64AB\u5E73 +Field.code=\u7DE8\u78BC +Field.complete=\u5B8C\u6210 +Field.completeThrough=\u5B8C\u6210\u7D93\u904E +Field.completedThrough=\u5DF2\u5B8C\u6210 +Field.confirmed=\u5DF2\u78BA\u8A8D +Field.constraintDate=\u7D04\u675F\u65E5\u671F +Field.constraintType=\u7D04\u675F\u985E\u578B +Field.contact=\u806F\u7E6B +Field.cost=\u6210\u672C +Field.costPerUse=\u6BCF\u6B21\u4F7F\u7528\u6210\u672C +Field.costRateTable=\u6210\u672C\u7387\u8868 +Field.costVariance=\u6210\u672C\u5DEE\u7570 +Field.cpi=CPI +Field.created=\u5DF2\u5EFA\u7ACB +Field.creationDate=\u5275\u7ACB\u65E5\u671F +Field.critical=\u95DC\u9375 +Field.csi=CSI +Field.cumulativeCost=\u7D2F\u8A08\u6210\u672C +Field.cumulativePercentComplete=\u7D2F\u8A08\u5B8C\u6210\u767E\u5206\u6BD4 +FieldDialog.ResourceInformation=\u8CC7\u6E90\u4FE1\u606F +Field.cumulativeWork=\u7D2F\u8A08\u5DE5\u6642 +Field.currentDate=\u7576\u524D\u65E5\u671F +Field.customCost#=\u6210\u672C# +Field.customDate#=\u65E5\u671F# +Field.customDuration#=\u671F\u7A0B# +Field.customFinish#=\u5B8C\u6210# +Field.customFlag#=\u65D7\u6A19# +Field.customNumber#=\u865F\u78BC# +Field.customOutlineCode#=\u5927\u7DB1\u4EE3\u78BC# +Field.customStart#=\u958B\u59CB# +Field.customText#=\u6587\u5B57# +Field.cv=\u6210\u672C\u5DEE\u7570(CV) +Field.cvPercent=\u6210\u672C\u5DEE\u7570(CV)\u7387 +Field.deadline=\u6700\u5F8C\u671F\u9650 +Field.debugDependencyOrder=\u76F8\u4F9D\u9806\u5E8F +Field.delay=\u5206\u914D\u5EF6\u9072 +Field.delegatedTo=\u59D4\u6D3E\u7D66 +Field.dependencyDate=\u5F9E\u5C6C\u65E5\u671F +Field.dependencyStart=\u958B\u59CB\u76F8\u4F9D +Field.dependencyType=\u985E\u578B +Field.dirty=\u6C59\u67D3 +Field.duration=\u671F\u7A0B +Field.durationVariance=\u671F\u7A0B\u8B8A\u7570 +Field.eac=EAC +Field.earliestStartingTask=\u6700\u65E9\u958B\u59CB\u7684\u4EFB\u52D9 +Field.earlyFinish=\u63D0\u524D\u5B8C\u6210 +Field.earlyStart=\u63D0\u65E9\u958B\u59CB +Field.earnedValueMethod=\u6399\u503C\u6CD5 +Field.effectiveDate=\u6709\u6548\u65E5\u671F +Field.effortDriven=\u5DE5\u4F5C\u9A45\u52D5 +Field.elapsedDuration=\u6B77\u6642\u671F\u7A0B +Field.emailAddress=\u96FB\u5B50\u90F5\u4EF6\u5730\u5740 +Field.estimated=\u4F30\u8A08\u503C +Field.expectedDuration=\u9810\u671F\u671F\u7A0B +Field.expectedFinish=\u9810\u671F\u5B8C\u6210 +Field.expectedStart=\u9810\u8A08\u958B\u59CB\u6642\u9593 +Field.expenseType=\u8CBB\u7528\u985E\u578B +Field.externalId=\u5916\u90E8ID +Field.externalTask=\u5916\u90E8\u4EFB\u52D9 +Field.finish=\u5B8C\u6210 +Field.finishDate=\u5B8C\u6210 +Field.finishOffset=\u7D42\u9EDE\u504F\u79FB +Field.finishSlack=\u5B8C\u6210\u9B06\u5F1B +Field.finishVariance=\u5B8C\u6210\u8B8A\u7570 +Field.fixedCost=\u56FA\u5B9A\u6210\u672C +Field.fixedCostAccrual=\u56FA\u5B9A\u6210\u672C\u61C9\u8A08 +Field.forward=\u524D\u63A8\u6392\u7A0B +Field.freeSlack=\u81EA\u7531\u9B06\u5F1B +Field.ganttSnapshot=\u7518\u7279 +Field.generic=\u901A\u7528 +Field.group=\u7D44 +Field.groupBySummary=\u6309\u6458\u8981\u5206\u7D44 +Field.hideBar=\u96B1\u85CF\u6B04 +Field.hyperlink=\u8D85\u9023\u7D50 +Field.hyperlinkAddress=\u8D85\u93C8\u63A5\u7DB2\u5740 +Field.hyperlinkHref=Hyperlink Href +Field.hyperlinkSubAddress=\u8D85\u93C8\u63A5\u5B50\u7DB2\u5740 +# ID = \u8B58\u5225\u78BC +Field.id=ID +Field.ignoreResourceCalendar=\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6 +Field.inactive=\u4E0D\u6D3B\u8E8D +Field.indicators=\u6307\u6A19 +Field.initials=\u7E2E\u5BEB +Field.justModified=\u525B\u525B\u4FEE\u6539 +Field.lag=\u843D\u5F8C +Field.lastModificationDate=\u6700\u5F8C\u4FEE\u6539 +Field.lastTimesheetUpdate=\u6700\u8FD1\u7684\u6642\u9593\u8868\u66F4\u65B0 +Field.lateFinish=\u903E\u671F\u672A\u5B8C\u6210 +Field.lateStart=\u9072\u5230 +Field.latestFinishingTask=\u6700\u65B0\u5B8C\u6210\u7684\u4EFB\u52D9 +Field.levelAssignments=\u64AB\u5E73\u5206\u6D3E +Field.levelingCanSplit=\u64AB\u5E73\u53EF\u5206\u5272 +Field.levelingDelay=\u64AB\u5E73\u5EF6\u9072 +Field.linkedFields=\u93C8\u63A5\u5B57\u6BB5 +Field.manager=\u7D93\u7406 +Field.markTaskAsMilestone=\u4EE5\u91CC\u7A0B\u7891\u986F\u793A\u4EFB\u52D9 +Field.marked=\u5DF2\u6A19\u8A18 +Field.materialLabel=\u6750\u6599\u6A19\u7C64 +Field.maximumUnits=\u6700\u5927\u55AE\u4F4D +Field.milestone=\u91CC\u7A0B\u7891 +Field.name=\u59D3\u540D +Field.negativeSlack=\u8CA0\u9B06\u5F1B +Field.netPresentValue=\u6DE8\u73FE\u503C +Field.networkSnapshot=\u7DB2\u7D61 +Field.notes=\u7B46\u8A18 +Field.objects=\u5C0D\u8C61 +Field.optimisticDuration=\u6A02\u89C0\u6301\u7E8C\u671F\u7A0B +Field.optimisticFinish=\u6A02\u89C0\u5B8C\u6210 +Field.optimisticStart=\u6A02\u89C0\u958B\u59CB +Field.outlineLevel=\u5927\u7DB1\u7D1A\u5225 +Field.outlineNumber=\u5927\u7DB1\u7DE8\u865F +Field.overallocated=\u904E\u5EA6\u5206\u914D +Field.overallocation=\u904E\u5EA6\u5206\u914D +Field.overtimeCost=\u52A0\u73ED\u8CBB +Field.overtimeRate=\u52A0\u73ED\u7387 +Field.overtimeWork=\u52A0\u73ED +Field.parentId#=\u7236 Id# +Field.partner=\u4F19\u4F34 +Field.peak=\u5CF0\u503C +Field.peakUnits=\u5CF0\u503C\u55AE\u4F4D +Field.pendingTimesheetUpdate=\u9700\u8981\u66F4\u65B0\u6642\u9593\u8868 +Field.percentAllocation=\u767E\u5206\u6BD4\u5206\u914D +Field.percentComplete=\u5B8C\u6210\u767E\u5206\u6BD4 +Field.percentWorkComplete=\u5DE5\u4F5C\u5B8C\u6210\u767E\u5206\u6BD4 +Field.pessimisticDuration=\u60B2\u89C0\u6301\u7E8C\u671F\u7A0B +Field.pessimisticFinish=\u60B2\u89C0\u5B8C\u6210 +Field.pessimisticStart=\u60B2\u89C0\u958B\u59CB +Field.phonetics=\u8A9E\u97F3\u5B78 +Field.physicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u767E\u5206\u6BD4 +Field.predecessorId=\u524D\u4EFB ID +Field.predecessorName=\u524D\u4EFB\u59D3\u540D +Field.predecessors=\u524D\u8F29 +Field.preleveledFinish=\u5168\u5C08\u6848\u5B8C\u6210 +Field.preleveledStart=\u5168\u5C08\u6848\u958B\u59CB +Field.priority=\u512A\u5148\u6B0A +Field.project=\u5C08\u6848 +Field.projectDivision=\u90E8\u9580 +Field.projectGroup=\u7D44 +Field.projectId=\u5C08\u6848 ID +Field.projectStatus=\u5C08\u6848\u72C0\u614B +Field.projectType=\u5C08\u6848\u985E\u578B +Field.rate=\u55AE\u4F4D +Field.rbsCode=RBS +Field.readOnlyDuration=\u6301\u7E8C\u671F\u7A0B +Field.recurring=\u91CD\u8907\u767C\u751F +Field.referringSubprojectTaskDependencyDate=\u5B50\u5C08\u6848\u4F9D\u8CF4\u6027\u65E5\u671F +Field.regularWork=\u6B63\u5E38\u5DE5\u4F5C +Field.remainingAvailability=\u5269\u9918\u53EF\u7528\u7387 +Field.remainingCost=\u5269\u9918\u6210\u672C +Field.remainingDuration=\u5269\u9918\u671F\u7A0B +Field.remainingOvertimeCost=\u5269\u9918\u52A0\u73ED\u8CBB +Field.remainingOvertimeWork=\u5269\u9918\u7684\u52A0\u73ED\u5DE5\u4F5C +FieldDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Field.remainingWork=\u5269\u9918\u5DE5\u4F5C +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +Field.resourceGroup=\u8CC7\u6E90\u7D44 +Field.resourceId=\u8CC7\u6E90 ID +Field.resourceInitials=\u8CC7\u6E90\u521D\u4F7F\u7DE8\u78BC +Field.resourceNames=\u8CC7\u6E90\u540D\u7A31 +Field.resourcePhonetics=\u8CC7\u6E90\u8A9E\u97F3 +Field.resourcePool=\u8CC7\u6E90\u6C60 +Field.resourceType=\u985E\u578B +Field.responsePending=\u5F85\u8655\u7406 +Field.resume=\u6062\u5FA9 +Field.risk=\u98A8\u96AA +Field.rollup=\u6372\u8D77 +Field.scheduleStatusIndicator=\u8A08\u756B\u8868\u72C0\u614B +Field.schedulingMethod=\u8ABF\u5EA6\u65B9\u6CD5 +Field.showProjectResourcesOnly=\u50C5\u986F\u793A\u8F49\u6848\u8A08\u5283\u8CC7\u6E90 +Field.spi=SPI +Field.standardRate=\u6A19\u6E96\u8CBB\u7387 +Field.start=\u958B\u59CB +Field.startDate=\u958B\u59CB +Field.startOffset=\u958B\u59CB\u504F\u79FB +Field.startSlack=\u958B\u59CB\u9B06\u5F1B +Field.startVariance=\u958B\u59CB\u5DEE\u7570 +Field.status=\u72C0\u614B +Field.statusDate=\u72C0\u614B\u65E5\u671F +Field.statusIndicator=\u7E3D\u9AD4\u72C0\u6CC1 +Field.statusTaskIndicator=\u72C0\u614B\u4EFB\u52D9\u6307\u793A\u5668 +Field.stop=\u505C\u6B62 +Field.subprojectFile=\u5B50\u5C08\u6848\u6A94\u6848 +Field.subprojectOf=\u5B50\u5C08\u6848 +Field.subprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.successorId=\u63A5\u73ED\u4EBA ID +Field.successorName=\u63A5\u73ED\u4EBA +Field.successors=\u5F8C\u7E7C\u8005 +Field.summary=\u6458\u8981 +Field.summaryProgress=\u6458\u8981\u9032\u5EA6 +Field.suprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.sv=SV +Field.svPercent=SV\u767E\u5206\u6BD4 +Field.taskCalendar=\u4EFB\u52D9\u884C\u4E8B\u66C6 +Field.taskId=\u4EFB\u52D9 ID +Field.taskName=\u4EFB\u52D9\u540D\u7A31 +Field.taskOutlineNumber=\u4EFB\u52D9\u5927\u7DB1\u7DE8\u865F +Field.taskSummaryName=\u4EFB\u52D9\u6458\u8981\u540D\u7A31 +Field.taskType=\u985E\u578B +Field.tcpi=TCPI +Field.teamStatusPending=\u5718\u968A\u72C0\u614B\u5F85\u5B9A +Field.textAbove=\u4E0A\u65B9\u6587\u5B57 +Field.timesheetFinish=\u6642\u9593\u8868\u5B8C\u6210 +Field.timesheetStart=\u6642\u9593\u8868\u958B\u59CB +FieldDialog.document=\u6587\u4EF6: +Field.timesheetStatus=\u6642\u9593\u8868\u72C0\u614B +Field.timesheetStatusName=\u72C0\u614B +Field.totalSlack=\u6020\u5DE5\u7E3D\u6578 +Field.totalSlackEnd=\u6020\u5DE5\u7E3D\u6578\u7D50\u675F +Field.totalSlackStart=\u6020\u5DE5\u7E3D\u6578\u958B\u59CB +Field.uniqueId=\u552F\u4E00\u8EAB\u4EFD +Field.uniqueIdPredecessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u524D\u8EAB +Field.uniqueIdSuccessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u5F8C\u7E7C\u8005 +Field.unitAvailability=\u55AE\u4F4D\u53EF\u7528\u6027 +Field.updateNeeded=\u9700\u8981\u66F4\u65B0 +Field.userAccount=\u4F7F\u7528\u8005\u5E33\u865F +Field.userRole=\u5C08\u6848\u89D2\u8272 +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=\u662F\u5426\u7236WBS +Field.wbsParentName=\u7236WBS +Field.wbsPredecessors=WBS \u524D\u8EAB +Field.wbsSuccessors=WBS\u5F8C\u7E7C\u8005 +Field.work=\u5DE5\u4F5C +Field.workAvailability=\u5DE5\u4F5C\u53EF\u7528\u6027 +Field.workContour=\u5DE5\u4F5C\u8F2A\u5ED3 +Field.workVariance=\u5DE5\u4F5C\u5DEE\u7570 +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Projects +File.projity=ProjectLibre +Filter.CompletedTasks=\u5DF2\u5B8C\u6210\u4EFB\u52D9 +Filter.CostOverbudgetTasks=\u9810\u7B97\u8D85\u652F\u4EFB\u52D9 +Filter.CriticalTasks=\u95DC\u9375\u4EFB\u52D9 +Filter.DateRange=\u65E5\u671F\u7BC4\u570D +Filter.Flag1=\u65D7\u6A19 1 +Filter.Flag2=\u65D7\u6A19 2 +Filter.Flag3=\u65D7\u6A19 3 +Filter.InProgressAssignments=\u9032\u884C\u4E2D\u7684\u4F5C\u696D +Filter.InProgressTasks=\u9032\u884C\u4E2D\u7684\u4EFB\u52D9 +Filter.IncompleteTasks=\u672A\u5B8C\u6210\u7684\u4EFB\u52D9 +Filter.LateOrOverbudgetTasks=\u5EF6\u9072/\u8D85\u9810\u7B97\u4EFB\u52D9 +Filter.Milestones=\u5927\u4E8B\u8A18 +Filter.MyDelegatedTasks=\u6211\u7684\u59D4\u6D3E\u4EFB\u52D9 +Filter.MyTasks=\u6211\u7684\u4EFB\u52D9 +Filter.None=\u7121\u904E\u6FFE\u5668 +Filter.NormalTasks=\u6B63\u5E38\u4EFB\u52D9 +Filter.ResourcesMaterial=\u7269\u8CEA\u8CC7\u6E90 +Filter.ResourcesMe=\u6211 +Filter.ResourcesWork=\u5DE5\u4F5C\u8CC7\u6E90 +Filter.SlippedTasks=\u5DF2\u6ED1\u52D5\u4EFB\u52D9 +Filter.SummaryTasks=\u6458\u8981\u4EFB\u52D9 +Filter.TasksWithEstimatedDurations=\u4F30\u8A08\u671F\u7A0B\u7684\u4EFB\u52D9... +Filter.UnstartedAssignments=\u672A\u958B\u59CB\u7684\u5206\u914D +FixedDuration.FixedDuration=\u56FA\u5B9A\u671F\u7A0B +Filter.UnstartedTasks=\u672A\u958B\u59CB\u7684\u4EFB\u52D9 +Filter.WorkComplete=\u5DE5\u4F5C\u5B8C\u6210 +FixedWork.FixedWork=\u56FA\u5B9A\u5DE5\u4F5C +FixedUnits.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +FixedDuration.TheDurationMessage=\u6B64\u5DE5\u4F5C\u4E2D\u7684\u56FA\u5B9A\u671F\u7A0B\u4EFB\u52D9\u5FC5\u9808\u66F4\u6539\u5176\u671F\u7A0B +FooterRenderer.page=\ - \u9801 +Gantt.Popup.annotationStylesMenu=\u8A3B\u91CB\u6A23\u5F0F +Gantt.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +Gantt.Popup.showAssignments=\u986F\u793A\u4F5C\u696D +Gantt.Popup.showCalendar=\u986F\u793A\u884C\u4E8B\u66C6 +Gantt.Popup.showRows=\u986F\u793A\u884C +Gantt.Popup.splitMode=\u5206\u5272 +Gantt.tooltip.Assignment=\u4F5C\u696D +Gantt.tooltip.Resource=\u8CC7\u6E90 +Gantt.tooltip.Task=\u4EFB\u52D9 +Gantt.tooltip.from=\u4F86\u81EA +Gantt.tooltip.lag=\u6EEF\u5F8C +Gantt.tooltip.link=\u93C8\u63A5 +Gantt.tooltip.to=\u81F3 +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u5728\u53E6\u4E00\u500B\u5408\u4F75\u5C08\u6848\u4E2D\u4F5C\u70BA\u5B50\u5C08\u6848\u958B\u555F +GraphicManager.SelectedProjectAlreadySubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u662F\u6B64\u5408\u4F75\u5C08\u6848\u4E2D\u7684\u5B50\u9805\u76EE +Grouper.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Grouper.CompleteIncomplete=\u5B8C\u6210/\u672A\u5B8C\u6210 +Grouper.Critical=\u95DC\u9375 +Grouper.CriticalThenDuration=\u95DC\u9375\u7136\u5F8C\u671F\u7A0B +Grouper.Delegated=\u59D4\u8A17\u7D66 +Grouper.Duration=\u671F\u7A0B +Grouper.None=\u7121\u7FA4\u9AD4 +Grouper.ResourceGroup=\u7D44 +Grouper.ResourceType=\u985E\u578B +HelpDialog.About=\u8AAA\u660E +HelpDialog.GoToOnlineHelp=\u8F49\u5230\u7DDA\u4E0A\u8AAA\u660E +HelpDialog.ShowLicense=\u986F\u793A\u4F7F\u7528\u6388\u6B0A +HelpDialog.ShowTipsOfTheDay=\u986F\u793A\u7576\u5929\u7684\u63D0\u793A +HelpDialog.WatchHowToVideos=\u89C0\u770B\u5165\u9580\u5F71\u7247 +HyperLinkToolTip.SeeOnlineDemo=">\u89C0\u770B\u7DDA\u4E0A\u5C55\u793A +HyperLinkToolTip.SeeOnlineHelp=">\u89C0\u770B\u7DDA\u4E0A\u8AAA\u660E +InformationDialog.AssignResources=\u5206\u914D\u8CC7\u6E90 +InformationDialog.ChangeWorkingTime=\u8B8A\u66F4\u5DE5\u4F5C\u6642\u9593 +License.Inactive =\u7121\u6548 +License.LiteUser=\u7CBE\u7C21\u7248\u4F7F\u7528\u8005 +License.PowerUser=\u8D85\u7D1A\u4F7F\u7528\u8005 +LicenseDialog.CouldNotLoadLater=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 +LicenseDialog.CouldNotLoadExiting=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002\u7A0B\u5F0F\u5C07\u95DC\u9589\u3002 +LicenseDialog.Email=\u8ACB\u8A3B\u518A\u60A8\u7684ProjectLibre\u526F\u672C\uFF0C\u4EE5\u4FBF\u96A8\u6642\u4E86\u89E3\u6709\u95DC\u8A72\u7522\u54C1\u7684\u6700\u65B0\u72C0\u6CC1\u548C\u66F4\u65B0\u3002 +LicenseDialog.EmailLabel=\u96FB\u5B50\u90F5\u4EF6\u4FE1\u7BB1 +LicenseDialog.License=\u6388\u6B0A\u66F8 +LicenseDialog.ThirdParty=\u7B2C\u4E09\u65B9 +LicenseOption.Administrator=\u7BA1\u7406\u54E1 +LicenseOption.External=\u5408\u4F5C\u5925\u4F34/\u5BA2\u6236 +LicenseOption.Inactive=- +LocalFileImporter.Exporting=\u51FA\u53E3... +LocalFileImporter.Importing=\u9032\u53E3... +LoginDialog.Login=\u767B\u9304\uFF1A +LoginDialog.Password=\u5BC6\u78BC\uFF1A +LoginDialog.RememberMe=\u81EA\u52D5\u767B\u9304 +LoginDialog.UseOfficeLook=\u4F7F\u7528 Office\u6A23\u5F0F +LookupDialog.EnterPartOfTheName=\u8F38\u5165\u60A8\u8981\u5C0B\u627E\u7684\u540D\u7A31\u7684\u4E00\u90E8\u5206 +LookupDialog.Find=\u5C0B\u627E +LookupDialog.LookupAnObject=\u5C0B\u627E\u5C0D\u8C61 +LookupDialog.NoMatchesFound=\u627E\u4E0D\u5230\u5339\u914D\u9805\u76EE +LookupDialog.Results=\u7D50\u679C +LookupDialog.Type=\u985E\u578B\uFF1A +LookupDialog.UnableToContactServer=\u7121\u6CD5\u9023\u63A5\u670D\u52D9\u5668\u3002 +LookupField.LookupAValue=\u5C0B\u627E\u503C +Message.ImportError=\u7121\u6CD5\u8B80\u53D6\u6587\u4EF6 +Message.allowDeleteActuals=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u6709\u5BE6\u969B\u8CC7\u6599\uFF0C\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u55CE? +Message.allowDistrbutedStartBeforeProjectStart=\u8A72\u503C\u5C07\u5C0E\u81F4\u4EFB\u52D9\u5728\u5C08\u6848\u555F\u52D5\u4E4B\u524D\u555F\u52D5\u3002\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowDistrbutedStartBeforeTaskStart=\u8A72\u503C\u65E9\u65BC\u5C08\u6848\u958B\u59CB\u671F\u7A0B\uFF0C\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowTaskStartBeforeProjectStart=\u8A72\u4EFB\u52D9\u662F\u5426\u53EF\u5728\u8F49\u6848\u958B\u59CB\u524D\u5C31\u958B\u59CB\uFF1F +Message.alreadyParentChildHierarchy=\u5DF2\u5B58\u5728\u7236/\u5B50\u95DC\u4FC2Message.badTimeFormat=\u6642\u9593\u683C\u5F0F\u932F\u8AA4 +Message.badTimeIntervals=\u4E0D\u826F\u6642\u9593\u9593\u9694 +Message.cannotEnterUnits=\u60A8\u4E0D\u80FD\u5728\u6B64\u6B04\u4F4D\u4E2D\u8F38\u5165\u55AE\u4F4D +Message.cannotLinkToSummary=\u60A8\u4E0D\u80FD\u5C07\u4E00\u500B\u6458\u8981\u4EFB\u52D9\u548C\u5B83\u7684\u4E00\u500B\u5B50\u4EFB\u52D9\u9023\u63A5\u8D77\u4F86\u3002\u5982\u679C\u60A8\u60F3\u5C07\u5B83\u5011\u9023\u63A5\u8D77\u4F86\uFF0C\u8ACB\u5C07\u5B50\u4EFB\u52D9\u79FB\u51FA\uFF0C\u4F7F\u5176\u4E0D\u518D\u5728\u6458\u8981\u4EFB\u52D9\u4E4B\u4E0B\uFF0C\u5F9E\u800C\u522A\u9664\u5C64\u6B21\u7D50\u69CB\u3002 +Message.cantEmptySpreadsheet=\u8A66\u7B97\u8868\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u6B04\u4F4D\u3002 +Message.cantLinkToClosedSubproject=\u5B50\u5C08\u6848\u5FC5\u9808\u662F\u958B\u555F\u548C\u53EF\u5BEB\u5165\uFF0C\u4F7F\u53EF\u6210\u70BA\u93C8\u63A5\u7684\u76EE\u6A19\uFF0C\u56E0\u70BA\u5B83\u6703\u5F71\u97FF\u5B50\u5C08\u6848\u7684\u958B\u59CB\u65E5\u671F\u3002 +Message.cantLinkToExternal=\u60A8\u7121\u6CD5\u93C8\u63A5\u5230\u5916\u90E8\u4EFB\u52D9\u3002 +Message.cantLinkToSelf=\u60A8\u4E0D\u80FD\u5C07\u4EFB\u52D9\u93C8\u63A5\u5230\u81EA\u9AD4\u3002 +Message.circularDependency=\u8A72\u93C8\u63A5\u7121\u6548\uFF0C\u56E0\u70BA\u5B83\u6703\u8207\u5176\u4ED6\u4EFB\u52D9\u5EFA\u7ACB\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 +Message.confirmDeleteRows=\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u9019\u4E9B\u884C\u55CE\uFF1F +# {0} is the name of the predecessor task, {1} is the name of the successor task +Message.crossProjectCircularDependency.mf=\u5F9E{0}\u5230{1}\u7684\u8DE8\u5C08\u6848\u93C8\u63A5\u5C07\u5C0E\u81F4\u8207\u5176\u4ED6\u4EFB\u52D9\u7684\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 \u5B83\u5DF2\u7981\u7528\u4E26\u4EE5\u865B\u7DDA\u6A19\u8A18\u3002 +Message.errorCalendarMustHaveWorkingDay=\u884C\u4E8B\u66C6\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u9810\u8A2D\u5DE5\u4F5C\u65E5\u3002 +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=\u8A72\u503C\u4E0D\u5F97\u8D85\u904E {1,number,percent}. +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u70BA {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=\u8A72\u503C\u5FC5\u9808\u5728{0\uFF0Cnumber}\u5230{1\uFF0Cnumber}\u4E4B\u9593\u3002 +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=\u8A72\u503C\u4E0D\u80FD\u8D85\u904E{1\uFF0Cnumber}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u662F{0,number}\u3002 +Message.importCircularLink=\u7531\u65BC\u5C08\u6848\u4E2D\u5305\u542B\u8FF4\u5708\u7684\u524D\u7F6E\u95DC\u4FC2\uFF0C\u6240\u4EE5\u7121\u6CD5\u5C0E\u5165\u3002 +Message.invalidAssignments=\u60A8\u5FC5\u9808\u5F9E\u8CC7\u6E90\u6C60\u4E2D\u8F38\u5165\u73FE\u6709\u8CC7\u6E90\uFF0C\u4E26\u7528\u6E05\u55AE\u5206\u9694\u7B26\u865F"\uFF1B "\u5206\u9694\u3002 \u5982\u679C\u60A8\u5E0C\u671B\u5206\u914D\u7684\u8CC7\u6E90\u5C11\u65BC100%\uFF0C\u60A8\u53EF\u4EE5\u5728\u62EC\u865F\u5167\u6DFB\u52A0\u4E00\u500B\u767E\u5206\u6BD4\uFF1AClark Kent[50%];Lois Lane\u3002 +Message.invalidChoice=\u7121\u6548\u7684\u9078\u64C7 +Message.invalidCost=\u7121\u6548\u6210\u672C\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u6210\u672C\u3002\u6210\u672C\u61C9\u8A72\u7528\u6578\u5B57\u8868\u793A\u3002\u8CA8\u5E63\u7B26\u865F\u662F\u53EF\u9078\u7684\u3002\u7B26\u865F\u70BA\u60A8\u7684\u7CFB\u7D71\u9810\u8A2D\u503C\u3002 +Message.invalidDate=\u7121\u6548\u65E5\u671F\n \u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u65E5\u671F\uFF0C\u6216\u8005\u4E0D\u5728\u65E5\u671F\u7BC4\u570D\u5167\uFF0C\u53731970\u5E741\u67081\u65E5\u52302049\u5E7412\u670831\u65E5\u3002\n\u65E5\u671F\u683C\u5F0F\u662F\u60A8\u7CFB\u7D71\u7684\u65E5\u671F\u683C\u5F0F\u3002 \u4F8B\u5982\uFF1A06\u5E743\u670812\u65E5\u62162006\u5E743\u67083\u65E5\u3002 +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf=\u7121\u6548\u7684{0}.\n\u8ACB\u4F7F\u7528\u6709\u6548\u7684\u4EFB\u52D9ID\u865F.\n\u00B7 {0}\u8CC7\u8A0A\u8868\u793A\u70BA\uFF1A{0}ID\u865F\uFF0C\u76F8\u4F9D\u6027\uFF0C\u4EE5\u53CA\u8D85\u524D\u6216\u6EEF\u5F8C\u6642\u9593.\n\u00B7\u4F60\u4E5F\u53EF\u4EE5\u4F7F\u7528\u4EFB\u52D9\u8CC7\u8A0A\u5C0D\u8A71\u6846\u3002 +Message.invalidDuration=\u7121\u6548\u7684\u671F\u7A0B\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u671F\u7A0B\u3002\n\u8ACB\u5617\u8A66\u4E00\u500B\u503C\uFF0C\u598224\u5C0F\u65F6\uFF0824h\uFF09\u30013\u5929\uFF083d\uFF09\u62169\u5929\uFF089ed\uFF09\u3002 +Message.invalidInput=\u8A72\u503C\u7121\u6548\u3002 +Message.invalidIntersection=\u7D50\u679C\u5DE5\u4F5C\u6642\u9593\u7121\u6548\n\n\u6709\u4E00\u500B\u8207\u5176\u8CC7\u6E90\u884C\u4E8B\u66C6\u76F8\u4EA4\u7684\u4EFB\u52D9\uFF0C\u7121\u8DB3\u5920\u5DE5\u4F5C\u6642\u9593\u4F86\u57F7\u884C\u4EFB\u4F55\u5DE5\u4F5C\u3002\n\u8A72\u4EFB\u52D9\u5C07\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u3002\n\u8981\u89E3\u6C7A\u6B64\u554F\u984C\uFF0C\u60A8\u53EF\u4EE5\u66F4\u6539\u4EFB\u52D9\u6216\u8CC7\u6E90\u884C\u4E8B\u66C6\uFF0C\u6216\u70BA\u4EFB\u52D9\u9078\u64C7\u201C\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u201D\u9078\u9805\u3002 Message.invalidRate =\u9019\u4E0D\u662F\u6709\u6548\u7684\u8CBB\u7387\u3002\n\u5C0D\u65BC\u201C\u5DE5\u4F5C\u201D\uFF08\u975E\u91CD\u8981\uFF09\u8CC7\u6E90\uFF0C\u8ACB\u8F38\u5165\u8CBB\u7387\u91D1\u984D\uFF0C\u5F8C\u8DDF\u659C\u6760\uFF08/\uFF09\uFF0C\u7136\u5F8C\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"100/h".\n\u5C0D\u65BC\u7269\u6599\u8CC7\u6E90\uFF0C\u9375\u5165\u4E0D\u5E36\u659C\u7DDA\u548C\u6642\u9593\u9031\u671F\u7684\u8CBB\u7387\u91D1\u984D\n\u4F8B\u5982\uFF0C"10"\u3002 \u5982\u679C\u60A8\u7684\u7269\u6599\u6A19\u7C64\u70BA\u201C\u6876\u201D\uFF0C\u5247\u8868\u793A\u70BA\u201C $ 10/\u6876\u201D\u3002 +Message.invaliidUnits=\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u55AE\u4F4D\u503C\n\n\u5C0D\u65BC\u5DE5\u4F5C\uFF08\u975E\u7269\u8CEA\uFF09\u8CC7\u6E90\uFF0C\u8F38\u5165\u4E00\u500B\u6578\u5B57\u3002\n\n\u5C0D\u65BC\u56FA\u5B9A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8ACB\u55AE\u7368\u8F38\u5165\u55AE\u4F4D\u503C\u3002 \u4F8B\u5982\uFF0C"10 "\u8868\u793A "10\u6876"\uFF0C\u5982\u679C\u4F60\u7684\u6750\u6599\u6A19\u7C64\u662F "\u6876"\u7684\u8A71\u3002\n\n\u5C0D\u65BC\u4E00\u500B\u53EF\u8B8A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8F38\u5165\u55AE\u4F4D\u503C\uFF0C\u7136\u5F8C\u8F38\u5165\u659C\u7DDA(/)\uFF0C\u518D\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"10/M "\u8868\u793A "\u6BCF\u670812\u6876"\u3002 +Message.notAResource=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u8CC7\u6E90 +Message.notATask=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u4EFB\u52D9 +Message.onlyReplaceOneResourceAtATime=\u60A8\u4E00\u6B21\u50C5\u80FD\u66FF\u63DB\u4E00\u500B\u8CC7\u6E90\u3002 +Message.onlySelectOneElement=\u6BCF\u6B21\u50C5\u80FD\u9078\u64C7\u4E00\u500B\u5143\u7D20\u3002 +Message.parentConstraintType=\u7236\u7D1A\u4EFB\u52D9\u53EA\u80FD\u662F\u5176\u4E2D\u4E4B\u4E00\u3002"\u5118\u5FEB"\uFF0C"\u4E0D\u65E9\u65BC\u958B\u59CB "\u6216 "\u4E0D\u665A\u65BC\u5B8C\u6210"\u3002\u5982\u679C\u60A8\u4F7F\u7528\u53CD\u5411\u8ABF\u5EA6\uFF0C\u90A3\u9EBC "\u76E1\u53EF\u80FD\u665A "\u662F\u4E00\u500B\u9078\u9805\uFF0C\u800C\u4E0D\u662F "\u76E1\u53EF\u80FD\u5FEB"\u3002 +Message.parentSuccessorCannotHaveFinishLink=\u7236\u4EFB\u52D9\u7684\u524D\u7F6E\u4EFB\u52D9\u53EA\u80FD\u662FFinish-Start\u6216Start-Start\u985E\u578B\u3002 +Message.projectAlreadyExists=\u5C08\u6848\u5DF2\u5B58\u5728\u3002\u662F\u5426\u53D6\u4EE3? +Message.projectMustHaveName=\u5C08\u6848\u5FC5\u9808\u6709\u4E00\u500B\u540D\u5B57\u3002 +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=\u5C08\u6848 " +Message.renameProject2=" \u5DF2\u7D93\u5B58\u5728\u65BC\u4F3A\u670D\u5668\u4E0A\u3002\u8ACB\u9078\u64C7\u5176\u4ED6\u540D\u7A31\u3002 +Message.saveProjectAs1=\u5132\u5B58\u5C08\u6848 " +Message.saveProjectAs2=" \u4F5C\u70BA +Message.saveProjectBeforeClosing1=\u60A8\u662F\u5426\u8981\u5C07\u66F4\u6539\u5132\u5B58\u5230 " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=\u5B50\u5C08\u6848\u5C07\u8F49\u63DB\u70BA\u6B63\u5E38\u4EFB\u52D9\u3002\u6B64\u64CD\u4F5C\u7121\u6CD5\u5FA9\u539F\u3002\u7E7C\u7E8C\uFF1F Message.synchronizeResources=\u8207\u4F3A\u670D\u5668\u540C\u6B65\u8CC7\u6E90\uFF1F +Message.tooManyResourcesSelectedToList.mf={0,number}\u5DF2\u9078\u53D6\u8CC7\u6E90 selected (\u592A\u591A\uFF0C\u7121\u6CD5\u5217\u51FA) +Message.tooManyTasksSelectedToList.mf={0,number}\u500B\u5DF2\u9078\u53D6\u7684\u4EFB\u52D9 (\u592A\u591A\u4EFB\u52D9\u7121\u6CD5\u5217\u51FA) +MicrosoftImporter.ErrorImportingXML=\u7121\u6CD5\u5C0E\u5165XML\u6587\u4EF6\u3002 \u50C5\u80FD\u5C0E\u5165\u4F7F\u7528MS Project\u6216Planner\u5275\u5EFA\u4E4BXML\u6587\u4EF6\u3002 +MicrosoftImporter.ImportWithSubprojects=\u8A72\u5C08\u6848\u5305\u542B\u5B50\u5C08\u6848\u3002 \u9019\u4E9B\u5B50\u5C08\u6848\u9700\u4EE5\u624B\u52D5\u5C0E\u5165\u3002 \u5B83\u5011\u6240\u5C0D\u61C9\u7684\u4EFB\u52D9\u70BA\uFF1A +MicrosoftImporter.Importing=\u9032\u53E3... +MicrosoftImporter.PrepareResources=\u6E96\u5099\u8CC7\u6E90 +Network.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +NewBaseCalendarDialog.CreateACopyOfCalendar=\u88FD\u4F5C\u4E00\u4EFD\u884C\u4E8B\u66C6\u526F\u672C +NewBaseCalendarDialog.CreateANewBaseCalendar=\u5EFA\u7ACB\u4E00\u500B\u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +NewBaseCalendarDialog.Name=\u540D\u7A31 +NewBaseCalendarDialog.NewBaseCalendar=\ \u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=\u9396\u5B9A +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +OpenProjectDialog.CreationDate=\u5EFA\u7ACB\u65E5\u671F +OpenProjectDialog.ModificationDate=\u4FEE\u6539\u65E5\u671F +OpenProjectDialog.Name=\u540D\u7A31 +Open_Title.ProjityError=ProjectLibre \u932F\u8AA4 +Open_Title.ProjityWarning=ProjectLibre \u8B66\u544A +PageSetupDialog.Margins=\u908A\u754C +PageSetupDialog.Margins.Left=\u5DE6 (mm) +PageSetupDialog.Margins.Right=\u53F3(mm) +PageSetupDialog.Margins.Top=\u4E0A (mm) +PageSetupDialog.Margins.Bottom=\u4E0B (mm) +PageSetupDialog.Orientation=\u65B9\u5411 +PageSetupDialog.Orientation.Landscape=\u6A6B +PageSetupDialog.Orientation.Portrait=\u76F4 +PageSetupDialog.Orientation.ReverseLandscape=\u6C34\u5E73\u7FFB\u8F49 +PageSetupDialog.Page=\u9801 +PageSetupDialog.Paper=\u7D19 +PageSetupDialog.PaperFormat.Custom=\u81EA\u8A02 +PageSetupDialog.PaperSize=\u7D19\u5F35\u5C3A\u5BF8 +PageSetupDialog.PaperSizeSettings.Custom=\u81EA\u5B9A\u7FA9\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.Custom.Width=\u5BEC (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=\u9AD8 (mm): +PageSetupDialog.PaperSizeSettings.Printer=\u4F7F\u7528\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.SinglePage=\u4E00\u5927\u9801 +PageSetupDialog.PaperSizeSettings.SinglePage2=(\u50C5PDF) +PageSetupDialog.Printers=\u5370\u8868\u6A5F +PageSetupDialog.PrinterPageSetup=\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=\u53EA\u6709\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u624D\u6709 +PageSetupDialog.PODOnly2=\u5C08\u6848\u9700\u6C42 +PageSetupDialog.Refresh=\u66F4\u65B0 +PageSetupDialog.SaveSettings=\u8A2D\u70BA\u9810\u8A2D +PageSetupDialog.SaveSettings.ToolTip=\u8A2D\u7F6E\u70BA\u9810\u8A2D\u5217\u5370\u8A2D\u7F6E +PageSetupDialog.SaveWebPDFSettings=\u8A2D\u70BA\u7DB2\u9801\u9810\u8A2D +PageSetupDialog.SaveWebPDFSettings.ToolTip=\u8A2D\u6210\u7DB2\u9801PDF\u5716\u50CF\u7684\u9810\u8A2D\u503C +PageSetupDialog.Settings.Label=\u8A2D\u5B9A +PageSetupDialog.Settings.Local=\u672C\u5730\u7AEF +PageSetupDialog.Settings.WebPDF=\u7DB2\u9801PDF +PageSetupDialog.Scaling=\u7E2E\u653E\u6BD4\u4F8B +PageSetupDialog.Scaling.FitTo=\u9069\u5408\uFF1A +PageSetupDialog.Scaling.FitToHeight=\u9801\u9AD8 +PageSetupDialog.Scaling.FitToWidth=\u9801\u5BEC +PageSetupDialog.Scaling.ScaleTo=\u7E2E\u653E\u5230\uFF1A +PageSetupDialog.Scaling.ScaleToHeight=\u9AD8 +PageSetupDialog.Scaling.ScaleToWidth=\u5BEC +PageSetupDialog.Scaling.ScaleToProportions=\u9650\u5236 +PageSetupDialog.Scaling.ScaleToProportions2=\u6BD4\u4F8B +PageSetupDialog.ShowGantt=\u7518\u7279\u5716 +PageSetupDialog.ShowParts=\u5716\u89E3 +PageSetupDialog.ShowSpreadSheet=\u8A66\u7B97\u8868 +PageSetupDialog.Title=\u9801\u9762\u8A2D\u7F6E +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=\u9078\u64C7\u7684\u670D\u52D9\u662FPDF\u670D\u52D9\uFF0C\u8ACB\u9078\u64C7\u5370\u8868\u6A5F\u3002 +PersonalContour.personal=\u4EBA\u54E1 +ProjectStatus.ACTIVE=\u6709\u6548 +PreviewPanel.Preview=\u9810\u89BD +PreviewPanelEnd.Preview=\u9810\u89BD +ProjectDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +ProjectDialog.Notes=\u7B46\u8A18\uFF1A +ProjectInformationDialog.ProjectInformation=\u5C08\u6848\u8CC7\u8A0A +ProjectStatus.CANCELLED=\u53D6\u6D88 +ProjectStatus.COMPLETED=\u5DF2\u5B8C\u6210 +ProjectDialog.NewProject=\u65B0\u7684\u5C08\u6848 +ProjectDialog.StartDate=\u958B\u59CB\u65E5\u671F\uFF1A +ProjectDialog.FinishDate=\u5B8C\u6210\u65E5\u671F\uFF1A +ProjectStatus.ON_HOLD=\u64F1\u7F6E +ProjectDialog.Manager=\u7D93\u7406\u4EBA\uFF1A +ProjectStatus.PENDING_APPROVAL=\u5F85\u6279\u51C6 +ProjectStatus.PLANNING=\u898F\u5283 +ProjectType.EVENT_PLANNING=\u6D3B\u52D5\u7B56\u5283 +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=\u884C\u92B7\u6D3B\u52D5 +ProjectInformationDialog.Notes=\u7B46\u8A18 +PrintPreviewFrame.PrintPreview=\u5217\u5370\u9810\u89BD +ProjectType.OTHER=\u5176\u4ED6 +ProjectType.PRODUCT_DEVELOPMENT=\u7522\u54C1\u958B\u767C +ProjectType.PROFESSIONAL_SERVICES=\u5C08\u696D\u7684\u670D\u52D9 +ProjectInformationDialog.Statistics=\u7D71\u8A08 +ProjectDialog.BasedOnProjectRole=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ProjectInformationDialog.General=\u4E00\u822C +ProjectType.SALES_CAMPAIGN=\u92B7\u552E\u6D3B\u52D5 +ProjectDialog.ProjectName=\u5C08\u6848\u540D\u7A31: +ProjectDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ProjectType.TECHNICAL_SUPPORT=\u6280\u8853\u8CC7\u6E90 +RenameDialog.AnotherItemWithThatNameAlreadyExists=\u5176\u4ED6\u9805\u76EE\u5DF2\u5B58\u5728\u6B64\u540D\u7A31 +RenameDialog.NewName=\u65B0\u540D\u7A31 +RenameDialog.Rename=\u66F4\u540D +RenameDialog.TheNameCannotBeEmpty=\u540D\u7A31\u4E0D\u53EF\u7A7A\u767D +RenameProjectDialog.NewProject=\u65B0\u5C08\u6848 +RenameProjectDialog.NewProjectName=\u65B0\u5C08\u6848\u540D\u7A31: +RenameProjectDialog.RenameProject=\u5C08\u6848\u66F4\u540D +ReportView.Columns=\u6B04\u4F4D: +ReportView.Report=\u56DE\u5831: +RenameDialog.CurrentName=\u73FE\u884C\u540D\u7A31 +RequestDemandType.Demand=Demand +RequestDemandType.None=- +RequestDemandType.Request=Request +ResourceAdditionDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceAdditionDialog.SelectResourcesToAdd=\u9078\u64C7\u8CC7\u6E90\u4EE5\u65B0\u589E +ResourceIndicatorsComponent.Administrator=\ (\u7BA1\u7406\u8005) +ResourceIndicatorsComponent.PartnerCustomer=\ (\u5925\u4F34/\u9867\u5BA2) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=\u6B64\u8CC7\u6E90\u5728\u5C08\u6848\u5718\u968A\u4E2D
+ResourceIndicatorsComponent.UserLicense=\u4F7F\u7528\u8005\u57F7\u7167: +ResourceInformationDialog.AssignedToTasks=\u5206\u914D\u81F3\u4EFB\u52D9: +ResourceInformationDialog.Costs=\u6210\u672C +ResourceInformationDialog.General=\u4E00\u822C +ResourceInformationDialog.Notes=\u7B46\u8A18 +ResourceInformationDialog.ResourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +ResourceInformationDialog.ResourceInformation=\u8CC7\u6E90\u8CC7\u8A0A +ResourceInformationDialog.Tasks=\u4EFB\u52D9 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90 (\u9664\u4E86\u9867\u5BA2/\u5925\u4F34) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u4E0D\u5408\u4F75, \u4EE5\u552F\u8B80\u958B\u555F\u5C08\u6848 +ResourceMappingDialog.ImportedResources=\u5DF2\u532F\u5165\u7684\u8CC7\u6E90 +ResourceMappingDialog.MergeResourcesUsingField=\u4F7F\u7528\u6B04\u4F4D\u532F\u5165\u8CC7\u6E90 +ResourceMappingDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ResourceMappingDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceMappingDialog.ServerResources=\u4F3A\u670D\u5668\u8CC7\u6E90 +ResourceType.Location=\u4F4D\u7F6E +ResourceType.Machine=\u6A5F\u68B0 +ResourceType.Material=\u6750\u6599 +ResourceType.Other=\u5176\u4ED6 +ResourceType.Work=\u5DE5\u4F5C +ResourceView.ThisResourceCurrentlyHasAssignments=. \u6B64\u8CC7\u6E90\u7576\u524D\u5DF2\u5206\u914D. +ResourceView.ToMoveAProtectedResource=\u82E5\u8981\u79FB\u52D5\u968E\u5C64\u4E2D\u7684\u4E0D\u53EF\u522A\u9664\u8CC7\u6E90, \u4F60\u53EF\u4EE5\u5728RBS\u8996\u5716\u4E2D\u5EFA\u7ACB\u9023\u7D50. +ResourceView.UsersCanOnlyBeRemoved=. \u4F7F\u7528\u8005\u53EA\u80FD\u5728\u7BA1\u7406\u4F7F\u7528\u8005\u9801\u4E2D\u522A\u9664\u6216\u8A2D\u70BA\u4E0D\u53EF\u7528. +ResourceView.YouCannotDeleteTheResource=\u4F60\u4E0D\u80FD\u522A\u9664\u9019\u500B\u8CC7\u6E90: +Role.Inactive=\u4E0D\u53EF\u7528 +Role.ProjectManager=\u5C08\u6848\u7D93\u7406 +Role.TeamMember=\u5718\u968A\u6210\u54E1 +SchedulingType.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.Percentage=\u767E\u5206\u7387 +ScheduleDialogBox.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D +ScheduleDialogBox.WorkIsEnteredIn=\ \u5DE5\u4F5C\u8F38\u5165\u5728 +ScheduleDialogBox.DefaultTaskType=\ \u9810\u8A2D\u4EFB\u52D9\u985E\u578B +SchedulingType.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.Schedule=\u8A08\u756B\u8868 +ScheduleDialogBox.Decimal=Decimal +ScheduleDialogBox.Minutes=\u5206\u9418 +ScheduleDialogBox.NewTask=\ \u65B0\u4EFB\u52D9 +SchedulingType.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.Hours=\u5C0F\u6642 +ScheduleDialogBox.Days=\u65E5\u5929 +ScheduleDialogBox.Weeks=\u9031 +ScheduleDialogBox.Months=\u6708 +Sorter.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Sorter.CompleteIncomplete=\u5B8C\u6574/\u4E0D\u5B8C\u6574 +Sorter.Cost=\u6210\u672C +Sorter.CostOverbudget=\u6210\u672C\u8D85\u904E\u9810\u7B97 +Sorter.CostPerUse=\u6BCF\u9805\u6210\u672C +Sorter.Critical=\u95DC\u9375 +Sorter.Delegated=\u59D4\u6D3E\u7D66 +Sorter.Duration=\u6642\u7A0B +Sorter.DurationThenCost=\u6642\u7A0B+\u6210\u672C +Sorter.FinishDate=\u7D50\u675F\u65E5\u671F +Sorter.Name=\u540D\u7A31 +Sorter.None=\u7121\u6392\u5E8F +Sorter.OvertimeRate=\u8D85\u6642\u7387 +Sorter.ResourceGroup=\u7FA4\u7D44 +Sorter.ResourceType=\u985E\u578B +Sorter.StandardRate=\u6A19\u6E96\u7387 +Sorter.StartDate=\u958B\u59CB\u65E5\u671F +Spreadsheet.Action.collapse=\u6536\u5408 +Spreadsheet.Action.copy=\u8907\u88FD +Spreadsheet.Action.cut=\u526A\u4E0B +Spreadsheet.Action.delete=\u522A\u9664 +Spreadsheet.Action.expand=\u5C55\u958B +Spreadsheet.Action.indent=\u7E2E\u6392 +Spreadsheet.Action.new=\u65B0\u589E +Spreadsheet.Action.outdent=\u53CD\u7E2E\u6392 +Spreadsheet.Action.paste=\u8CBC\u4E0A +Spreadsheet.Assignment.resourceUsage=\u8CC7\u6E90\u4F7F\u7528 +Spreadsheet.Assignment.taskUsage=\u4EFB\u52D9\u4F7F\u7528 +Spreadsheet.AssignmentEntry.assignResources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.AssignmentEntry.replaceResources=\u53D6\u4EE3\u8CC7\u6E90 +Spreadsheet.Dependency.predecessors=\u524D\u4E00\u624B +Spreadsheet.Dependency.successors=\u5F8C\u4E00\u624B +Spreadsheet.Project.default=\u9810\u8A2D +Spreadsheet.Project.portfolio=\u7D44\u5408 +Spreadsheet.Project.properties=\u8CA1\u7522 +Spreadsheet.Resource.earnedValue=\u6399\u503C +Spreadsheet.Resource.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Resource.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Resource.entryWorkResources=\u9810\u8A2D +Spreadsheet.ResourceAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.ResourceAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.ResourceAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.ResourceTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.ResourceUsage.default=\u8CC7\u6E90\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.nameOnly=Name +Spreadsheet.Task.baseline=\u57FA\u7DDA +Spreadsheet.Task.constraintDates=\u9650\u5236\u65E5\u671F +Spreadsheet.Task.cost=\u6210\u672C +Spreadsheet.Task.delay=Delay +Spreadsheet.Task.earnedValue=\u6399\u503C +Spreadsheet.Task.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Task.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Task.entry=\u9810\u8A2D +SpreadSheetColumnMenu.InsertColumn=I\u63D2\u5165\u6B04\u4F4D... +Spreadsheet.Task.schedule=\u8A08\u756B\u8868 (CPM) +Spreadsheet.Task.summary=\u6458\u8981 +Spreadsheet.Task.tracking=\u8FFD\u8E64 +Spreadsheet.Task.usage=\u5DE5\u4F5C +Spreadsheet.Task.variance=\u8A08\u756B\u8868\u8B8A\u7570 +Spreadsheet.TaskAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.TaskAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.TaskAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.TaskAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.TaskTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.TaskUsage.default=\u4EFB\u52D9\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.Timesheet.Default=\u5DE5\u6642\u8868 +Spreadsheet.Timesheet.completion=\u5B8C\u6210 +SpreadSheetColumnMenu.HideColumn=\u96B1\u85CF\u6B04\u4F4D +Spreadsheet.availability=\u53EF\u5229\u7528 +Spreadsheet.costRates=\u6210\u672C\u7387 +Spreadsheet.empty= +StandardContour.backLoaded=\u63A8\u9072 +StandardContour.bell=\u9418\u8072 +StandardContour.doublePeak=\u96D9\u5CF0 +StandardContour.earlyPeak=\u524D\u671F\u5CF0\u503C +StandardContour.flat=\u5E73\u539F +StandardContour.frontLoaded=\u63D0\u524D +StandardContour.latePeak=\u5F8C\u671F\u5CF0\u503C +StandardContour.plateau=\u9AD8\u539F\u5340 +Styles.Annotation.milestone=\u91CC\u7A0B\u7891 +Styles.Annotation.normal=\u4E00\u822C\u4EFB\u52D9 +Styles.Bar.Row.assignment=\u5206\u914D +Styles.Bar.Row.baseline10=\u57FA\u7DDA 10 +Styles.Bar.Row.baseline1=\u57FA\u7DDA 1 +Styles.Bar.Row.baseline2=\u57FA\u7DDA 2 +Styles.Bar.Row.baseline3=\u57FA\u7DDA 3 +Styles.Bar.Row.baseline4=\u57FA\u7DDA 4 +Styles.Bar.Row.baseline5=\u57FA\u7DDA 5 +Styles.Bar.Row.baseline6=\u57FA\u7DDA 6 +Styles.Bar.Row.baseline7=\u57FA\u7DDA 7 +Styles.Bar.Row.baseline8=\u57FA\u7DDA 8 +Styles.Bar.Row.baseline9=\u57FA\u7DDA 9 +Styles.Bar.Row.baseline=\u57FA\u7DDA +Styles.Bar.Row.critical=\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.deadline=\u6700\u5F8C\u671F\u9650 +Styles.Bar.Row.external=\u5916\u90E8\u4EFB\u52D9 +Styles.Bar.Row.milestone=\u91CC\u7A0B\u7891 +Styles.Bar.Row.subproject=\u5B50\u8A08\u756B +Styles.Bar.Row.summary=\u6458\u8981\u4EFB\u52D9 +Styles.Bar.Row.task=\u5206\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.timesheet=\u5DE5\u6642\u8868 +Styles.Bar.Row.totalSlack=\u6240\u6709\u5BEC\u9B06 +Styles.Calendar.nonWorking=\u986F\u793A\u884C\u4E8B\u66C6 +Styles.Gantt.showRows=\u986F\u793A\u884C +Styles.showLinks=\u986F\u793A\u9023\u7D50 +Summary.AND=\u4E14 +Summary.Average=\u5E73\u5747 +Summary.AverageFirstSublevel=\u5E73\u5747\u7B2C\u4E00\u500B\u6B21\u7B49\u7D1A +Summary.CountAll=\u5168\u90E8\u8A08\u7B97 +Summary.CountNonsummaries=\u8A08\u7B97\u98DB\u6458\u8981 +Summary.List=\u6E05\u55AE +Summary.Maximum=\u6700\u5927 +Summary.Minimum=\u6700\u5C0F +Summary.None=\u7121 +Summary.OR=\u6216 +Summary.Sum=\u52A0\u7E3D +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=\u7B46\u8A18: ' +TaskIndicatorsComponent.TheCalendar=\u884C\u4E8B\u66C6 ' +TaskIndicatorsComponent.TheIntersection=\u9019\u500B\u4EFB\u52D9\u8207\u8CC7\u6E90\u884C\u4E8B\u66C6\u7684\u4EA4\u96C6\u6C92\u6709\u5DE5\u4F5C\u6642\u9593.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=\u6B64\u4EFB\u52D9\u5DF2\u5B8C\u6210\u65BC +TaskIndicatorsComponent.ThisParentTaskHasResources=\u6B64\u7236\u4EFB\u52D9\u5177\u6709\u76F4\u63A5\u5206\u914D\u7D66\u5B83\u7684\u8CC7\u6E90: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=\u6B64\u5B50\u8A08\u756B\u7121\u6548: \u5728\u4E00\u500B\u5C08\u6848\u4E2D\u53EA\u80FD\u63D2\u5165\u4E00\u6B21. +TaskIndicatorsComponent.ThisTaskFinishesOn=\u6B64\u4EFB\u52D9\u5DF2\u7D50\u675F\u65BC +TaskIndicatorsComponent.ThisTaskHasA=\u6B64\u4EFB\u52D9\u6709\u4E00\u500B ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66 +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66\u4F60 +TaskIndicatorsComponent.ThisTasksRepresentsThe=\u6B64\u4EFB\u52D9\u4EE3\u8868 +TaskIndicatorsComponent.constraintOn=' \u9650\u5236\u65BC +TaskIndicatorsComponent.isAssignedToTheTask=' \u5206\u914D\u7D66\u6B64\u4EFB\u52D9.
+TaskIndicatorsComponent.opened=\u5DF2\u958B\u555F +TaskIndicatorsComponent.subproject=\ \u5B50\u8A08\u756B\: +TaskIndicatorsComponent.unopened=\u672A\u958B\u555F\u7684 +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ \u8D85\u904E\u81EA\u8EAB\u6B7B\u7DDA +TaskInformationDialog.Advanced=\u9032\u968E +TaskInformationDialog.ConstrainTask=\u9650\u5236 +TaskInformationDialog.Dates=\u65E5\u671F +TaskInformationDialog.General=\u4E00\u822C +TaskInformationDialog.Notes=\u7B46\u8A18 +TaskInformationDialog.Predecessors=\u4E0A\u4E00\u624B +TaskInformationDialog.Resources=\u8CC7\u6E90 +TaskInformationDialog.Successors=\u4E0B\u4E00\u624B +TaskInformationDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Text.Allocated=\u5206\u914D +Text.ApplicationTitle=ProjectLibre +Text.Assign=\u5206\u914D +Text.AssignResources=\u5206\u914D\u8CC7\u6E90 +Text.Baseline=\u57FA\u7DDA +Text.Cancel=\u53D6\u6D88 +Text.ClearBaseline=\u660E\u78BA\u57FA\u7DDA +Text.CostRateTables=\u6210\u672C\u7387\u8868 +Text.Cumulative=\u7D2F\u8A08 +Text.DetectingJavaVersion=\u5075\u6E2CJava\u7248\u672C... +Text.DisabledExternalTaskDependency=\u505C\u7528\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.EntireProject=\u6574\u500B\u5C08\u6848 +Text.ExternalTaskDependency=\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.Field=\u6B04\u4F4D +Text.Filter=\u7387\u93E1 +Text.From=\u8868\u55AE +Text.Group=\u7FA4\u7D44 +Text.HierarchicalRelation=\u7B49\u7D1A\u95DC\u4FC2 +Text.Histogram=\u9577\u689D\u5716 +Text.Lag=\u843D\u5F8C +Text.No=No +Text.None=\u7121 +Text.OtherProjects=\u5176\u4ED6\u5C08\u6848 +Text.Remove=\u79FB\u9664 +Text.Replace=\u53D6\u4EE3 +Text.ReplaceResource=\u53D6\u4EE3\u8CC7\u6E90 +Text.Save=\u5132\u5B58 +Text.SaveBaseline=\u5132\u5B58\u57FA\u7DDA +Text.Selected=\u5DF2\u9078\u64C7 +Text.SelectedTasks=\u5DF2\u9078\u64C7\u4EFB\u52D9 +Text.ShowSelectedOnTop=\u5728\u4E0A\u65B9\u986F\u793A\u5DF2\u9078\u64C7\u9805 +Text.ShowTeamResourcesOnly=\u50C5\u5718\u968A\u8CC7\u6E90 +Text.Sort=\u6392\u5E8F +Text.Task=\u4EFB\u52D9 +Text.TaskDependency=\u4EFB\u52D9\u4F9D\u5B58 +Text.Tasks=\u4EFB\u52D9 +Text.ThisProject=\u6B64\u5C08\u6848 +Text.To=\u7D66 +Text.Type=\u985E\u578B +Text.Unassigned=\u672A\u5206\u914D\u7684 +Text.Untitled=\u7121\u6A19\u984C +Text.UserDefinedInParentheses=(\u4F7F\u7528\u8005\u5B9A\u7FA9) +Text.With=\u8207 +Text.Yes=Yes +Text.budget=\u9810\u7B97 +Text.clickToRename=(\u9EDE\u64CA\u66F4\u540D) +Text.cost=\u6210\u672C +Text.createProject=\u5EFA\u7ACB\u5C08\u6848 +Text.forwardScheduled=\u524D\u63A8\u8A08\u756B\u8868 +Text.insertProject=\u63D2\u5165\u5C08\u6848 +Text.manageResources=\u5408\u4F75\u8CC7\u6E90\u6C60 +Text.modifiedInParentheses=(\u5DF2\u7DE8\u8F2F) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=\u4F3A\u670D\u5668\u5C08\u6848 +Text.openProject=\u958B\u555F\u5C08\u6848 +Text.predecessor=\u4E0A\u4E00\u624B +# {0} is the name of the thing to rename +Text.rename.mf=\u66F4\u540D {0} +Text.resetRoles=\u6B64"\u5168\u90E8\u8CC7\u6E90"\u9078\u9805\u5141\u8A31\u5728\u4F60\u516C\u53F8\u4E2D\u5B9A\u7FA9\u904E\u7684\u6240\u6709\u4F7F\u7528\u8005\u5B58\u53D6\u9019\u500B\u8A08\u756B, \u9664\u4E86"\u5925\u4F34/\u9867\u5BA2" \u4F7F\u7528\u8005.\n\u4F60\u5728\u6B64\u8CC7\u6E90\u8996\u5716\u5DF2\u8F38\u5165\u904E\u7684\u8A08\u756B\u7279\u5B9A\u9650\u5236\u5C07\u6703\u88AB\u91CD\u8A2D. +Text.reverseScheduled=\u53CD\u8F49\u8A08\u756B\u8868 +Text.rightClickSelectToSpreadsheet=\u53F3\u9EDE\u64CA\u4EE5\u9078\u53D6\u6216\u66F4\u540D\u8A66\u7B97\u8868 +Text.rightClickToInsertRemoveColumns=\u53F3\u9EDE\u64CA\u4EE5\u63D2\u5165/\u96B1\u85CF\u6B04\u4F4D +Text.successor=\u4E0B\u4E00\u624B +Text.taskHierarchy=\u4EFB\u52D9\u7B49\u7D1A: +Text.welcomeSubject=\u6B61\u8FCE\u4F7F\u7528 Projects On Demand +Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +Text.work=work +TimeChartPopupMenu.VerticalScrolling=\u5782\u76F4\u6372\u52D5 +TimesheetHelper.Entered=\u5DF2\u8F38\u5165 +TimesheetHelper.Integrated=\u5B8C\u6574 +TimesheetHelper.Mixed=\u6DF7 +TimesheetHelper.New=\u65B0 +TimesheetHelper.Rejected=\u88AB\u62D2\u7D55 +TimesheetHelper.Saved=\u5DF2\u5132\u5B58 +TimesheetHelper.Validated=\u5DF2\u9A57\u8B49 +Title.ProjityError=ProjectLibre \u932F\u8AA4 +Title.ProjityWarning=ProjectLibre \u8B66\u544A +TransformParameter.FinishDate=\u5B8C\u6210\u65E5\u671F +TransformParameter.StartDate=\u958B\u59CB\u65E5\u671F +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=\u6574\u500B\u5C08\u6848 +UpdateProjectDialogBox.For=\u7D66: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ \u91CD\u65B0\u5B89\u6392\u5269\u9918\u5DE5\u4F5C\u65BC +UpdateProjectDialogBox.SelectedTasks=\ \u5DF2\u9078\u64C7\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.SetZeroHundred=\u6839\u64DA\u65E5\u671F\u8ABF\u6574\u5B8C\u6210\u767E\u5206\u6BD4 +UpdateProjectDialogBox.SetZeroOrHundredOnly=\u50C5\u8ABF\u6574(\u8207\u5B8C\u6210)\u4EE5\u65E5\u671F\u7D50\u675F\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.UpdateProject=\u66F4\u65B0\u5C08\u6848 +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ \u901A\u904E\u66F4\u65B0\u5B8C\u6210\u5DE5\u4F5C +UpdateTaskDialog.Actual=\u5BE6\u969B\u7684 +UpdateTaskDialog.Current=\u7576\u524D\u7684 +UpdateTaskDialog.UpdateTask=\u66F4\u65B0\u4EFB\u52D9 +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=\u6B64\u65E5\u671F\u5DF2\u5B58\u5728\u65BC\u8868\u683C\u4E2D, \u8ACB\u9078\u64C7\u53E6\u4E00\u500B\u65E5\u671F. +ValueObjectForIntervalTable.ThisDateMustBeAfter=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0A\u4E00\u9805\u7684\u4E4B\u5F8C. +ValueObjectForIntervalTable.ThisDateMustBeBefore=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0B\u4E00\u9805\u7684\u4E4B\u524D. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=\u4F60\u4E0D\u53EF\u4EE5\u79FB\u9664\u8868\u683C\u4E2D\u7B2C\u4E00\u500B\u65E5\u671F. +WelcomeDialog.WhatWouldYouLikeToDo=\u4F60\u60F3\u8981\u505A\u4EC0\u9EBC: +WorkRangeException.EndMustBeAfterStart=\u7BC4\u570D\u7684\u622A\u6B62\u6642\u9593\u5FC5\u9808\u5927\u65BC\u81EA\u8EAB\u7684\u958B\u59CB +WorkRangeException.RangeIncomplete=\u5DE5\u4F5C\u7BC4\u570D\u5FC5\u9808\u540C\u6642\u6709\u958B\u59CB\u8207\u7D50\u675F +WorkRangeException.RangesCannotOverlap=\u4F60\u4E0D\u53EF\u6709\u91CD\u758A\u7684\u6642\u9593\u7BC4\u570D. +WorkRangeException.RangesMustBeOrdered=\u5DE5\u4F5C\u7BC4\u570D\u7684\u555F\u52D5\u5FC5\u9808\u5728\u524D\u4E00\u9805\u4E4B\u5F8C +tip.1.description= \u4F60\u53EF\u4EE5\u5728 http://www.projectlibre.org \u6210\u70BA ProjectLibre \u793E\u7FA4\u7684\u6210\u54E1. \u6211\u5011\u5C07\u63D0\u4F9B\u66F4\u65B0` \u8CC7\u8A0A\u548C\u793E\u7FA4\u6D3B\u52D5. +tip.1.name=\u52A0\u5165 ProjectLibre \u793E\u7FA4 +tip.2.description= \u4F60\u53EF\u4EE5\u5728 \u5E72\u7279\u8868, \u8A66\u7B97\u8868\u683C\u5B50, \u8A66\u7B97\u8868\u8868\u982D\u548C\u8A66\u7B97\u8868\u5DE6\u4E0A\u89D2\u9EDE\u53F3\u9375\u4F86\u7372\u5F97\u4FEE\u6539\u6AA2\u8996\u7684\u529F\u80FD\u9078\u55AE. +tip.2.name=\u4FEE\u6539\u6AA2\u8996 +tip.3.description=\u60A8\u53EF\u4EE5\u70BA ProjectLibre \u505A\u51FA\u8CA2\u737B! \u6211\u5011\u6B63\u5728\u5C0B\u627E\u7FFB\u8B6F\u4EBA\u54E1\u548C\u958B\u767C\u4EBA\u54E1,\u4EE5\u4F7F ProjectLibre \u8D8A\u4F86\u8D8A\u597D. \u8ACB\u806F\u7E6B partners@projectlibre.org +tip.3.name=\u7D66ProjectLibre\u8CA2\u737B +tip.4.description=\u9577\u689D\u5716\u8207\u5716\u8868\u90FD\u662F\u52D5\u614B\u4E14\u4F9D\u5B58\u65BC\u4F60\u9078\u64C7\u7684\u4EFB\u52D9. +tip.4.name=\u52D5\u614B\u5716\u8868 +tip.5.description=\u4F60\u53EF\u4EE5\u76F4\u63A5\u5728\u7DB2\u8DEF\u5716\u8868\u4E0A\u9032\u884C\u7DE8\u8F2F (PERT\u5716). +tip.5.name=\u7DE8\u8F2F\u7DB2\u8DEF\u584A +tip.6.description=\u60A8\u53EF\u4EE5\u7E2E\u6392\u548C\u53CD\u7E2E\u6392\u4EFB\u52D9\u4F86\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB. \u9019\u4E5F\u5C07\u8868\u73FE\u5728WBS\u8996\u5716\u4E2D. +tip.6.name=\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB +tip.7.description=\u4F60\u53EF\u4EE5\u7528\u6ED1\u9F20\u4F86\u9023\u7D50`\u5C55\u958B`\u5B8C\u6210`\u79FB\u52D5\u8207\u5206\u5272\u4EFB\u52D9. +tip.7.name=\u6ED1\u9F20\u64CD\u4F5C +tip.8.description=\u901A\u5E38\u4F60\u6703\u4FDD\u6301\u4EFB\u52D9\u9593\u9810\u8A2D\u7684 FS (\u7D50\u675F-\u958B\u59CB) \u9023\u7D50.\u6709\u6642\u4F60\u53EF\u80FD\u6703\u60F3\u8981 SS \u8207 FF, \u800C SF \u975E\u5E38\u7F55\u898B. \u4F60\u53EF\u4EE5\u9EDE\u64CA\u4F86\u4FEE\u6539\u9023\u7D50\u985E\u578B. \u4F60\u4E5F\u53EF\u4EE5\u8A2D\u5B9A\u5EF6\u5F8C. +tip.8.name=\u9023\u7D50\u985E\u578B +tip.9.description=\u70BA\u9805\u76EE\u4FDD\u5B58\u57FA\u7DDA\u59CB\u7D42\u662F\u4E00\u500B\u597D\u4E3B\u610F. ProjectLibre\u6700\u591A\u53EF\u4EE5\u4FDD\u5B58\u523011\u500B, \u4E14\u60A8\u53EF\u4EE5\u5728\u7518\u7279\u5716\u4E2D\u986F\u793A\u5B83\u5011\u4E26\u7528\u65BC\u6399\u503C\u5206\u6790. +tip.9.name=\u57FA\u7DDA +tip.10.description=\u4F60\u53EF\u4EE5\u5728\u5217\u5370\u9801\u9762\u4E2D\u8ABF\u6574\u5E72\u7279\u5716\u7E2E\u653E\u548C\u6B04\u4F4D\u7684\u5927\u5C0F\u4FEE\u6539\u6216\u96B1\u85CF. \u4E14\u4F7F\u7528\u9810\u89BD\u5217\u5370\u4F86\u8ABF\u6559. +tip.10.name=\u5217\u5370\u9801\u9762 +tip.11.description=\u4F60\u53EF\u4EE5\u5728ProjectLibre\u4E2D\u958B\u555F\u5FAE\u8EDF Project\u5EFA\u7ACB\u7684\u6A94\u6848, \u800C\u4F60\u4E5F\u53EF\u4EE5\u56DE\u5B58\u6210\u5FAE\u8EDF\u7684XML\u683C\u5F0F. +tip.11.name=\u5FAE\u8EDF Project \u76F8\u5BB9\u6027 +tip.12.description=ProjectLibre \u6709\u5F88\u591A\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF\u4F9B\u4F60\u4F7F\u7528. \u8A66\u8457\u53F3\u9375\u8A66\u7B97\u8868\u7684\u8868\u982D\u4F86\u78BA\u8A8D. +tip.12.name=\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF +tip.13.description=\u60A8\u53EF\u4EE5\u5C07\u884C\u4E8B\u66C6\u5206\u914D\u7D66\u4EFB\u52D9`\u8CC7\u6E90\u548C\u5C08\u6848, \u4EE5\u4FBF\u8003\u616E\u4F11\u5047. +tip.13.name=\u884C\u4E8B\u66C6 +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + + +Text.badJavaVersion=\u4F60\u7684Java\u7248\u672C\u70BA "{0}". \u8981\u904B\u884C ProjectLibre, \u4F60\u9700\u8981 Java 1.6\u4EE5\u4E0A. +Text.badJavaVendor=\u4F60\u7684Java\u63D0\u4F9B\u8005\u662F "{0}". \u8981\u904B\u884C ProjectLibre, \u9700\u8981\u57F7\u884C Sun Java. +Text.javaExecutable=\u81EA\u52D5\u5075\u6E2C\u7684\u4F7F\u7528\u4E2D Java Runtime \u70BA {0}.\n\u5982\u679C\u4F60\u6709\u65B0\u7248\u672C, \u4F60\u53EF\u4EE5\u900F\u904E\u7DE8\u8F2F\u81EA\u52D5\u5075\u6E2C\u6A94\u4E2D\u7684 "{1}" \u5C6C\u6027\u4F86\u624B\u52D5\u4FEE\u6539 "{2}".\n\u76F8\u5C0D\u7684\u4F60\u53EF\u4EE5\u79FB\u9664 "{2}" \u4EE5\u518D\u6B21\u81EA\u52D5\u5075\u6E2C. + + +Text.newVersion=\u6709\u65B0\u7248\u672C {0} \u7684 ProjectLibre \u53EF\u7528.\n\u4F60\u76EE\u524D\u7248\u672C\u70BA {1}.\n\u662F\u5426\u8981\u7ACB\u5373\u524D\u5F80\u4E0B\u8F09\u9801\u9762? + + +TipOfTheDay.dialogTitle=\u672C\u65E5\u63D0\u793A +TipOfTheDay.didYouKnowText=\u4F60\u77E5\u9053\u55CE... +TipOfTheDay.showOnStartupText=\u555F\u52D5\u6642\u986F\u793A\u63D0\u793A +TipOfTheDay.previousTipText=< \u4E0A\u4E00\u500B +TipOfTheDay.nextTipText=\u4E0B\u4E00\u500B > +TipOfTheDay.closeText=\u95DC\u9589 + + + + +Warn.lockMessage = \u6B64\u5C08\u6848\u4EE5\u88AB {0} \u9396\u5B9A. \u4F60\u8981\u552F\u8B80\u958B\u555F\u4F86\u6AA2\u8996\u55CE? + + +#added 14/2/08 +Filter.StartingWithinWeek=\u4E00\u9031\u5167\u555F\u52D5 +Filter.StartingWithinTwoWeeks=\u5169\u9031\u5167\u555F\u52D5 +Filter.LateStarting=\u665A\u9EDE\u555F\u52D5 + + +Warn.resourcePoolOpen=\u7576\u8CC7\u6E90\u6C60\u958B\u555F\u6642\u4E0D\u53EF\u4EE5\u958B\u555F\u5176\u4ED6\u5C08\u6848. +Warn.resourcePoolCannotOpen=\u7576\u5176\u4ED6\u5C08\u6848\u958B\u555F\u6642\u4F60\u4E0D\u80FD\u958B\u555F\u6B64\u8CC7\u6E90\u6C60. +Warn.fileNotFound=\u627E\u4E0D\u5230\u6A94\u6848 + +Text.donateMessage=ProjectLibre \u662F\u514D\u8CBB\u4F7F\u7528. \u5B83\u6C92\u6709\u4EFB\u4F55\u984D\u5916\u689D\u4EF6,\u4E14\u7701\u4E0B\u4F60\u50F9\u503C $999.99 \u7684\u5546\u7528\u5C08\u6848\u7BA1\u7406\u8EDF\u9AD4. \u6211\u5011\u6703\u5BA3\u5C0E\u4F7F\u7528\u8005\u900F\u904EPayPal\u81EA\u9858\u6027\u6350\u8D08. +Text.donateTitle=Please support ProjectLibre +Text.runsSinceMessage=\u4F60\u81EA\u5F9E{1,date,short}\u904B\u884C ProjectLibre \u5171 {0,number} \u6B21 +Text.tryPODTitle=\u5728Demand\u4E0A\u5617\u8A66Projects + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=\u4E0D\u518D\u986F\u793A\u6B64\u8A0A\u606F + +Warn.saveXML=\u7576\u8207\u5176\u4ED6\u61C9\u7528\u7A0B\u5F0F\u4EA4\u63DB\u6642\u4F60\u53EA\u80FD\u4F7F\u7528XML\u683C\u5F0F\u800C\u90E8\u5206\u8CC7\u6599\u53EF\u80FD\u907A\u5931.\n\u4F60\u60F3\u8981\u7E7C\u7E8C\u55CE? + +Text.rightClickForOptions=\u53F3\u9EDE\u64CA\u4F86\u9078\u9805 \ No newline at end of file diff --git a/projectlibre_core/src/com/projectlibre1/strings/client_zh_TW.properties b/projectlibre_core/src/com/projectlibre1/strings/client_zh_TW.properties new file mode 100644 index 0000000..637d4f5 --- /dev/null +++ b/projectlibre_core/src/com/projectlibre1/strings/client_zh_TW.properties @@ -0,0 +1,1248 @@ +#The contents of this file are subject to the Common Public Attribution License +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +#License Version 1.1 but Sections 14 and 15 have been added to cover use of +#software over a computer network and provide for limited attribution for the +#Original Developer. In addition, Exhibit A has been modified to be consistent +#with Exhibit B. +# +#Software distributed under the License is distributed on an "AS IS" basis, +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +#specific language governing rights and limitations under the License. The +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +#the provisions of the ProjectLibre License are applicable instead of those above. +#If you wish to allow use of your version of this file only under the terms of the +#ProjectLibre License and not to allow others to use your version of this file under +#the CPAL, indicate your decision by deleting the provisions above and replace them +#with the notice and other provisions required by the Project Libre License. If you +#do not delete the provisions above, a recipient may use your version of this file +#under either the CPAL or the ProjectLibre Licenses. +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +#in the Source Code files of the Original Code. You should use the text of this +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Modifications.] +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +#alternatives listed on http://www.projectlibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally +#aligned immediately above the ProjectLibre logo and left justified in alignment with the +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with +#alternatives listed on http://www.ProjectLibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. + + + + +#The strings must be kept sorted by key so as to facilitate assuring correspondence between different languages. + + +#Some strings contain templates: Baseline# Cost becomes Baseline1 Cost, Baseline2 Cost, etc. +#The # gets replaced by a number for each one +#Another type of templating is used sometimes in messages where values within {} are replaced with text - a task name for example +#Anything within the {} symbols must not be translated + + +# The strings whose keys have the .mf suffix must be formated with the rules described in +# http://java.sun.com/j2se/1.5.0/docs/api/java/text/MessageFormat.html +# For extense the quotes ' must be doubled and replaced by '' . + + +# The \n in some messages is used to force a new line. It is used to break up long messages into several lines. +# Strings which start with one or more "\ " should retain those "\ " as they are used to represent single spaces +# Some strings contain spaces at the end. Be careful to conserve them +# Strings with colons at the end should retain the colons at the end + + + + +# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages +# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help +#ACWP = Actual Cost of Work Performed +#BAC = Budget at Completion +#BCWP = Budgeted Cost of Work Performed +#BCWS = Budgeted Cost of Work Scheduled +#CPI = Cost Peformance Index +#CSI = Cost Schedule Index +#CV = Cost Variance +#CV = Cost Variance Percent +#EAC = Estimate at Complete +#SPI = Schedule Peformance Index +#SV = Schedule Variance +#SV = Schedule Variance Percent +#TCPI = To Complete Performance Index +#VAC = Value at Completion +#WBS = Work Breakdown Structure +#RBS = Resource Breakdown Structure + + + + + + +AboutDialog.About=\u95DC\u65BC +AboutDialog.copyright=\u7248\u6B0A\u6240\u67092012 ProjectLibre Inc.\u4FDD\u7559\u6240\u6709\u6B0A\u5229 +AccessControlPolicy.PUBLIC=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +AccessControlPolicy.RESTRICTED=\u57FA\u65BC\u8CC7\u6E90\u6AA2\u8996\u4E2D\u7684\u5C08\u6848\u89D2\u8272 +AccrualType.End=\u7D50\u675F +AccrualType.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +AccrualType.Start=\u958B\u59CB +AssignmentDialog.ShowingAllResources=\u986F\u793A\u6240\u6709\u8CC7\u6E90 +AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=\u50C5\u986F\u793A\u5C08\u6848\u5718\u968A\u7684\u8CC7\u6E90 +AssignmentDialog.none=(\u7121) +Bar.assignment=\u6307\u5B9A +Bar.baseline10=\u57FA\u7DDA10 +Bar.baseline1=\u57FA\u7DDA1 +Bar.baseline2=\u57FA\u7DDA2 +Bar.baseline3=\u57FA\u7DDA3 +Bar.baseline4=\u57FA\u7DDA4 +Bar.baseline5=\u57FA\u7DDA5 +Bar.baseline6=\u57FA\u7DDA6 +Bar.baseline7=\u57FA\u7DDA7 +Bar.baseline8=\u57FA\u7DDA8 +Bar.baseline9=\u57FA\u7DDA9 +Bar.baseline=\u57FA\u7DDA +Bar.critical=\u95DC\u9375 +Bar.deadline=\u671F\u9650 +Bar.external=\u5916\u90E8 +Bar.milestone=\u91CC\u7A0B\u7891 +Bar.subproject=\u5B50\u5C08\u6848 +Bar.summary=\u6458\u8981 +Bar.task=\u4EFB\u52D9 +Bar.timesheet=\u6642\u9593\u8868 +Bar.totalSlack=\u5BEC\u9B06\u7E3D\u6578 +BarPanel.Shape=\u5F62\u72C0: +BaselineDialog.Baseline=\u57FA\u7DDA: +BaselineDialog.For=\u70BA: +BookingType.Committed=\u5DF2\u63D0\u4EA4 +BookingType.Proposed=\u6BD4\u4F8B\u5206\u914D +ButtonText.Cancel=\u53D6\u6D88 +ButtonText.Close=\u95DC +ButtonText.IAccept=\u6211\u63A5\u53D7 +ButtonText.OK=OK +ButtonText.Open=\u6253\u958B +ButtonText.OpenCopy=\u552F\u8B80\u958B\u555F +Calendar.24Hours=24\u5C0F\u6642 +Calendar.EditedWorkingHours=\u7DE8\u8F2F\u5DE5\u4F5C\u6642\u9593 +CalendarDialogBox.Wednesday=\u661F\u671F\u4E09 +CalendarDialogBox.September=\u4E5D\u6708 +CalendarDialogBox.Seventeen=17:00 +CalculationDialogBox.Manual=\ \u624B\u518A +Calendar.EditsToADayOfTheWeek=\u7DE8\u8F2F\u5230\u661F\u671F\u5E7E +CalendarDialogBox.HoursPerday=\u6BCF\u5929\u5C0F\u6642\u6578 : +CalculationDialogBox.Prorated=\u6309\u6BD4\u4F8B\u5206\u914D +Calendar.EditsToAnIndividualDay=\u7DE8\u8F2F\u5230\u4E00\u7368\u7ACB\u65E5\u671F +CalendarDialogBox.DurationSettings=\u671F\u7A0B\u8A2D\u5B9A +CalendarDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D\u503C +CalendarDialogBox.HoursPerWeek=\u6BCF\u9031\u5C0F\u6642\u6578 : +CalendarDialogBox.DaysPerMonth=\u6BCF\u6708\u5929\u6578 : +Calendar.ExceptionCircular=\u60A8\u4E0D\u80FD\u5C07\u6B64\u884C\u662F\u5229\u7528\u65BC\u57FA\u6E96\u884C\u4E8B\u66C6\uFF0C\u56E0\u70BA\u6703\u5C0E\u81F4\u6B64\u884C\u4E8B\u66C6\u81EA\u6211\u76F8\u4F9D\u3002 +CalendarDialogBox.Monday=\u661F\u671F\u4E00 +CalendarDialogBox.Tuesday=\u661F\u671F\u4E8C +CalendarDialogBox.Thursday=\u661F\u671F\u56DB +CalendarDialogBox.Friday=\u661F\u671F\u4E94 +CalendarDialogBox.Saturday=\u661F\u671F\u516D +CalendarDialogBox.Sunday=\u661F\u671F\u65E5 +CalendarDialogBox.January=\u4E00\u6708 +CalendarDialogBox.February=\u4E8C\u6708 +CalendarDialogBox.March=\u4E09\u6708 +CalendarDialogBox.April=\u56DB\u6708 +CalendarDialogBox.August=\u516B\u6708 +CalendarDialogBox.October=\u5341\u6708 +CalendarDialogBox.November=\u5341\u4E00\u6708 +CalendarDialogBox.December=\u5341\u4E8C\u6708 +CalendarDialogBox.EightAM=\ 8\:00 AM +CalendarDialogBox.SixPM=\ 6\:00 PM +CalendarDialogBox.Eight=08:00 +CalculationDialogBox.Start=\u958B\u59CB +Calendar.NightShift=\u591C\u73ED +Calendar.Nonworking=\u975E\u5DE5\u4F5C +Calendar.Standard=\u6A19\u6E96 +Calendar.Unmodified=\u672A\u7D93\u4FEE\u6539 +CalendarDialogBox.May=\u4E94\u6708 +CalendarDialogBox.June=6\u6708 +CalendarDialogBox.July=7\u6708 +# Calendar.WeekdayBitMaskFromSundayToSaturday does not need translation +Calendar.WeekdayBitMaskFromSundayToSaturday=0111110 +CalendarDialogBox.UserStartingYearForFVNumbering=\u4F7F\u7528\u8D77\u59CB\u5E74\u4EFD\u9032\u884CFV\u7DE8\u865F +CalendarDialogBox.TheseSettingsOnlyApplyToDuration=\u9019\u4E9B\u8A2D\u5B9A\u50C5\u9069\u7528\u65BC\u671F\u7A0B\u6642\u9593 +CalculationDialogBox.AndMoveStartOfRemaining=\u4E26\u5C07\u5269\u9918\u5DE5\u4F5C\u7684\u958B\u59CB\u6642\u9593\u5F8C\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.AndMoveEndOfCompleted=\u4E26\u5C07\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u524D\u63A8\u81F3\u72C0\u614B\u65E5\u671F +CalculationDialogBox.MoveEndOfCompleteParts=\u5C07\u72C0\u614B\u65E5\u671F\u4E4B\u5F8C\u7684\u5B8C\u6210\u5DE5\u4F5C\u7684\u7D50\u675F\u65E5\u671F\u79FB\u81F3\u72C0\u614B\u65E5\u671F +Calendar.Working=\u5DE5\u4F5C\u4E2D +Category.assignmentEntrySpreadsheet=\u4F5C\u696D\u8F38\u5165\u8A66\u7B97\u8868 +Category.assignmentSpreadsheet=\u4F5C\u696D\u8A66\u7B97\u8868 +Category.availabilitySpreadsheet=\u53EF\u7528\u6027\u8A66\u7B97\u8868 +Category.costRates=\u8CBB\u7528\u7387 +Category.dependencySpreadsheet=\u4F9D\u8CF4\u8A66\u7B97\u8868 +CalculationDialogBox.Automatic=\ \u81EA\u52D5 +CalculationDialogBox.Calculate=\u8A08\u7B97: +Category.distributionSpreadsheet=\u4F7F\u7528\u60C5\u51B5\u8A66\u7B97\u8868 +CalculationDialogBox.Calculation=\u8A08\u7B97\u65B9\u5F0F +CalculationDialogBox.EarnedValue=\u6399\u503C +Category.projectSpreadsheet=\u5C08\u6848\u8A66\u7B97\u8868 +Category.resourceAssignmentSpreadsheet=\u8CC7\u6E90\u5206\u914D\u8A66\u7B97\u8868 +Category.resourceSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.resourceSpreadsheet;resourceAssignmentSpreadsheet=\u8CC7\u6E90\u8A66\u7B97\u8868 +Category.taskAssignmentSpreadsheet=\u4EFB\u52D9\u5206\u914D\u8A66\u7B97\u8868 +Category.taskSpreadsheet=\u4EFB\u52D9\u8A66\u7B97\u8868 +Category.taskSpreadsheet;projectSpreadsheet=\u4EFB\u52D9\u548C\u5C08\u6848\u8A66\u7B97\u8868 +CalculationDialogBox.End=\u7D50\u675F +Category.timesheetSpreadsheet=\u5DE5\u6642\u8A66\u7B97\u8868 +ChangeWorkingTimeDialogBox.BasedOn=\u57FA\u65BC +ChangeWorkingTimeDialogBox.ChangeWorkingTime=\u66F4\u6539\u5DE5\u4F5C\u65E5\u66C6 +ChangeWorkingTimeDialogBox.For=\u70BA: +ChangeWorkingTimeDialogBox.From=\u5F9E: +ChangeWorkingTimeDialogBox.ModificationMessage=\u5C0D\u6B64\u884C\u4E8B\u66C6\u7684\u4FEE\u6539\u6703\u5F71\u97FF\u5230\u6240\u6709\u4F7F\u7528\u5B83\u7684\u5C08\u6848. +ChangeWorkingTimeDialogBox.New=\u65B0... +ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=\u975E\u9810\u8A2D\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NonWorkingTime=\u975E\u5DE5\u4F5C\u6642\u9593 +ChangeWorkingTimeDialogBox.NotEdiableMessage=\u53EA\u6709\u5728\u7DE8\u8F2F\u4E3B\u5C08\u6848\u6642\u6B64\u884C\u4E8B\u66C6\u624D\u53EF\u7DE8\u8F2F(\u8CC7\u6E90\u6C60). +ChangeWorkingTimeDialogBox.Options=\u9078\u9805... +ChangeWorkingTimeDialogBox.To=\ \u81F3\: +ChangeWorkingTimeDialogBox.UseDefault=\u4F7F\u7528\u9810\u8A2D\u503C +ChartLegend.ResourceFilter=\u8CC7\u6E90\u904E\u6FFE\u5668: +ClientRole.Inactive=- +ClientRole.ProjectManager=\u5C08\u6848\u7D93\u7406 +ClientRole.TeamMember=\u5718\u968A\u6210\u54E1 +ClientRole.TeamResource=\u5718\u968A\u8CC7\u6E90 +ColumnDialog.InsertColumn=\u63D2\u5165\u6B04 +Command.UpateProject=\u66F4\u65B0\u5C08\u6848 +Command.UpdateTasks=\u66F4\u65B0\u4EFB\u52D9 +ConstraintType.ALAP=\u8D8A\u665A\u8D8A\u597D +ConstraintType.ASAP=\u8D8A\u5FEB\u8D8A\u597D +ConstraintType.FNET=\u5118\u65E9\u5B8C\u6210 +ConstraintType.FNLT=\u5B8C\u6210\u4E0D\u665A\u65BC +ConstraintType.HAMM=Hammock +ConstraintType.MFO=\u5FC5\u9808\u5B8C\u6210 +ConstraintType.MSO=\u5FC5\u9808\u958B\u59CB +ConstraintType.SNET=\u958B\u59CB\u4E0D\u65E9\u65BC +ConstraintType.SNLT=\u958B\u59CB\u4E0D\u665A\u65BC +#The CostRateIndex letters do not need translation for latin alphabets +CostRateIndex.A=\u8A55\u50F9 A +CostRateIndex.B=\u8A55\u50F9 B +CostRateIndex.C=\u8A55\u50F9 C +CostRateIndex.D=\u8A55\u50F9D +CostRateIndex.E=\u8A55\u50F9 E +Date.NoEnd=\u7136\u5F8C +# NA = Not Applicable +Date.NoStart=NA +Date.Quarter1=Q +Date.Half1=H +Date.Quarter2=Qtr +Date.Half2=Half +DefaultFrameManager.Project=\u5C08\u6848 +DelegateTaskDialog.DelegateTask=\u59D4\u6D3E\u4EFB\u52D9 +#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example +DependencyType.FF=FF +DependencyType.FS=FS +DependencyType.SF=SF +DependencyType.SS=SS +DependencyType.longFF=\u5B8C\u6210\u5230\u5B8C\u6210(F-F) +DependencyType.longFS=\u5B8C\u6210\u5230\u958B\u59CB(F-S) +DependencyType.longSF=\u958B\u59CB\u5230\u5B8C\u6210(S-F) +DependencyType.longSS=\u958B\u59CB\u5230\u958B\u59CB(S-S) +EarnedValueCalculator.SPI=SPI +EarnedValueCalculator.CPI=CPI +EarnedValueCalculator.CSI=CSI +EarnedValueMethodType.PercentComplete=% \u5B8C\u6210 +EarnedValueMethodType.PhysicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u7387 +ExpenseType.CAPITALIZE=\u5927\u5BEB +ExpenseType.DIRECT=\u76F4\u63A5 +ExpenseType.EXPENSE=\u8CBB\u7528 +ExpenseType.INDIRECT=\u9593\u63A5 +ExpenseType.NONE=\u7121 +ExpenseType.OVERHEAD=\u7BA1\u7406\u8CBB +Field.accessControlPolicy=\u5C08\u6848\u5718\u968A +Field.accrueAt=\u61C9\u8A08 +Field.actualCost=\u5BE6\u969B\u8CBB\u7528 +Field.actualDuration=\u5BE6\u969B\u671F\u7A0B +Field.actualFinish=\u5BE6\u969B\u5B8C\u6210 +Field.actualFixedCost=\u5BE6\u969B\u56FA\u5B9A\u6210\u672C +Field.actualOvertimeCost=\u5BE6\u969B\u52A0\u73ED\u8CBB +Field.actualOvertimeWork=\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualOvertimeWorkProtected=\u53D7\u4FDD\u8B77\u7684\u5BE6\u969B\u52A0\u73ED\u5DE5\u4F5C +Field.actualStart=\u5BE6\u969B\u958B\u59CB +Field.actualWork=\u5BE6\u969B\u5DE5\u4F5C +Field.actualWorkProtected=\u53D7\u4FDD\u62A4\u7684\u5B9E\u9645\u5DE5\u4F5C +Field.acwp=ACWP +Field.assignedRate=\u5206\u914D\u7387 +Field.assignment=\u5206\u914D +Field.assignmentEntryAssigned=\u5DF2\u5206\u914D +Field.assignmentEntryName=\u59D3\u540D +Field.assignmentEntryRate=\u55AE\u4F4D +Field.assignmentProjectName=\u5C08\u6848 +Field.assignmentResourceId=\u8CC7\u6E90 ID +Field.assignmentResourceName=\u8CC7\u6E90 +Field.assignmentTaskId=\u4EFB\u52D9ID +Field.assignmentTaskName=\u4EFB\u52D9 +Field.assignmentUnits=\u5206\u914D\u55AE\u4F4D +Field.availableFrom=\u53EF\u5F9E +Field.availableTo=\u53EF\u7528\u65BC +Field.bac=BAC +Field.baseCalendar=\u57FA\u6E96\u884C\u4E8B\u66C6 +#the # will be replaced by a number or by nothing +Field.baseline#Cost=\u57FA\u6E96# \u6210\u672C +Field.baseline#Duration=\u57FA\u6E96# \u671F\u7A0B +Field.baseline#Finish=\u57FA\u6E96# \u5B8C\u6210 +Field.baseline#Start=\u57FA\u6E96# \u958B\u59CB +Field.baseline#Work=\u57FA\u6E96# \u5DE5\u4F5C +Field.bcwp=BCWP +Field.bcws=BCWS +Field.benefit=\u6548\u76CA +Field.bookingType=\u9810\u8A02\u985E\u578B +Field.budgetStatusIndicator=\u9810\u7B97\u72C0\u6CC1 +Field.cachedEnd=\u7D50\u675F +Field.cachedStart=\u958B\u59CB +Field.canLevel=\u53EF\u64AB\u5E73 +Field.code=\u7DE8\u78BC +Field.complete=\u5B8C\u6210 +Field.completeThrough=\u5B8C\u6210\u7D93\u904E +Field.completedThrough=\u5DF2\u5B8C\u6210 +Field.confirmed=\u5DF2\u78BA\u8A8D +Field.constraintDate=\u7D04\u675F\u65E5\u671F +Field.constraintType=\u7D04\u675F\u985E\u578B +Field.contact=\u806F\u7E6B +Field.cost=\u6210\u672C +Field.costPerUse=\u6BCF\u6B21\u4F7F\u7528\u6210\u672C +Field.costRateTable=\u6210\u672C\u7387\u8868 +Field.costVariance=\u6210\u672C\u5DEE\u7570 +Field.cpi=CPI +Field.created=\u5DF2\u5EFA\u7ACB +Field.creationDate=\u5275\u7ACB\u65E5\u671F +Field.critical=\u95DC\u9375 +Field.csi=CSI +Field.cumulativeCost=\u7D2F\u8A08\u6210\u672C +Field.cumulativePercentComplete=\u7D2F\u8A08\u5B8C\u6210\u767E\u5206\u6BD4 +FieldDialog.ResourceInformation=\u8CC7\u6E90\u4FE1\u606F +Field.cumulativeWork=\u7D2F\u8A08\u5DE5\u6642 +Field.currentDate=\u7576\u524D\u65E5\u671F +Field.customCost#=\u6210\u672C# +Field.customDate#=\u65E5\u671F# +Field.customDuration#=\u671F\u7A0B# +Field.customFinish#=\u5B8C\u6210# +Field.customFlag#=\u65D7\u6A19# +Field.customNumber#=\u865F\u78BC# +Field.customOutlineCode#=\u5927\u7DB1\u4EE3\u78BC# +Field.customStart#=\u958B\u59CB# +Field.customText#=\u6587\u5B57# +Field.cv=\u6210\u672C\u5DEE\u7570(CV) +Field.cvPercent=\u6210\u672C\u5DEE\u7570(CV)\u7387 +Field.deadline=\u6700\u5F8C\u671F\u9650 +Field.debugDependencyOrder=\u76F8\u4F9D\u9806\u5E8F +Field.delay=\u5206\u914D\u5EF6\u9072 +Field.delegatedTo=\u59D4\u6D3E\u7D66 +Field.dependencyDate=\u5F9E\u5C6C\u65E5\u671F +Field.dependencyStart=\u958B\u59CB\u76F8\u4F9D +Field.dependencyType=\u985E\u578B +Field.dirty=\u6C59\u67D3 +Field.duration=\u671F\u7A0B +Field.durationVariance=\u671F\u7A0B\u8B8A\u7570 +Field.eac=EAC +Field.earliestStartingTask=\u6700\u65E9\u958B\u59CB\u7684\u4EFB\u52D9 +Field.earlyFinish=\u63D0\u524D\u5B8C\u6210 +Field.earlyStart=\u63D0\u65E9\u958B\u59CB +Field.earnedValueMethod=\u6399\u503C\u6CD5 +Field.effectiveDate=\u6709\u6548\u65E5\u671F +Field.effortDriven=\u5DE5\u4F5C\u9A45\u52D5 +Field.elapsedDuration=\u6B77\u6642\u671F\u7A0B +Field.emailAddress=\u96FB\u5B50\u90F5\u4EF6\u5730\u5740 +Field.estimated=\u4F30\u8A08\u503C +Field.expectedDuration=\u9810\u671F\u671F\u7A0B +Field.expectedFinish=\u9810\u671F\u5B8C\u6210 +Field.expectedStart=\u9810\u8A08\u958B\u59CB\u6642\u9593 +Field.expenseType=\u8CBB\u7528\u985E\u578B +Field.externalId=\u5916\u90E8ID +Field.externalTask=\u5916\u90E8\u4EFB\u52D9 +Field.finish=\u5B8C\u6210 +Field.finishDate=\u5B8C\u6210 +Field.finishOffset=\u7D42\u9EDE\u504F\u79FB +Field.finishSlack=\u5B8C\u6210\u9B06\u5F1B +Field.finishVariance=\u5B8C\u6210\u8B8A\u7570 +Field.fixedCost=\u56FA\u5B9A\u6210\u672C +Field.fixedCostAccrual=\u56FA\u5B9A\u6210\u672C\u61C9\u8A08 +Field.forward=\u524D\u63A8\u6392\u7A0B +Field.freeSlack=\u81EA\u7531\u9B06\u5F1B +Field.ganttSnapshot=\u7518\u7279 +Field.generic=\u901A\u7528 +Field.group=\u7D44 +Field.groupBySummary=\u6309\u6458\u8981\u5206\u7D44 +Field.hideBar=\u96B1\u85CF\u6B04 +Field.hyperlink=\u8D85\u9023\u7D50 +Field.hyperlinkAddress=\u8D85\u93C8\u63A5\u7DB2\u5740 +Field.hyperlinkHref=Hyperlink Href +Field.hyperlinkSubAddress=\u8D85\u93C8\u63A5\u5B50\u7DB2\u5740 +# ID = \u8B58\u5225\u78BC +Field.id=ID +Field.ignoreResourceCalendar=\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6 +Field.inactive=\u4E0D\u6D3B\u8E8D +Field.indicators=\u6307\u6A19 +Field.initials=\u7E2E\u5BEB +Field.justModified=\u525B\u525B\u4FEE\u6539 +Field.lag=\u843D\u5F8C +Field.lastModificationDate=\u6700\u5F8C\u4FEE\u6539 +Field.lastTimesheetUpdate=\u6700\u8FD1\u7684\u6642\u9593\u8868\u66F4\u65B0 +Field.lateFinish=\u903E\u671F\u672A\u5B8C\u6210 +Field.lateStart=\u9072\u5230 +Field.latestFinishingTask=\u6700\u65B0\u5B8C\u6210\u7684\u4EFB\u52D9 +Field.levelAssignments=\u64AB\u5E73\u5206\u6D3E +Field.levelingCanSplit=\u64AB\u5E73\u53EF\u5206\u5272 +Field.levelingDelay=\u64AB\u5E73\u5EF6\u9072 +Field.linkedFields=\u93C8\u63A5\u5B57\u6BB5 +Field.manager=\u7D93\u7406 +Field.markTaskAsMilestone=\u4EE5\u91CC\u7A0B\u7891\u986F\u793A\u4EFB\u52D9 +Field.marked=\u5DF2\u6A19\u8A18 +Field.materialLabel=\u6750\u6599\u6A19\u7C64 +Field.maximumUnits=\u6700\u5927\u55AE\u4F4D +Field.milestone=\u91CC\u7A0B\u7891 +Field.name=\u59D3\u540D +Field.negativeSlack=\u8CA0\u9B06\u5F1B +Field.netPresentValue=\u6DE8\u73FE\u503C +Field.networkSnapshot=\u7DB2\u7D61 +Field.notes=\u7B46\u8A18 +Field.objects=\u5C0D\u8C61 +Field.optimisticDuration=\u6A02\u89C0\u6301\u7E8C\u671F\u7A0B +Field.optimisticFinish=\u6A02\u89C0\u5B8C\u6210 +Field.optimisticStart=\u6A02\u89C0\u958B\u59CB +Field.outlineLevel=\u5927\u7DB1\u7D1A\u5225 +Field.outlineNumber=\u5927\u7DB1\u7DE8\u865F +Field.overallocated=\u904E\u5EA6\u5206\u914D +Field.overallocation=\u904E\u5EA6\u5206\u914D +Field.overtimeCost=\u52A0\u73ED\u8CBB +Field.overtimeRate=\u52A0\u73ED\u7387 +Field.overtimeWork=\u52A0\u73ED +Field.parentId#=\u7236 Id# +Field.partner=\u4F19\u4F34 +Field.peak=\u5CF0\u503C +Field.peakUnits=\u5CF0\u503C\u55AE\u4F4D +Field.pendingTimesheetUpdate=\u9700\u8981\u66F4\u65B0\u6642\u9593\u8868 +Field.percentAllocation=\u767E\u5206\u6BD4\u5206\u914D +Field.percentComplete=\u5B8C\u6210\u767E\u5206\u6BD4 +Field.percentWorkComplete=\u5DE5\u4F5C\u5B8C\u6210\u767E\u5206\u6BD4 +Field.pessimisticDuration=\u60B2\u89C0\u6301\u7E8C\u671F\u7A0B +Field.pessimisticFinish=\u60B2\u89C0\u5B8C\u6210 +Field.pessimisticStart=\u60B2\u89C0\u958B\u59CB +Field.phonetics=\u8A9E\u97F3\u5B78 +Field.physicalPercentComplete=\u5BE6\u969B\u5B8C\u6210\u767E\u5206\u6BD4 +Field.predecessorId=\u524D\u4EFB ID +Field.predecessorName=\u524D\u4EFB\u59D3\u540D +Field.predecessors=\u524D\u8F29 +Field.preleveledFinish=\u5168\u5C08\u6848\u5B8C\u6210 +Field.preleveledStart=\u5168\u5C08\u6848\u958B\u59CB +Field.priority=\u512A\u5148\u6B0A +Field.project=\u5C08\u6848 +Field.projectDivision=\u90E8\u9580 +Field.projectGroup=\u7D44 +Field.projectId=\u5C08\u6848 ID +Field.projectStatus=\u5C08\u6848\u72C0\u614B +Field.projectType=\u5C08\u6848\u985E\u578B +Field.rate=\u55AE\u4F4D +Field.rbsCode=RBS +Field.readOnlyDuration=\u6301\u7E8C\u671F\u7A0B +Field.recurring=\u91CD\u8907\u767C\u751F +Field.referringSubprojectTaskDependencyDate=\u5B50\u5C08\u6848\u4F9D\u8CF4\u6027\u65E5\u671F +Field.regularWork=\u6B63\u5E38\u5DE5\u4F5C +Field.remainingAvailability=\u5269\u9918\u53EF\u7528\u7387 +Field.remainingCost=\u5269\u9918\u6210\u672C +Field.remainingDuration=\u5269\u9918\u671F\u7A0B +Field.remainingOvertimeCost=\u5269\u9918\u52A0\u73ED\u8CBB +Field.remainingOvertimeWork=\u5269\u9918\u7684\u52A0\u73ED\u5DE5\u4F5C +FieldDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Field.remainingWork=\u5269\u9918\u5DE5\u4F5C +# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded +Field.requestDemandType=R/D +Field.resourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +Field.resourceGroup=\u8CC7\u6E90\u7D44 +Field.resourceId=\u8CC7\u6E90 ID +Field.resourceInitials=\u8CC7\u6E90\u521D\u4F7F\u7DE8\u78BC +Field.resourceNames=\u8CC7\u6E90\u540D\u7A31 +Field.resourcePhonetics=\u8CC7\u6E90\u8A9E\u97F3 +Field.resourcePool=\u8CC7\u6E90\u6C60 +Field.resourceType=\u985E\u578B +Field.responsePending=\u5F85\u8655\u7406 +Field.resume=\u6062\u5FA9 +Field.risk=\u98A8\u96AA +Field.rollup=\u6372\u8D77 +Field.scheduleStatusIndicator=\u8A08\u756B\u8868\u72C0\u614B +Field.schedulingMethod=\u8ABF\u5EA6\u65B9\u6CD5 +Field.showProjectResourcesOnly=\u50C5\u986F\u793A\u8F49\u6848\u8A08\u5283\u8CC7\u6E90 +Field.spi=SPI +Field.standardRate=\u6A19\u6E96\u8CBB\u7387 +Field.start=\u958B\u59CB +Field.startDate=\u958B\u59CB +Field.startOffset=\u958B\u59CB\u504F\u79FB +Field.startSlack=\u958B\u59CB\u9B06\u5F1B +Field.startVariance=\u958B\u59CB\u5DEE\u7570 +Field.status=\u72C0\u614B +Field.statusDate=\u72C0\u614B\u65E5\u671F +Field.statusIndicator=\u7E3D\u9AD4\u72C0\u6CC1 +Field.statusTaskIndicator=\u72C0\u614B\u4EFB\u52D9\u6307\u793A\u5668 +Field.stop=\u505C\u6B62 +Field.subprojectFile=\u5B50\u5C08\u6848\u6A94\u6848 +Field.subprojectOf=\u5B50\u5C08\u6848 +Field.subprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.successorId=\u63A5\u73ED\u4EBA ID +Field.successorName=\u63A5\u73ED\u4EBA +Field.successors=\u5F8C\u7E7C\u8005 +Field.summary=\u6458\u8981 +Field.summaryProgress=\u6458\u8981\u9032\u5EA6 +Field.suprojectReadOnly=\u5B50\u5C08\u6848\u552F\u8B80 +Field.sv=SV +Field.svPercent=SV\u767E\u5206\u6BD4 +Field.taskCalendar=\u4EFB\u52D9\u884C\u4E8B\u66C6 +Field.taskId=\u4EFB\u52D9 ID +Field.taskName=\u4EFB\u52D9\u540D\u7A31 +Field.taskOutlineNumber=\u4EFB\u52D9\u5927\u7DB1\u7DE8\u865F +Field.taskSummaryName=\u4EFB\u52D9\u6458\u8981\u540D\u7A31 +Field.taskType=\u985E\u578B +Field.tcpi=TCPI +Field.teamStatusPending=\u5718\u968A\u72C0\u614B\u5F85\u5B9A +Field.textAbove=\u4E0A\u65B9\u6587\u5B57 +Field.timesheetFinish=\u6642\u9593\u8868\u5B8C\u6210 +Field.timesheetStart=\u6642\u9593\u8868\u958B\u59CB +FieldDialog.document=\u6587\u4EF6: +Field.timesheetStatus=\u6642\u9593\u8868\u72C0\u614B +Field.timesheetStatusName=\u72C0\u614B +Field.totalSlack=\u6020\u5DE5\u7E3D\u6578 +Field.totalSlackEnd=\u6020\u5DE5\u7E3D\u6578\u7D50\u675F +Field.totalSlackStart=\u6020\u5DE5\u7E3D\u6578\u958B\u59CB +Field.uniqueId=\u552F\u4E00\u8EAB\u4EFD +Field.uniqueIdPredecessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u524D\u8EAB +Field.uniqueIdSuccessors=\u552F\u4E00\u8EAB\u4EFD\u7684\u5F8C\u7E7C\u8005 +Field.unitAvailability=\u55AE\u4F4D\u53EF\u7528\u6027 +Field.updateNeeded=\u9700\u8981\u66F4\u65B0 +Field.userAccount=\u4F7F\u7528\u8005\u5E33\u865F +Field.userRole=\u5C08\u6848\u89D2\u8272 +Field.vac=VAC +Field.wbs=WBS +Field.wbsParent=\u662F\u5426\u7236WBS +Field.wbsParentName=\u7236WBS +Field.wbsPredecessors=WBS \u524D\u8EAB +Field.wbsSuccessors=WBS\u5F8C\u7E7C\u8005 +Field.work=\u5DE5\u4F5C +Field.workAvailability=\u5DE5\u4F5C\u53EF\u7528\u6027 +Field.workContour=\u5DE5\u4F5C\u8F2A\u5ED3 +Field.workVariance=\u5DE5\u4F5C\u5DEE\u7570 +File.microsoft=Microsoft Project +File.microsoftXML=Microsoft Project XML +File.planner=Gnome Planner +File.projects=Projects +File.projity=ProjectLibre +Filter.CompletedTasks=\u5DF2\u5B8C\u6210\u4EFB\u52D9 +Filter.CostOverbudgetTasks=\u9810\u7B97\u8D85\u652F\u4EFB\u52D9 +Filter.CriticalTasks=\u95DC\u9375\u4EFB\u52D9 +Filter.DateRange=\u65E5\u671F\u7BC4\u570D +Filter.Flag1=\u65D7\u6A19 1 +Filter.Flag2=\u65D7\u6A19 2 +Filter.Flag3=\u65D7\u6A19 3 +Filter.InProgressAssignments=\u9032\u884C\u4E2D\u7684\u4F5C\u696D +Filter.InProgressTasks=\u9032\u884C\u4E2D\u7684\u4EFB\u52D9 +Filter.IncompleteTasks=\u672A\u5B8C\u6210\u7684\u4EFB\u52D9 +Filter.LateOrOverbudgetTasks=\u5EF6\u9072/\u8D85\u9810\u7B97\u4EFB\u52D9 +Filter.Milestones=\u5927\u4E8B\u8A18 +Filter.MyDelegatedTasks=\u6211\u7684\u59D4\u6D3E\u4EFB\u52D9 +Filter.MyTasks=\u6211\u7684\u4EFB\u52D9 +Filter.None=\u7121\u904E\u6FFE\u5668 +Filter.NormalTasks=\u6B63\u5E38\u4EFB\u52D9 +Filter.ResourcesMaterial=\u7269\u8CEA\u8CC7\u6E90 +Filter.ResourcesMe=\u6211 +Filter.ResourcesWork=\u5DE5\u4F5C\u8CC7\u6E90 +Filter.SlippedTasks=\u5DF2\u6ED1\u52D5\u4EFB\u52D9 +Filter.SummaryTasks=\u6458\u8981\u4EFB\u52D9 +Filter.TasksWithEstimatedDurations=\u4F30\u8A08\u671F\u7A0B\u7684\u4EFB\u52D9... +Filter.UnstartedAssignments=\u672A\u958B\u59CB\u7684\u5206\u914D +FixedDuration.FixedDuration=\u56FA\u5B9A\u671F\u7A0B +Filter.UnstartedTasks=\u672A\u958B\u59CB\u7684\u4EFB\u52D9 +Filter.WorkComplete=\u5DE5\u4F5C\u5B8C\u6210 +FixedWork.FixedWork=\u56FA\u5B9A\u5DE5\u4F5C +FixedUnits.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +FixedDuration.TheDurationMessage=\u6B64\u5DE5\u4F5C\u4E2D\u7684\u56FA\u5B9A\u671F\u7A0B\u4EFB\u52D9\u5FC5\u9808\u66F4\u6539\u5176\u671F\u7A0B +FooterRenderer.page=\ - \u9801 +Gantt.Popup.annotationStylesMenu=\u8A3B\u91CB\u6A23\u5F0F +Gantt.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +Gantt.Popup.showAssignments=\u986F\u793A\u4F5C\u696D +Gantt.Popup.showCalendar=\u986F\u793A\u884C\u4E8B\u66C6 +Gantt.Popup.showRows=\u986F\u793A\u884C +Gantt.Popup.splitMode=\u5206\u5272 +Gantt.tooltip.Assignment=\u4F5C\u696D +Gantt.tooltip.Resource=\u8CC7\u6E90 +Gantt.tooltip.Task=\u4EFB\u52D9 +Gantt.tooltip.from=\u4F86\u81EA +Gantt.tooltip.lag=\u6EEF\u5F8C +Gantt.tooltip.link=\u93C8\u63A5 +Gantt.tooltip.to=\u81F3 +GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u5728\u53E6\u4E00\u500B\u5408\u4F75\u5C08\u6848\u4E2D\u4F5C\u70BA\u5B50\u5C08\u6848\u958B\u555F +GraphicManager.SelectedProjectAlreadySubproject=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u662F\u6B64\u5408\u4F75\u5C08\u6848\u4E2D\u7684\u5B50\u9805\u76EE +Grouper.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Grouper.CompleteIncomplete=\u5B8C\u6210/\u672A\u5B8C\u6210 +Grouper.Critical=\u95DC\u9375 +Grouper.CriticalThenDuration=\u95DC\u9375\u7136\u5F8C\u671F\u7A0B +Grouper.Delegated=\u59D4\u8A17\u7D66 +Grouper.Duration=\u671F\u7A0B +Grouper.None=\u7121\u7FA4\u9AD4 +Grouper.ResourceGroup=\u7D44 +Grouper.ResourceType=\u985E\u578B +HelpDialog.About=\u8AAA\u660E +HelpDialog.GoToOnlineHelp=\u8F49\u5230\u7DDA\u4E0A\u8AAA\u660E +HelpDialog.ShowLicense=\u986F\u793A\u4F7F\u7528\u6388\u6B0A +HelpDialog.ShowTipsOfTheDay=\u986F\u793A\u7576\u5929\u7684\u63D0\u793A +HelpDialog.WatchHowToVideos=\u89C0\u770B\u5165\u9580\u5F71\u7247 +HyperLinkToolTip.SeeOnlineDemo=">\u89C0\u770B\u7DDA\u4E0A\u5C55\u793A +HyperLinkToolTip.SeeOnlineHelp=">\u89C0\u770B\u7DDA\u4E0A\u8AAA\u660E +InformationDialog.AssignResources=\u5206\u914D\u8CC7\u6E90 +InformationDialog.ChangeWorkingTime=\u8B8A\u66F4\u5DE5\u4F5C\u6642\u9593 +License.Inactive =\u7121\u6548 +License.LiteUser=\u7CBE\u7C21\u7248\u4F7F\u7528\u8005 +License.PowerUser=\u8D85\u7D1A\u4F7F\u7528\u8005 +LicenseDialog.CouldNotLoadLater=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 +LicenseDialog.CouldNotLoadExiting=\u7121\u6CD5\u52A0\u8F09\u4F7F\u7528\u6388\u6B0A\u3002 \u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002\u7A0B\u5F0F\u5C07\u95DC\u9589\u3002 +LicenseDialog.Email=\u8ACB\u8A3B\u518A\u60A8\u7684ProjectLibre\u526F\u672C\uFF0C\u4EE5\u4FBF\u96A8\u6642\u4E86\u89E3\u6709\u95DC\u8A72\u7522\u54C1\u7684\u6700\u65B0\u72C0\u6CC1\u548C\u66F4\u65B0\u3002 +LicenseDialog.EmailLabel=\u96FB\u5B50\u90F5\u4EF6\u4FE1\u7BB1 +LicenseDialog.License=\u6388\u6B0A\u66F8 +LicenseDialog.ThirdParty=\u7B2C\u4E09\u65B9 +LicenseOption.Administrator=\u7BA1\u7406\u54E1 +LicenseOption.External=\u5408\u4F5C\u5925\u4F34/\u5BA2\u6236 +LicenseOption.Inactive=- +LocalFileImporter.Exporting=\u51FA\u53E3... +LocalFileImporter.Importing=\u9032\u53E3... +LoginDialog.Login=\u767B\u9304\uFF1A +LoginDialog.Password=\u5BC6\u78BC\uFF1A +LoginDialog.RememberMe=\u81EA\u52D5\u767B\u9304 +LoginDialog.UseOfficeLook=\u4F7F\u7528 Office\u6A23\u5F0F +LookupDialog.EnterPartOfTheName=\u8F38\u5165\u60A8\u8981\u5C0B\u627E\u7684\u540D\u7A31\u7684\u4E00\u90E8\u5206 +LookupDialog.Find=\u5C0B\u627E +LookupDialog.LookupAnObject=\u5C0B\u627E\u5C0D\u8C61 +LookupDialog.NoMatchesFound=\u627E\u4E0D\u5230\u5339\u914D\u9805\u76EE +LookupDialog.Results=\u7D50\u679C +LookupDialog.Type=\u985E\u578B\uFF1A +LookupDialog.UnableToContactServer=\u7121\u6CD5\u9023\u63A5\u670D\u52D9\u5668\u3002 +LookupField.LookupAValue=\u5C0B\u627E\u503C +Message.ImportError=\u7121\u6CD5\u8B80\u53D6\u6587\u4EF6 +Message.allowDeleteActuals=\u9078\u5B9A\u4E4B\u5C08\u6848\u5DF2\u7D93\u6709\u5BE6\u969B\u8CC7\u6599\uFF0C\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u55CE? +Message.allowDistrbutedStartBeforeProjectStart=\u8A72\u503C\u5C07\u5C0E\u81F4\u4EFB\u52D9\u5728\u5C08\u6848\u555F\u52D5\u4E4B\u524D\u555F\u52D5\u3002\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowDistrbutedStartBeforeTaskStart=\u8A72\u503C\u65E9\u65BC\u5C08\u6848\u958B\u59CB\u671F\u7A0B\uFF0C\u60A8\u78BA\u5B9A\u55CE\uFF1F +Message.allowTaskStartBeforeProjectStart=\u8A72\u4EFB\u52D9\u662F\u5426\u53EF\u5728\u8F49\u6848\u958B\u59CB\u524D\u5C31\u958B\u59CB\uFF1F +Message.alreadyParentChildHierarchy=\u5DF2\u5B58\u5728\u7236/\u5B50\u95DC\u4FC2Message.badTimeFormat=\u6642\u9593\u683C\u5F0F\u932F\u8AA4 +Message.badTimeIntervals=\u4E0D\u826F\u6642\u9593\u9593\u9694 +Message.cannotEnterUnits=\u60A8\u4E0D\u80FD\u5728\u6B64\u6B04\u4F4D\u4E2D\u8F38\u5165\u55AE\u4F4D +Message.cannotLinkToSummary=\u60A8\u4E0D\u80FD\u5C07\u4E00\u500B\u6458\u8981\u4EFB\u52D9\u548C\u5B83\u7684\u4E00\u500B\u5B50\u4EFB\u52D9\u9023\u63A5\u8D77\u4F86\u3002\u5982\u679C\u60A8\u60F3\u5C07\u5B83\u5011\u9023\u63A5\u8D77\u4F86\uFF0C\u8ACB\u5C07\u5B50\u4EFB\u52D9\u79FB\u51FA\uFF0C\u4F7F\u5176\u4E0D\u518D\u5728\u6458\u8981\u4EFB\u52D9\u4E4B\u4E0B\uFF0C\u5F9E\u800C\u522A\u9664\u5C64\u6B21\u7D50\u69CB\u3002 +Message.cantEmptySpreadsheet=\u8A66\u7B97\u8868\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u6B04\u4F4D\u3002 +Message.cantLinkToClosedSubproject=\u5B50\u5C08\u6848\u5FC5\u9808\u662F\u958B\u555F\u548C\u53EF\u5BEB\u5165\uFF0C\u4F7F\u53EF\u6210\u70BA\u93C8\u63A5\u7684\u76EE\u6A19\uFF0C\u56E0\u70BA\u5B83\u6703\u5F71\u97FF\u5B50\u5C08\u6848\u7684\u958B\u59CB\u65E5\u671F\u3002 +Message.cantLinkToExternal=\u60A8\u7121\u6CD5\u93C8\u63A5\u5230\u5916\u90E8\u4EFB\u52D9\u3002 +Message.cantLinkToSelf=\u60A8\u4E0D\u80FD\u5C07\u4EFB\u52D9\u93C8\u63A5\u5230\u81EA\u9AD4\u3002 +Message.circularDependency=\u8A72\u93C8\u63A5\u7121\u6548\uFF0C\u56E0\u70BA\u5B83\u6703\u8207\u5176\u4ED6\u4EFB\u52D9\u5EFA\u7ACB\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 +Message.confirmDeleteRows=\u60A8\u78BA\u5B9A\u8981\u522A\u9664\u9019\u4E9B\u884C\u55CE\uFF1F +# {0} is the name of the predecessor task, {1} is the name of the successor task +Message.crossProjectCircularDependency.mf=\u5F9E{0}\u5230{1}\u7684\u8DE8\u5C08\u6848\u93C8\u63A5\u5C07\u5C0E\u81F4\u8207\u5176\u4ED6\u4EFB\u52D9\u7684\u5FAA\u74B0\u76F8\u4F9D\u95DC\u4FC2\u3002 \u5B83\u5DF2\u7981\u7528\u4E26\u4EE5\u865B\u7DDA\u6A19\u8A18\u3002 +Message.errorCalendarMustHaveWorkingDay=\u884C\u4E8B\u66C6\u5FC5\u9808\u81F3\u5C11\u6709\u4E00\u500B\u9810\u8A2D\u5DE5\u4F5C\u65E5\u3002 +# {1,number,percent} is the maximum percentage value that has been exceeded +Message.errorPercentRangeMaximum.mf=\u8A72\u503C\u4E0D\u5F97\u8D85\u904E {1,number,percent}. +# {0,number,percent} is the minimum percentage value that has been exceeded +Message.errorPercentRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u70BA {0,number,percent}. +# {0,number} is the range minimum, {1,number} is the range maximum +Message.errorRange.mf=\u8A72\u503C\u5FC5\u9808\u5728{0\uFF0Cnumber}\u5230{1\uFF0Cnumber}\u4E4B\u9593\u3002 +# {1,number} is the maximum value that has been exceeded +Message.errorRangeMaximum.mf=\u8A72\u503C\u4E0D\u80FD\u8D85\u904E{1\uFF0Cnumber}. +# {0,number} is the minimum value that has been exceeded +Message.errorRangeMinimum.mf=\u8A72\u503C\u5FC5\u9808\u81F3\u5C11\u662F{0,number}\u3002 +Message.importCircularLink=\u7531\u65BC\u5C08\u6848\u4E2D\u5305\u542B\u8FF4\u5708\u7684\u524D\u7F6E\u95DC\u4FC2\uFF0C\u6240\u4EE5\u7121\u6CD5\u5C0E\u5165\u3002 +Message.invalidAssignments=\u60A8\u5FC5\u9808\u5F9E\u8CC7\u6E90\u6C60\u4E2D\u8F38\u5165\u73FE\u6709\u8CC7\u6E90\uFF0C\u4E26\u7528\u6E05\u55AE\u5206\u9694\u7B26\u865F"\uFF1B "\u5206\u9694\u3002 \u5982\u679C\u60A8\u5E0C\u671B\u5206\u914D\u7684\u8CC7\u6E90\u5C11\u65BC100%\uFF0C\u60A8\u53EF\u4EE5\u5728\u62EC\u865F\u5167\u6DFB\u52A0\u4E00\u500B\u767E\u5206\u6BD4\uFF1AClark Kent[50%];Lois Lane\u3002 +Message.invalidChoice=\u7121\u6548\u7684\u9078\u64C7 +Message.invalidCost=\u7121\u6548\u6210\u672C\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u6210\u672C\u3002\u6210\u672C\u61C9\u8A72\u7528\u6578\u5B57\u8868\u793A\u3002\u8CA8\u5E63\u7B26\u865F\u662F\u53EF\u9078\u7684\u3002\u7B26\u865F\u70BA\u60A8\u7684\u7CFB\u7D71\u9810\u8A2D\u503C\u3002 +Message.invalidDate=\u7121\u6548\u65E5\u671F\n \u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u65E5\u671F\uFF0C\u6216\u8005\u4E0D\u5728\u65E5\u671F\u7BC4\u570D\u5167\uFF0C\u53731970\u5E741\u67081\u65E5\u52302049\u5E7412\u670831\u65E5\u3002\n\u65E5\u671F\u683C\u5F0F\u662F\u60A8\u7CFB\u7D71\u7684\u65E5\u671F\u683C\u5F0F\u3002 \u4F8B\u5982\uFF1A06\u5E743\u670812\u65E5\u62162006\u5E743\u67083\u65E5\u3002 +# {0} is either "predecessor" or "successor" +Message.invalidDependency.mf=\u7121\u6548\u7684{0}.\n\u8ACB\u4F7F\u7528\u6709\u6548\u7684\u4EFB\u52D9ID\u865F.\n\u00B7 {0}\u8CC7\u8A0A\u8868\u793A\u70BA\uFF1A{0}ID\u865F\uFF0C\u76F8\u4F9D\u6027\uFF0C\u4EE5\u53CA\u8D85\u524D\u6216\u6EEF\u5F8C\u6642\u9593.\n\u00B7\u4F60\u4E5F\u53EF\u4EE5\u4F7F\u7528\u4EFB\u52D9\u8CC7\u8A0A\u5C0D\u8A71\u6846\u3002 +Message.invalidDuration=\u7121\u6548\u7684\u671F\u7A0B\n\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u671F\u7A0B\u3002\n\u8ACB\u5617\u8A66\u4E00\u500B\u503C\uFF0C\u598224\u5C0F\u65F6\uFF0824h\uFF09\u30013\u5929\uFF083d\uFF09\u62169\u5929\uFF089ed\uFF09\u3002 +Message.invalidInput=\u8A72\u503C\u7121\u6548\u3002 +Message.invalidIntersection=\u7D50\u679C\u5DE5\u4F5C\u6642\u9593\u7121\u6548\n\n\u6709\u4E00\u500B\u8207\u5176\u8CC7\u6E90\u884C\u4E8B\u66C6\u76F8\u4EA4\u7684\u4EFB\u52D9\uFF0C\u7121\u8DB3\u5920\u5DE5\u4F5C\u6642\u9593\u4F86\u57F7\u884C\u4EFB\u4F55\u5DE5\u4F5C\u3002\n\u8A72\u4EFB\u52D9\u5C07\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u3002\n\u8981\u89E3\u6C7A\u6B64\u554F\u984C\uFF0C\u60A8\u53EF\u4EE5\u66F4\u6539\u4EFB\u52D9\u6216\u8CC7\u6E90\u884C\u4E8B\u66C6\uFF0C\u6216\u70BA\u4EFB\u52D9\u9078\u64C7\u201C\u5FFD\u7565\u8CC7\u6E90\u884C\u4E8B\u66C6\u201D\u9078\u9805\u3002 Message.invalidRate =\u9019\u4E0D\u662F\u6709\u6548\u7684\u8CBB\u7387\u3002\n\u5C0D\u65BC\u201C\u5DE5\u4F5C\u201D\uFF08\u975E\u91CD\u8981\uFF09\u8CC7\u6E90\uFF0C\u8ACB\u8F38\u5165\u8CBB\u7387\u91D1\u984D\uFF0C\u5F8C\u8DDF\u659C\u6760\uFF08/\uFF09\uFF0C\u7136\u5F8C\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"100/h".\n\u5C0D\u65BC\u7269\u6599\u8CC7\u6E90\uFF0C\u9375\u5165\u4E0D\u5E36\u659C\u7DDA\u548C\u6642\u9593\u9031\u671F\u7684\u8CBB\u7387\u91D1\u984D\n\u4F8B\u5982\uFF0C"10"\u3002 \u5982\u679C\u60A8\u7684\u7269\u6599\u6A19\u7C64\u70BA\u201C\u6876\u201D\uFF0C\u5247\u8868\u793A\u70BA\u201C $ 10/\u6876\u201D\u3002 +Message.invaliidUnits=\u9019\u4E0D\u662F\u4E00\u500B\u6709\u6548\u7684\u55AE\u4F4D\u503C\n\n\u5C0D\u65BC\u5DE5\u4F5C\uFF08\u975E\u7269\u8CEA\uFF09\u8CC7\u6E90\uFF0C\u8F38\u5165\u4E00\u500B\u6578\u5B57\u3002\n\n\u5C0D\u65BC\u56FA\u5B9A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8ACB\u55AE\u7368\u8F38\u5165\u55AE\u4F4D\u503C\u3002 \u4F8B\u5982\uFF0C"10 "\u8868\u793A "10\u6876"\uFF0C\u5982\u679C\u4F60\u7684\u6750\u6599\u6A19\u7C64\u662F "\u6876"\u7684\u8A71\u3002\n\n\u5C0D\u65BC\u4E00\u500B\u53EF\u8B8A\u7684\u7269\u6599\u8CC7\u6E90\u914D\u7F6E\uFF0C\u8F38\u5165\u55AE\u4F4D\u503C\uFF0C\u7136\u5F8C\u8F38\u5165\u659C\u7DDA(/)\uFF0C\u518D\u8F38\u5165\u6642\u9593\u9031\u671F\u7684\u7E2E\u5BEB\u3002 \u4F8B\u5982\uFF0C"10/M "\u8868\u793A "\u6BCF\u670812\u6876"\u3002 +Message.notAResource=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u8CC7\u6E90 +Message.notATask=\u6240\u9078\u5143\u7D20\u4E0D\u662F\u4EFB\u52D9 +Message.onlyReplaceOneResourceAtATime=\u60A8\u4E00\u6B21\u50C5\u80FD\u66FF\u63DB\u4E00\u500B\u8CC7\u6E90\u3002 +Message.onlySelectOneElement=\u6BCF\u6B21\u50C5\u80FD\u9078\u64C7\u4E00\u500B\u5143\u7D20\u3002 +Message.parentConstraintType=\u7236\u7D1A\u4EFB\u52D9\u53EA\u80FD\u662F\u5176\u4E2D\u4E4B\u4E00\u3002"\u5118\u5FEB"\uFF0C"\u4E0D\u65E9\u65BC\u958B\u59CB "\u6216 "\u4E0D\u665A\u65BC\u5B8C\u6210"\u3002\u5982\u679C\u60A8\u4F7F\u7528\u53CD\u5411\u8ABF\u5EA6\uFF0C\u90A3\u9EBC "\u76E1\u53EF\u80FD\u665A "\u662F\u4E00\u500B\u9078\u9805\uFF0C\u800C\u4E0D\u662F "\u76E1\u53EF\u80FD\u5FEB"\u3002 +Message.parentSuccessorCannotHaveFinishLink=\u7236\u4EFB\u52D9\u7684\u524D\u7F6E\u4EFB\u52D9\u53EA\u80FD\u662FFinish-Start\u6216Start-Start\u985E\u578B\u3002 +Message.projectAlreadyExists=\u5C08\u6848\u5DF2\u5B58\u5728\u3002\u662F\u5426\u53D6\u4EE3? +Message.projectMustHaveName=\u5C08\u6848\u5FC5\u9808\u6709\u4E00\u500B\u540D\u5B57\u3002 +#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions +Message.renameProject1=\u5C08\u6848 " +Message.renameProject2=" \u5DF2\u7D93\u5B58\u5728\u65BC\u4F3A\u670D\u5668\u4E0A\u3002\u8ACB\u9078\u64C7\u5176\u4ED6\u540D\u7A31\u3002 +Message.saveProjectAs1=\u5132\u5B58\u5C08\u6848 " +Message.saveProjectAs2=" \u4F5C\u70BA +Message.saveProjectBeforeClosing1=\u60A8\u662F\u5426\u8981\u5C07\u66F4\u6539\u5132\u5B58\u5230 " +Message.saveProjectBeforeClosing2=" ? +Message.subprojectCut=\u5B50\u5C08\u6848\u5C07\u8F49\u63DB\u70BA\u6B63\u5E38\u4EFB\u52D9\u3002\u6B64\u64CD\u4F5C\u7121\u6CD5\u5FA9\u539F\u3002\u7E7C\u7E8C\uFF1F Message.synchronizeResources=\u8207\u4F3A\u670D\u5668\u540C\u6B65\u8CC7\u6E90\uFF1F +Message.tooManyResourcesSelectedToList.mf={0,number}\u5DF2\u9078\u53D6\u8CC7\u6E90 selected (\u592A\u591A\uFF0C\u7121\u6CD5\u5217\u51FA) +Message.tooManyTasksSelectedToList.mf={0,number}\u500B\u5DF2\u9078\u53D6\u7684\u4EFB\u52D9 (\u592A\u591A\u4EFB\u52D9\u7121\u6CD5\u5217\u51FA) +MicrosoftImporter.ErrorImportingXML=\u7121\u6CD5\u5C0E\u5165XML\u6587\u4EF6\u3002 \u50C5\u80FD\u5C0E\u5165\u4F7F\u7528MS Project\u6216Planner\u5275\u5EFA\u4E4BXML\u6587\u4EF6\u3002 +MicrosoftImporter.ImportWithSubprojects=\u8A72\u5C08\u6848\u5305\u542B\u5B50\u5C08\u6848\u3002 \u9019\u4E9B\u5B50\u5C08\u6848\u9700\u4EE5\u624B\u52D5\u5C0E\u5165\u3002 \u5B83\u5011\u6240\u5C0D\u61C9\u7684\u4EFB\u52D9\u70BA\uFF1A +MicrosoftImporter.Importing=\u9032\u53E3... +MicrosoftImporter.PrepareResources=\u6E96\u5099\u8CC7\u6E90 +Network.Popup.barStylesMenu=\u6A6B\u689D\u6A23\u5F0F +NewBaseCalendarDialog.CreateACopyOfCalendar=\u88FD\u4F5C\u4E00\u4EFD\u884C\u4E8B\u66C6\u526F\u672C +NewBaseCalendarDialog.CreateANewBaseCalendar=\u5EFA\u7ACB\u4E00\u500B\u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +NewBaseCalendarDialog.Name=\u540D\u7A31 +NewBaseCalendarDialog.NewBaseCalendar=\ \u65B0\u7684\u57FA\u6E96\u884C\u4E8B\u66C6 +Open_Text.ApplicationTitle=ProjectLibre +OpenProjectDialog.LockedBy=\u9396\u5B9A +Open_Text.ShortTitle=ProjectLibre +Open_Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +OpenProjectDialog.CreationDate=\u5EFA\u7ACB\u65E5\u671F +OpenProjectDialog.ModificationDate=\u4FEE\u6539\u65E5\u671F +OpenProjectDialog.Name=\u540D\u7A31 +Open_Title.ProjityError=ProjectLibre \u932F\u8AA4 +Open_Title.ProjityWarning=ProjectLibre \u8B66\u544A +PageSetupDialog.Margins=\u908A\u754C +PageSetupDialog.Margins.Left=\u5DE6 (mm) +PageSetupDialog.Margins.Right=\u53F3(mm) +PageSetupDialog.Margins.Top=\u4E0A (mm) +PageSetupDialog.Margins.Bottom=\u4E0B (mm) +PageSetupDialog.Orientation=\u65B9\u5411 +PageSetupDialog.Orientation.Landscape=\u6A6B +PageSetupDialog.Orientation.Portrait=\u76F4 +PageSetupDialog.Orientation.ReverseLandscape=\u6C34\u5E73\u7FFB\u8F49 +PageSetupDialog.Page=\u9801 +PageSetupDialog.Paper=\u7D19 +PageSetupDialog.PaperFormat.Custom=\u81EA\u8A02 +PageSetupDialog.PaperSize=\u7D19\u5F35\u5C3A\u5BF8 +PageSetupDialog.PaperSizeSettings.Custom=\u81EA\u5B9A\u7FA9\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.Custom.Width=\u5BEC (mm): +PageSetupDialog.PaperSizeSettings.Custom.Height=\u9AD8 (mm): +PageSetupDialog.PaperSizeSettings.Printer=\u4F7F\u7528\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PaperSizeSettings.SinglePage=\u4E00\u5927\u9801 +PageSetupDialog.PaperSizeSettings.SinglePage2=(\u50C5PDF) +PageSetupDialog.Printers=\u5370\u8868\u6A5F +PageSetupDialog.PrinterPageSetup=\u5370\u8868\u6A5F\u8A2D\u5B9A +PageSetupDialog.PrinterPDFService=ProjectLibre PDF +PageSetupDialog.PODOnly=\u53EA\u6709\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u624D\u6709 +PageSetupDialog.PODOnly2=\u5C08\u6848\u9700\u6C42 +PageSetupDialog.Refresh=\u66F4\u65B0 +PageSetupDialog.SaveSettings=\u8A2D\u70BA\u9810\u8A2D +PageSetupDialog.SaveSettings.ToolTip=\u8A2D\u7F6E\u70BA\u9810\u8A2D\u5217\u5370\u8A2D\u7F6E +PageSetupDialog.SaveWebPDFSettings=\u8A2D\u70BA\u7DB2\u9801\u9810\u8A2D +PageSetupDialog.SaveWebPDFSettings.ToolTip=\u8A2D\u6210\u7DB2\u9801PDF\u5716\u50CF\u7684\u9810\u8A2D\u503C +PageSetupDialog.Settings.Label=\u8A2D\u5B9A +PageSetupDialog.Settings.Local=\u672C\u5730\u7AEF +PageSetupDialog.Settings.WebPDF=\u7DB2\u9801PDF +PageSetupDialog.Scaling=\u7E2E\u653E\u6BD4\u4F8B +PageSetupDialog.Scaling.FitTo=\u9069\u5408\uFF1A +PageSetupDialog.Scaling.FitToHeight=\u9801\u9AD8 +PageSetupDialog.Scaling.FitToWidth=\u9801\u5BEC +PageSetupDialog.Scaling.ScaleTo=\u7E2E\u653E\u5230\uFF1A +PageSetupDialog.Scaling.ScaleToHeight=\u9AD8 +PageSetupDialog.Scaling.ScaleToWidth=\u5BEC +PageSetupDialog.Scaling.ScaleToProportions=\u9650\u5236 +PageSetupDialog.Scaling.ScaleToProportions2=\u6BD4\u4F8B +PageSetupDialog.ShowGantt=\u7518\u7279\u5716 +PageSetupDialog.ShowParts=\u5716\u89E3 +PageSetupDialog.ShowSpreadSheet=\u8A66\u7B97\u8868 +PageSetupDialog.Title=\u9801\u9762\u8A2D\u7F6E +PageSetupDialog.NotPDFPrintServiceForWebDefault= +PageSetupDialog.NotValidPrinter=\u9078\u64C7\u7684\u670D\u52D9\u662FPDF\u670D\u52D9\uFF0C\u8ACB\u9078\u64C7\u5370\u8868\u6A5F\u3002 +PersonalContour.personal=\u4EBA\u54E1 +ProjectStatus.ACTIVE=\u6709\u6548 +PreviewPanel.Preview=\u9810\u89BD +PreviewPanelEnd.Preview=\u9810\u89BD +ProjectDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90\uFF08\u5BA2\u6236/\u5408\u4F5C\u5925\u4F34\u9664\u5916\uFF09 +ProjectDialog.Notes=\u7B46\u8A18\uFF1A +ProjectInformationDialog.ProjectInformation=\u5C08\u6848\u8CC7\u8A0A +ProjectStatus.CANCELLED=\u53D6\u6D88 +ProjectStatus.COMPLETED=\u5DF2\u5B8C\u6210 +ProjectDialog.NewProject=\u65B0\u7684\u5C08\u6848 +ProjectDialog.StartDate=\u958B\u59CB\u65E5\u671F\uFF1A +ProjectDialog.FinishDate=\u5B8C\u6210\u65E5\u671F\uFF1A +ProjectStatus.ON_HOLD=\u64F1\u7F6E +ProjectDialog.Manager=\u7D93\u7406\u4EBA\uFF1A +ProjectStatus.PENDING_APPROVAL=\u5F85\u6279\u51C6 +ProjectStatus.PLANNING=\u898F\u5283 +ProjectType.EVENT_PLANNING=\u6D3B\u52D5\u7B56\u5283 +ProjectType.IT=I.T. +ProjectType.MARKETING_CAMPAIGN=\u884C\u92B7\u6D3B\u52D5 +ProjectInformationDialog.Notes=\u7B46\u8A18 +PrintPreviewFrame.PrintPreview=\u5217\u5370\u9810\u89BD +ProjectType.OTHER=\u5176\u4ED6 +ProjectType.PRODUCT_DEVELOPMENT=\u7522\u54C1\u958B\u767C +ProjectType.PROFESSIONAL_SERVICES=\u5C08\u696D\u7684\u670D\u52D9 +ProjectInformationDialog.Statistics=\u7D71\u8A08 +ProjectDialog.BasedOnProjectRole=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ProjectInformationDialog.General=\u4E00\u822C +ProjectType.SALES_CAMPAIGN=\u92B7\u552E\u6D3B\u52D5 +ProjectDialog.ProjectName=\u5C08\u6848\u540D\u7A31: +ProjectDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ProjectType.TECHNICAL_SUPPORT=\u6280\u8853\u8CC7\u6E90 +RenameDialog.AnotherItemWithThatNameAlreadyExists=\u5176\u4ED6\u9805\u76EE\u5DF2\u5B58\u5728\u6B64\u540D\u7A31 +RenameDialog.NewName=\u65B0\u540D\u7A31 +RenameDialog.Rename=\u66F4\u540D +RenameDialog.TheNameCannotBeEmpty=\u540D\u7A31\u4E0D\u53EF\u7A7A\u767D +RenameProjectDialog.NewProject=\u65B0\u5C08\u6848 +RenameProjectDialog.NewProjectName=\u65B0\u5C08\u6848\u540D\u7A31: +RenameProjectDialog.RenameProject=\u5C08\u6848\u66F4\u540D +ReportView.Columns=\u6B04\u4F4D: +ReportView.Report=\u56DE\u5831: +RenameDialog.CurrentName=\u73FE\u884C\u540D\u7A31 +RequestDemandType.Demand=Demand +RequestDemandType.None=- +RequestDemandType.Request=Request +ResourceAdditionDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceAdditionDialog.SelectResourcesToAdd=\u9078\u64C7\u8CC7\u6E90\u4EE5\u65B0\u589E +ResourceIndicatorsComponent.Administrator=\ (\u7BA1\u7406\u8005) +ResourceIndicatorsComponent.PartnerCustomer=\ (\u5925\u4F34/\u9867\u5BA2) +ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=\u6B64\u8CC7\u6E90\u5728\u5C08\u6848\u5718\u968A\u4E2D
+ResourceIndicatorsComponent.UserLicense=\u4F7F\u7528\u8005\u57F7\u7167: +ResourceInformationDialog.AssignedToTasks=\u5206\u914D\u81F3\u4EFB\u52D9: +ResourceInformationDialog.Costs=\u6210\u672C +ResourceInformationDialog.General=\u4E00\u822C +ResourceInformationDialog.Notes=\u7B46\u8A18 +ResourceInformationDialog.ResourceAvailability=\u8CC7\u6E90\u53EF\u7528\u6027 +ResourceInformationDialog.ResourceInformation=\u8CC7\u6E90\u8CC7\u8A0A +ResourceInformationDialog.Tasks=\u4EFB\u52D9 +ResourceMappingDialog.AllResourcesExceptCustomerPartner=\u6240\u6709\u8CC7\u6E90 (\u9664\u4E86\u9867\u5BA2/\u5925\u4F34) +ResourceMappingDialog.BasedOnProjectRoleInResourcesView=\u57FA\u65BC\u8CC7\u6E90\u8996\u5716\u4E2D\u7684\u9805\u76EE\u89D2\u8272 +ResourceMappingDialog.DontMergeOpenProjectReadOnly=\u4E0D\u5408\u4F75, \u4EE5\u552F\u8B80\u958B\u555F\u5C08\u6848 +ResourceMappingDialog.ImportedResources=\u5DF2\u532F\u5165\u7684\u8CC7\u6E90 +ResourceMappingDialog.MergeResourcesUsingField=\u4F7F\u7528\u6B04\u4F4D\u532F\u5165\u8CC7\u6E90 +ResourceMappingDialog.ProjectTeam=\u5C08\u6848\u5718\u968A: +ResourceMappingDialog.ResourceMerging=\u8CC7\u6E90\u5408\u4F75 +ResourceMappingDialog.ServerResources=\u4F3A\u670D\u5668\u8CC7\u6E90 +ResourceType.Location=\u4F4D\u7F6E +ResourceType.Machine=\u6A5F\u68B0 +ResourceType.Material=\u6750\u6599 +ResourceType.Other=\u5176\u4ED6 +ResourceType.Work=\u5DE5\u4F5C +ResourceView.ThisResourceCurrentlyHasAssignments=. \u6B64\u8CC7\u6E90\u7576\u524D\u5DF2\u5206\u914D. +ResourceView.ToMoveAProtectedResource=\u82E5\u8981\u79FB\u52D5\u968E\u5C64\u4E2D\u7684\u4E0D\u53EF\u522A\u9664\u8CC7\u6E90, \u4F60\u53EF\u4EE5\u5728RBS\u8996\u5716\u4E2D\u5EFA\u7ACB\u9023\u7D50. +ResourceView.UsersCanOnlyBeRemoved=. \u4F7F\u7528\u8005\u53EA\u80FD\u5728\u7BA1\u7406\u4F7F\u7528\u8005\u9801\u4E2D\u522A\u9664\u6216\u8A2D\u70BA\u4E0D\u53EF\u7528. +ResourceView.YouCannotDeleteTheResource=\u4F60\u4E0D\u80FD\u522A\u9664\u9019\u500B\u8CC7\u6E90: +Role.Inactive=\u4E0D\u53EF\u7528 +Role.ProjectManager=\u5C08\u6848\u7D93\u7406 +Role.TeamMember=\u5718\u968A\u6210\u54E1 +SchedulingType.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.Percentage=\u767E\u5206\u7387 +ScheduleDialogBox.FixedDuration=\u56FA\u5B9A\u6642\u7A0B +ScheduleDialogBox.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.SetAsDefault=\u8A2D\u70BA\u9810\u8A2D +ScheduleDialogBox.WorkIsEnteredIn=\ \u5DE5\u4F5C\u8F38\u5165\u5728 +ScheduleDialogBox.DefaultTaskType=\ \u9810\u8A2D\u4EFB\u52D9\u985E\u578B +SchedulingType.FixedUnits=\u56FA\u5B9A\u55AE\u4F4D +ScheduleDialogBox.Schedule=\u8A08\u756B\u8868 +ScheduleDialogBox.Decimal=Decimal +ScheduleDialogBox.Minutes=\u5206\u9418 +ScheduleDialogBox.NewTask=\ \u65B0\u4EFB\u52D9 +SchedulingType.FixedWork=\u56FA\u5B9A\u5DE5\u6642 +ScheduleDialogBox.Hours=\u5C0F\u6642 +ScheduleDialogBox.Days=\u65E5\u5929 +ScheduleDialogBox.Weeks=\u9031 +ScheduleDialogBox.Months=\u6708 +Sorter.AssignmentProjectName=\u5C08\u6848\u540D\u7A31 +Sorter.CompleteIncomplete=\u5B8C\u6574/\u4E0D\u5B8C\u6574 +Sorter.Cost=\u6210\u672C +Sorter.CostOverbudget=\u6210\u672C\u8D85\u904E\u9810\u7B97 +Sorter.CostPerUse=\u6BCF\u9805\u6210\u672C +Sorter.Critical=\u95DC\u9375 +Sorter.Delegated=\u59D4\u6D3E\u7D66 +Sorter.Duration=\u6642\u7A0B +Sorter.DurationThenCost=\u6642\u7A0B+\u6210\u672C +Sorter.FinishDate=\u7D50\u675F\u65E5\u671F +Sorter.Name=\u540D\u7A31 +Sorter.None=\u7121\u6392\u5E8F +Sorter.OvertimeRate=\u8D85\u6642\u7387 +Sorter.ResourceGroup=\u7FA4\u7D44 +Sorter.ResourceType=\u985E\u578B +Sorter.StandardRate=\u6A19\u6E96\u7387 +Sorter.StartDate=\u958B\u59CB\u65E5\u671F +Spreadsheet.Action.collapse=\u6536\u5408 +Spreadsheet.Action.copy=\u8907\u88FD +Spreadsheet.Action.cut=\u526A\u4E0B +Spreadsheet.Action.delete=\u522A\u9664 +Spreadsheet.Action.expand=\u5C55\u958B +Spreadsheet.Action.indent=\u7E2E\u6392 +Spreadsheet.Action.new=\u65B0\u589E +Spreadsheet.Action.outdent=\u53CD\u7E2E\u6392 +Spreadsheet.Action.paste=\u8CBC\u4E0A +Spreadsheet.Assignment.resourceUsage=\u8CC7\u6E90\u4F7F\u7528 +Spreadsheet.Assignment.taskUsage=\u4EFB\u52D9\u4F7F\u7528 +Spreadsheet.AssignmentEntry.assignResources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.AssignmentEntry.replaceResources=\u53D6\u4EE3\u8CC7\u6E90 +Spreadsheet.Dependency.predecessors=\u524D\u4E00\u624B +Spreadsheet.Dependency.successors=\u5F8C\u4E00\u624B +Spreadsheet.Project.default=\u9810\u8A2D +Spreadsheet.Project.portfolio=\u7D44\u5408 +Spreadsheet.Project.properties=\u8CA1\u7522 +Spreadsheet.Resource.earnedValue=\u6399\u503C +Spreadsheet.Resource.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Resource.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Resource.entryWorkResources=\u9810\u8A2D +Spreadsheet.ResourceAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.ResourceAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.ResourceAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.ResourceAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.ResourceTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.ResourceUsage.default=\u8CC7\u6E90\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.nameOnly=Name +Spreadsheet.Task.baseline=\u57FA\u7DDA +Spreadsheet.Task.constraintDates=\u9650\u5236\u65E5\u671F +Spreadsheet.Task.cost=\u6210\u672C +Spreadsheet.Task.delay=Delay +Spreadsheet.Task.earnedValue=\u6399\u503C +Spreadsheet.Task.earnedValueCostIndicators=\u6399\u503C - \u6210\u672C +Spreadsheet.Task.earnedValueScheduleIndicators=\u6399\u503C - \u8A08\u756B\u8868 +Spreadsheet.Task.entry=\u9810\u8A2D +SpreadSheetColumnMenu.InsertColumn=I\u63D2\u5165\u6B04\u4F4D... +Spreadsheet.Task.schedule=\u8A08\u756B\u8868 (CPM) +Spreadsheet.Task.summary=\u6458\u8981 +Spreadsheet.Task.tracking=\u8FFD\u8E64 +Spreadsheet.Task.usage=\u5DE5\u4F5C +Spreadsheet.Task.variance=\u8A08\u756B\u8868\u8B8A\u7570 +Spreadsheet.TaskAssignment.reportAssignmentResource=\u540D\u7A31\u8207ID +Spreadsheet.TaskAssignment.reportAssignmentTask=\u57FA\u672C\u5831\u544A +Spreadsheet.TaskAssignment.resources=\u5206\u914D\u8CC7\u6E90 +Spreadsheet.TaskAssignment.tasks=\u4EFB\u52D9\u5206\u914D +Spreadsheet.TaskTimesheet.status=\u5DE5\u6642\u8868\u72C0\u614B +Spreadsheet.TaskUsage.default=\u4EFB\u52D9\u4F7F\u7528 (\u5206\u914D) +Spreadsheet.Timesheet.Default=\u5DE5\u6642\u8868 +Spreadsheet.Timesheet.completion=\u5B8C\u6210 +SpreadSheetColumnMenu.HideColumn=\u96B1\u85CF\u6B04\u4F4D +Spreadsheet.availability=\u53EF\u5229\u7528 +Spreadsheet.costRates=\u6210\u672C\u7387 +Spreadsheet.empty= +StandardContour.backLoaded=\u63A8\u9072 +StandardContour.bell=\u9418\u8072 +StandardContour.doublePeak=\u96D9\u5CF0 +StandardContour.earlyPeak=\u524D\u671F\u5CF0\u503C +StandardContour.flat=\u5E73\u539F +StandardContour.frontLoaded=\u63D0\u524D +StandardContour.latePeak=\u5F8C\u671F\u5CF0\u503C +StandardContour.plateau=\u9AD8\u539F\u5340 +Styles.Annotation.milestone=\u91CC\u7A0B\u7891 +Styles.Annotation.normal=\u4E00\u822C\u4EFB\u52D9 +Styles.Bar.Row.assignment=\u5206\u914D +Styles.Bar.Row.baseline10=\u57FA\u7DDA 10 +Styles.Bar.Row.baseline1=\u57FA\u7DDA 1 +Styles.Bar.Row.baseline2=\u57FA\u7DDA 2 +Styles.Bar.Row.baseline3=\u57FA\u7DDA 3 +Styles.Bar.Row.baseline4=\u57FA\u7DDA 4 +Styles.Bar.Row.baseline5=\u57FA\u7DDA 5 +Styles.Bar.Row.baseline6=\u57FA\u7DDA 6 +Styles.Bar.Row.baseline7=\u57FA\u7DDA 7 +Styles.Bar.Row.baseline8=\u57FA\u7DDA 8 +Styles.Bar.Row.baseline9=\u57FA\u7DDA 9 +Styles.Bar.Row.baseline=\u57FA\u7DDA +Styles.Bar.Row.critical=\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.deadline=\u6700\u5F8C\u671F\u9650 +Styles.Bar.Row.external=\u5916\u90E8\u4EFB\u52D9 +Styles.Bar.Row.milestone=\u91CC\u7A0B\u7891 +Styles.Bar.Row.subproject=\u5B50\u8A08\u756B +Styles.Bar.Row.summary=\u6458\u8981\u4EFB\u52D9 +Styles.Bar.Row.task=\u5206\u95DC\u9375\u4EFB\u52D9 +Styles.Bar.Row.timesheet=\u5DE5\u6642\u8868 +Styles.Bar.Row.totalSlack=\u6240\u6709\u5BEC\u9B06 +Styles.Calendar.nonWorking=\u986F\u793A\u884C\u4E8B\u66C6 +Styles.Gantt.showRows=\u986F\u793A\u884C +Styles.showLinks=\u986F\u793A\u9023\u7D50 +Summary.AND=\u4E14 +Summary.Average=\u5E73\u5747 +Summary.AverageFirstSublevel=\u5E73\u5747\u7B2C\u4E00\u500B\u6B21\u7B49\u7D1A +Summary.CountAll=\u5168\u90E8\u8A08\u7B97 +Summary.CountNonsummaries=\u8A08\u7B97\u98DB\u6458\u8981 +Summary.List=\u6E05\u55AE +Summary.Maximum=\u6700\u5927 +Summary.Minimum=\u6700\u5C0F +Summary.None=\u7121 +Summary.OR=\u6216 +Summary.Sum=\u52A0\u7E3D +#The symbols should not be translated for most latin languages +Symbol.ellipsis=... +Symbol.leftBracket=[ +Symbol.leftBracketRegex=\\[ +Symbol.listSeparator=; +Symbol.multipleValues=-- +Symbol.percent=% +Symbol.rightBracket=] +Symbol.rightBracketRegex=\\] +Symbol.slash=/ +TaskIndicatorsComponent.Notes=\u7B46\u8A18: ' +TaskIndicatorsComponent.TheCalendar=\u884C\u4E8B\u66C6 ' +TaskIndicatorsComponent.TheIntersection=\u9019\u500B\u4EFB\u52D9\u8207\u8CC7\u6E90\u884C\u4E8B\u66C6\u7684\u4EA4\u96C6\u6C92\u6709\u5DE5\u4F5C\u6642\u9593.
+TaskIndicatorsComponent.TheTaskWasCompletedOn=\u6B64\u4EFB\u52D9\u5DF2\u5B8C\u6210\u65BC +TaskIndicatorsComponent.ThisParentTaskHasResources=\u6B64\u7236\u4EFB\u52D9\u5177\u6709\u76F4\u63A5\u5206\u914D\u7D66\u5B83\u7684\u8CC7\u6E90: +TaskIndicatorsComponent.ThisSubprojectIsNotValid=\u6B64\u5B50\u8A08\u756B\u7121\u6548: \u5728\u4E00\u500B\u5C08\u6848\u4E2D\u53EA\u80FD\u63D2\u5165\u4E00\u6B21. +TaskIndicatorsComponent.ThisTaskFinishesOn=\u6B64\u4EFB\u52D9\u5DF2\u7D50\u675F\u65BC +TaskIndicatorsComponent.ThisTaskHasA=\u6B64\u4EFB\u52D9\u6709\u4E00\u500B ' +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66 +TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=\u6B64\u4EFB\u52D9\u5DF2\u59D4\u6D3E\u7D66\u4F60 +TaskIndicatorsComponent.ThisTasksRepresentsThe=\u6B64\u4EFB\u52D9\u4EE3\u8868 +TaskIndicatorsComponent.constraintOn=' \u9650\u5236\u65BC +TaskIndicatorsComponent.isAssignedToTheTask=' \u5206\u914D\u7D66\u6B64\u4EFB\u52D9.
+TaskIndicatorsComponent.opened=\u5DF2\u958B\u555F +TaskIndicatorsComponent.subproject=\ \u5B50\u8A08\u756B\: +TaskIndicatorsComponent.unopened=\u672A\u958B\u555F\u7684 +TaskIndicatorsComponent.whichIsAfterItsDeadline=\ \u8D85\u904E\u81EA\u8EAB\u6B7B\u7DDA +TaskInformationDialog.Advanced=\u9032\u968E +TaskInformationDialog.ConstrainTask=\u9650\u5236 +TaskInformationDialog.Dates=\u65E5\u671F +TaskInformationDialog.General=\u4E00\u822C +TaskInformationDialog.Notes=\u7B46\u8A18 +TaskInformationDialog.Predecessors=\u4E0A\u4E00\u624B +TaskInformationDialog.Resources=\u8CC7\u6E90 +TaskInformationDialog.Successors=\u4E0B\u4E00\u624B +TaskInformationDialog.TaskInformation=\u4EFB\u52D9\u8CC7\u8A0A +Text.Allocated=\u5206\u914D +Text.ApplicationTitle=ProjectLibre +Text.Assign=\u5206\u914D +Text.AssignResources=\u5206\u914D\u8CC7\u6E90 +Text.Baseline=\u57FA\u7DDA +Text.Cancel=\u53D6\u6D88 +Text.ClearBaseline=\u660E\u78BA\u57FA\u7DDA +Text.CostRateTables=\u6210\u672C\u7387\u8868 +Text.Cumulative=\u7D2F\u8A08 +Text.DetectingJavaVersion=\u5075\u6E2CJava\u7248\u672C... +Text.DisabledExternalTaskDependency=\u505C\u7528\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.EntireProject=\u6574\u500B\u5C08\u6848 +Text.ExternalTaskDependency=\u5916\u90E8\u4EFB\u52D9\u4F9D\u5B58 +Text.Field=\u6B04\u4F4D +Text.Filter=\u7387\u93E1 +Text.From=\u8868\u55AE +Text.Group=\u7FA4\u7D44 +Text.HierarchicalRelation=\u7B49\u7D1A\u95DC\u4FC2 +Text.Histogram=\u9577\u689D\u5716 +Text.Lag=\u843D\u5F8C +Text.No=No +Text.None=\u7121 +Text.OtherProjects=\u5176\u4ED6\u5C08\u6848 +Text.Remove=\u79FB\u9664 +Text.Replace=\u53D6\u4EE3 +Text.ReplaceResource=\u53D6\u4EE3\u8CC7\u6E90 +Text.Save=\u5132\u5B58 +Text.SaveBaseline=\u5132\u5B58\u57FA\u7DDA +Text.Selected=\u5DF2\u9078\u64C7 +Text.SelectedTasks=\u5DF2\u9078\u64C7\u4EFB\u52D9 +Text.ShowSelectedOnTop=\u5728\u4E0A\u65B9\u986F\u793A\u5DF2\u9078\u64C7\u9805 +Text.ShowTeamResourcesOnly=\u50C5\u5718\u968A\u8CC7\u6E90 +Text.Sort=\u6392\u5E8F +Text.Task=\u4EFB\u52D9 +Text.TaskDependency=\u4EFB\u52D9\u4F9D\u5B58 +Text.Tasks=\u4EFB\u52D9 +Text.ThisProject=\u6B64\u5C08\u6848 +Text.To=\u7D66 +Text.Type=\u985E\u578B +Text.Unassigned=\u672A\u5206\u914D\u7684 +Text.Untitled=\u7121\u6A19\u984C +Text.UserDefinedInParentheses=(\u4F7F\u7528\u8005\u5B9A\u7FA9) +Text.With=\u8207 +Text.Yes=Yes +Text.budget=\u9810\u7B97 +Text.clickToRename=(\u9EDE\u64CA\u66F4\u540D) +Text.cost=\u6210\u672C +Text.createProject=\u5EFA\u7ACB\u5C08\u6848 +Text.forwardScheduled=\u524D\u63A8\u8A08\u756B\u8868 +Text.insertProject=\u63D2\u5165\u5C08\u6848 +Text.manageResources=\u5408\u4F75\u8CC7\u6E90\u6C60 +Text.modifiedInParentheses=(\u5DF2\u7DE8\u8F2F) +Text.thousandsAbbreviation=K +Text.millionsAbbreviation=M +Text.newServerProject=\u4F3A\u670D\u5668\u5C08\u6848 +Text.openProject=\u958B\u555F\u5C08\u6848 +Text.predecessor=\u4E0A\u4E00\u624B +# {0} is the name of the thing to rename +Text.rename.mf=\u66F4\u540D {0} +Text.resetRoles=\u6B64"\u5168\u90E8\u8CC7\u6E90"\u9078\u9805\u5141\u8A31\u5728\u4F60\u516C\u53F8\u4E2D\u5B9A\u7FA9\u904E\u7684\u6240\u6709\u4F7F\u7528\u8005\u5B58\u53D6\u9019\u500B\u8A08\u756B, \u9664\u4E86"\u5925\u4F34/\u9867\u5BA2" \u4F7F\u7528\u8005.\n\u4F60\u5728\u6B64\u8CC7\u6E90\u8996\u5716\u5DF2\u8F38\u5165\u904E\u7684\u8A08\u756B\u7279\u5B9A\u9650\u5236\u5C07\u6703\u88AB\u91CD\u8A2D. +Text.reverseScheduled=\u53CD\u8F49\u8A08\u756B\u8868 +Text.rightClickSelectToSpreadsheet=\u53F3\u9EDE\u64CA\u4EE5\u9078\u53D6\u6216\u66F4\u540D\u8A66\u7B97\u8868 +Text.rightClickToInsertRemoveColumns=\u53F3\u9EDE\u64CA\u4EE5\u63D2\u5165/\u96B1\u85CF\u6B04\u4F4D +Text.successor=\u4E0B\u4E00\u624B +Text.taskHierarchy=\u4EFB\u52D9\u7B49\u7D1A: +Text.welcomeSubject=\u6B61\u8FCE\u4F7F\u7528 Projects On Demand +Text.welcomeToPod=\u6B61\u8FCE\u4F7F\u7528 ProjectLibre +Text.work=work +TimeChartPopupMenu.VerticalScrolling=\u5782\u76F4\u6372\u52D5 +TimesheetHelper.Entered=\u5DF2\u8F38\u5165 +TimesheetHelper.Integrated=\u5B8C\u6574 +TimesheetHelper.Mixed=\u6DF7 +TimesheetHelper.New=\u65B0 +TimesheetHelper.Rejected=\u88AB\u62D2\u7D55 +TimesheetHelper.Saved=\u5DF2\u5132\u5B58 +TimesheetHelper.Validated=\u5DF2\u9A57\u8B49 +Title.ProjityError=ProjectLibre \u932F\u8AA4 +Title.ProjityWarning=ProjectLibre \u8B66\u544A +TransformParameter.FinishDate=\u5B8C\u6210\u65E5\u671F +TransformParameter.StartDate=\u958B\u59CB\u65E5\u671F +# The Units values below are used internally to format and parse durations (minute, hour, day, etc) in different ways +# For each line, there must be four values separated by a |. No spaces are allowed +# The lines are of the form: ||| +# The user will be able to choose which format he wants to use +Units.day.plural=d|dys|days|d +Units.day.singular=d|dy|day|d +Units.eday.plural=ed|edys|edays|ed +Units.eday.singular=ed|edy|eday|ed +Units.ehour.plural=eh|ehrs|ehours|eh +Units.ehour.singular=eh|ehr|ehour|eh +Units.eminute.plural=em|emins|eminutes|em +Units.eminute.singular=em|emin|eminute|em +Units.emonth.plural=emo|emons|emonths|eM +Units.emonth.singular=emo|emon|emonth|eM +Units.epercent.plural=e%|e%|e%|e% +Units.epercent.singular=e%|e%|e%|e% +# the two estimated symbol strings do not need translation +Units.estimatedSymbol=? +Units.estimatedSymbolRegex=\\? +Units.eweek.plural=ew|ewks|eweeks|ew +Units.eweek.singular=ew|ewk|eweek|ew +Units.eyear.plural=ey|eyrs|eyears|ey +Units.eyear.singular=ey|eyr|eyear|ey +Units.hour.plural=h|hrs|hours|h +Units.hour.singular=h|hr|hour|h +Units.minute.plural=m|mins|minutes|m +Units.minute.singular=m|min|minute|m +Units.month.plural=mo|mons|months|M +Units.month.singular=mo|mon|month|M +Units.percent.plural=%|%|%|% +Units.percent.singular=%|%|%|% +Units.week.plural=w|wks|weeks|w +Units.week.singular=w|wk|week|w +Units.year.plural=y|yrs|years|y +Units.year.singular=y|yr|year|y +UpdateProjectDialogBox.EntireProject=\u6574\u500B\u5C08\u6848 +UpdateProjectDialogBox.For=\u7D66: +UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ \u91CD\u65B0\u5B89\u6392\u5269\u9918\u5DE5\u4F5C\u65BC +UpdateProjectDialogBox.SelectedTasks=\ \u5DF2\u9078\u64C7\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.SetZeroHundred=\u6839\u64DA\u65E5\u671F\u8ABF\u6574\u5B8C\u6210\u767E\u5206\u6BD4 +UpdateProjectDialogBox.SetZeroOrHundredOnly=\u50C5\u8ABF\u6574(\u8207\u5B8C\u6210)\u4EE5\u65E5\u671F\u7D50\u675F\u7684\u4EFB\u52D9 +UpdateProjectDialogBox.UpdateProject=\u66F4\u65B0\u5C08\u6848 +UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ \u901A\u904E\u66F4\u65B0\u5B8C\u6210\u5DE5\u4F5C +UpdateTaskDialog.Actual=\u5BE6\u969B\u7684 +UpdateTaskDialog.Current=\u7576\u524D\u7684 +UpdateTaskDialog.UpdateTask=\u66F4\u65B0\u4EFB\u52D9 +ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=\u6B64\u65E5\u671F\u5DF2\u5B58\u5728\u65BC\u8868\u683C\u4E2D, \u8ACB\u9078\u64C7\u53E6\u4E00\u500B\u65E5\u671F. +ValueObjectForIntervalTable.ThisDateMustBeAfter=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0A\u4E00\u9805\u7684\u4E4B\u5F8C. +ValueObjectForIntervalTable.ThisDateMustBeBefore=\u6B64\u65E5\u671F\u5FC5\u9808\u5728\u8868\u683C\u4E2D\u7684\u4E0B\u4E00\u9805\u7684\u4E4B\u524D. +ValueObjectForIntervalTable.YouCannotRemoveTheFirst=\u4F60\u4E0D\u53EF\u4EE5\u79FB\u9664\u8868\u683C\u4E2D\u7B2C\u4E00\u500B\u65E5\u671F. +WelcomeDialog.WhatWouldYouLikeToDo=\u4F60\u60F3\u8981\u505A\u4EC0\u9EBC: +WorkRangeException.EndMustBeAfterStart=\u7BC4\u570D\u7684\u622A\u6B62\u6642\u9593\u5FC5\u9808\u5927\u65BC\u81EA\u8EAB\u7684\u958B\u59CB +WorkRangeException.RangeIncomplete=\u5DE5\u4F5C\u7BC4\u570D\u5FC5\u9808\u540C\u6642\u6709\u958B\u59CB\u8207\u7D50\u675F +WorkRangeException.RangesCannotOverlap=\u4F60\u4E0D\u53EF\u6709\u91CD\u758A\u7684\u6642\u9593\u7BC4\u570D. +WorkRangeException.RangesMustBeOrdered=\u5DE5\u4F5C\u7BC4\u570D\u7684\u555F\u52D5\u5FC5\u9808\u5728\u524D\u4E00\u9805\u4E4B\u5F8C +tip.1.description= \u4F60\u53EF\u4EE5\u5728 http://www.projectlibre.org \u6210\u70BA ProjectLibre \u793E\u7FA4\u7684\u6210\u54E1. \u6211\u5011\u5C07\u63D0\u4F9B\u66F4\u65B0` \u8CC7\u8A0A\u548C\u793E\u7FA4\u6D3B\u52D5. +tip.1.name=\u52A0\u5165 ProjectLibre \u793E\u7FA4 +tip.2.description= \u4F60\u53EF\u4EE5\u5728 \u5E72\u7279\u8868, \u8A66\u7B97\u8868\u683C\u5B50, \u8A66\u7B97\u8868\u8868\u982D\u548C\u8A66\u7B97\u8868\u5DE6\u4E0A\u89D2\u9EDE\u53F3\u9375\u4F86\u7372\u5F97\u4FEE\u6539\u6AA2\u8996\u7684\u529F\u80FD\u9078\u55AE. +tip.2.name=\u4FEE\u6539\u6AA2\u8996 +tip.3.description=\u60A8\u53EF\u4EE5\u70BA ProjectLibre \u505A\u51FA\u8CA2\u737B! \u6211\u5011\u6B63\u5728\u5C0B\u627E\u7FFB\u8B6F\u4EBA\u54E1\u548C\u958B\u767C\u4EBA\u54E1,\u4EE5\u4F7F ProjectLibre \u8D8A\u4F86\u8D8A\u597D. \u8ACB\u806F\u7E6B partners@projectlibre.org +tip.3.name=\u7D66ProjectLibre\u8CA2\u737B +tip.4.description=\u9577\u689D\u5716\u8207\u5716\u8868\u90FD\u662F\u52D5\u614B\u4E14\u4F9D\u5B58\u65BC\u4F60\u9078\u64C7\u7684\u4EFB\u52D9. +tip.4.name=\u52D5\u614B\u5716\u8868 +tip.5.description=\u4F60\u53EF\u4EE5\u76F4\u63A5\u5728\u7DB2\u8DEF\u5716\u8868\u4E0A\u9032\u884C\u7DE8\u8F2F (PERT\u5716). +tip.5.name=\u7DE8\u8F2F\u7DB2\u8DEF\u584A +tip.6.description=\u60A8\u53EF\u4EE5\u7E2E\u6392\u548C\u53CD\u7E2E\u6392\u4EFB\u52D9\u4F86\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB. \u9019\u4E5F\u5C07\u8868\u73FE\u5728WBS\u8996\u5716\u4E2D. +tip.6.name=\u5EFA\u7ACB\u5C08\u6848\u5C64\u6B21\u7D50\u69CB +tip.7.description=\u4F60\u53EF\u4EE5\u7528\u6ED1\u9F20\u4F86\u9023\u7D50`\u5C55\u958B`\u5B8C\u6210`\u79FB\u52D5\u8207\u5206\u5272\u4EFB\u52D9. +tip.7.name=\u6ED1\u9F20\u64CD\u4F5C +tip.8.description=\u901A\u5E38\u4F60\u6703\u4FDD\u6301\u4EFB\u52D9\u9593\u9810\u8A2D\u7684 FS (\u7D50\u675F-\u958B\u59CB) \u9023\u7D50.\u6709\u6642\u4F60\u53EF\u80FD\u6703\u60F3\u8981 SS \u8207 FF, \u800C SF \u975E\u5E38\u7F55\u898B. \u4F60\u53EF\u4EE5\u9EDE\u64CA\u4F86\u4FEE\u6539\u9023\u7D50\u985E\u578B. \u4F60\u4E5F\u53EF\u4EE5\u8A2D\u5B9A\u5EF6\u5F8C. +tip.8.name=\u9023\u7D50\u985E\u578B +tip.9.description=\u70BA\u9805\u76EE\u4FDD\u5B58\u57FA\u7DDA\u59CB\u7D42\u662F\u4E00\u500B\u597D\u4E3B\u610F. ProjectLibre\u6700\u591A\u53EF\u4EE5\u4FDD\u5B58\u523011\u500B, \u4E14\u60A8\u53EF\u4EE5\u5728\u7518\u7279\u5716\u4E2D\u986F\u793A\u5B83\u5011\u4E26\u7528\u65BC\u6399\u503C\u5206\u6790. +tip.9.name=\u57FA\u7DDA +tip.10.description=\u4F60\u53EF\u4EE5\u5728\u5217\u5370\u9801\u9762\u4E2D\u8ABF\u6574\u5E72\u7279\u5716\u7E2E\u653E\u548C\u6B04\u4F4D\u7684\u5927\u5C0F\u4FEE\u6539\u6216\u96B1\u85CF. \u4E14\u4F7F\u7528\u9810\u89BD\u5217\u5370\u4F86\u8ABF\u6559. +tip.10.name=\u5217\u5370\u9801\u9762 +tip.11.description=\u4F60\u53EF\u4EE5\u5728ProjectLibre\u4E2D\u958B\u555F\u5FAE\u8EDF Project\u5EFA\u7ACB\u7684\u6A94\u6848, \u800C\u4F60\u4E5F\u53EF\u4EE5\u56DE\u5B58\u6210\u5FAE\u8EDF\u7684XML\u683C\u5F0F. +tip.11.name=\u5FAE\u8EDF Project \u76F8\u5BB9\u6027 +tip.12.description=ProjectLibre \u6709\u5F88\u591A\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF\u4F9B\u4F60\u4F7F\u7528. \u8A66\u8457\u53F3\u9375\u8A66\u7B97\u8868\u7684\u8868\u982D\u4F86\u78BA\u8A8D. +tip.12.name=\u4F7F\u7528\u8005\u5B9A\u7FA9\u5340\u57DF +tip.13.description=\u60A8\u53EF\u4EE5\u5C07\u884C\u4E8B\u66C6\u5206\u914D\u7D66\u4EFB\u52D9`\u8CC7\u6E90\u548C\u5C08\u6848, \u4EE5\u4FBF\u8003\u616E\u4F11\u5047. +tip.13.name=\u884C\u4E8B\u66C6 +tip.14.description= +tip.14.name= +tip.15.description= +tip.15.name= +tip.16.description= +tip.16.name= +tip.17.description= +tip.17.name= +tip.18.description= +tip.18.name= + + +Text.badJavaVersion=\u4F60\u7684Java\u7248\u672C\u70BA "{0}". \u8981\u904B\u884C ProjectLibre, \u4F60\u9700\u8981 Java 1.6\u4EE5\u4E0A. +Text.badJavaVendor=\u4F60\u7684Java\u63D0\u4F9B\u8005\u662F "{0}". \u8981\u904B\u884C ProjectLibre, \u9700\u8981\u57F7\u884C Sun Java. +Text.javaExecutable=\u81EA\u52D5\u5075\u6E2C\u7684\u4F7F\u7528\u4E2D Java Runtime \u70BA {0}.\n\u5982\u679C\u4F60\u6709\u65B0\u7248\u672C, \u4F60\u53EF\u4EE5\u900F\u904E\u7DE8\u8F2F\u81EA\u52D5\u5075\u6E2C\u6A94\u4E2D\u7684 "{1}" \u5C6C\u6027\u4F86\u624B\u52D5\u4FEE\u6539 "{2}".\n\u76F8\u5C0D\u7684\u4F60\u53EF\u4EE5\u79FB\u9664 "{2}" \u4EE5\u518D\u6B21\u81EA\u52D5\u5075\u6E2C. + + +Text.newVersion=\u6709\u65B0\u7248\u672C {0} \u7684 ProjectLibre \u53EF\u7528.\n\u4F60\u76EE\u524D\u7248\u672C\u70BA {1}.\n\u662F\u5426\u8981\u7ACB\u5373\u524D\u5F80\u4E0B\u8F09\u9801\u9762? + + +TipOfTheDay.dialogTitle=\u672C\u65E5\u63D0\u793A +TipOfTheDay.didYouKnowText=\u4F60\u77E5\u9053\u55CE... +TipOfTheDay.showOnStartupText=\u555F\u52D5\u6642\u986F\u793A\u63D0\u793A +TipOfTheDay.previousTipText=< \u4E0A\u4E00\u500B +TipOfTheDay.nextTipText=\u4E0B\u4E00\u500B > +TipOfTheDay.closeText=\u95DC\u9589 + + + + +Warn.lockMessage = \u6B64\u5C08\u6848\u4EE5\u88AB {0} \u9396\u5B9A. \u4F60\u8981\u552F\u8B80\u958B\u555F\u4F86\u6AA2\u8996\u55CE? + + +#added 14/2/08 +Filter.StartingWithinWeek=\u4E00\u9031\u5167\u555F\u52D5 +Filter.StartingWithinTwoWeeks=\u5169\u9031\u5167\u555F\u52D5 +Filter.LateStarting=\u665A\u9EDE\u555F\u52D5 + + +Warn.resourcePoolOpen=\u7576\u8CC7\u6E90\u6C60\u958B\u555F\u6642\u4E0D\u53EF\u4EE5\u958B\u555F\u5176\u4ED6\u5C08\u6848. +Warn.resourcePoolCannotOpen=\u7576\u5176\u4ED6\u5C08\u6848\u958B\u555F\u6642\u4F60\u4E0D\u80FD\u958B\u555F\u6B64\u8CC7\u6E90\u6C60. +Warn.fileNotFound=\u627E\u4E0D\u5230\u6A94\u6848 + +Text.donateMessage=ProjectLibre \u662F\u514D\u8CBB\u4F7F\u7528. \u5B83\u6C92\u6709\u4EFB\u4F55\u984D\u5916\u689D\u4EF6,\u4E14\u7701\u4E0B\u4F60\u50F9\u503C $999.99 \u7684\u5546\u7528\u5C08\u6848\u7BA1\u7406\u8EDF\u9AD4. \u6211\u5011\u6703\u5BA3\u5C0E\u4F7F\u7528\u8005\u900F\u904EPayPal\u81EA\u9858\u6027\u6350\u8D08. +Text.donateTitle=Please support ProjectLibre +Text.runsSinceMessage=\u4F60\u81EA\u5F9E{1,date,short}\u904B\u884C ProjectLibre \u5171 {0,number} \u6B21 +Text.tryPODTitle=\u5728Demand\u4E0A\u5617\u8A66Projects + +Text.notAvailableInOpenProj= +Text.ShortTitle=ProjectLibre + +Text.doNotShowAgain=\u4E0D\u518D\u986F\u793A\u6B64\u8A0A\u606F + +Warn.saveXML=\u7576\u8207\u5176\u4ED6\u61C9\u7528\u7A0B\u5F0F\u4EA4\u63DB\u6642\u4F60\u53EA\u80FD\u4F7F\u7528XML\u683C\u5F0F\u800C\u90E8\u5206\u8CC7\u6599\u53EF\u80FD\u907A\u5931.\n\u4F60\u60F3\u8981\u7E7C\u7E8C\u55CE? + +Text.rightClickForOptions=\u53F3\u9EDE\u64CA\u4F86\u9078\u9805 diff --git a/projectlibre_core/src/org/projectlibre/strings/client.properties b/projectlibre_core/src/org/projectlibre/strings/client.properties index 2bf057b..8ae5810 100644 --- a/projectlibre_core/src/org/projectlibre/strings/client.properties +++ b/projectlibre_core/src/org/projectlibre/strings/client.properties @@ -1220,3 +1220,6 @@ Text.rightClickForOptions=Right click for options Message.unableToLaunchBrowser=Error. Unable to launch web browser + +Text.Locale=Locale + diff --git a/projectlibre_reports/.classpath b/projectlibre_reports/.classpath index e42b75d..a293a2c 100644 --- a/projectlibre_reports/.classpath +++ b/projectlibre_reports/.classpath @@ -1,13 +1,17 @@ - - + + + + + + diff --git a/projectlibre_ui/.classpath b/projectlibre_ui/.classpath index efc64f8..5e2e94f 100644 --- a/projectlibre_ui/.classpath +++ b/projectlibre_ui/.classpath @@ -1,7 +1,7 @@ - + diff --git a/projectlibre_ui/.settings/org.eclipse.jdt.core.prefs b/projectlibre_ui/.settings/org.eclipse.jdt.core.prefs index ef8a789..a698e59 100644 --- a/projectlibre_ui/.settings/org.eclipse.jdt.core.prefs +++ b/projectlibre_ui/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,12 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/projectlibre_ui/src/com/projectlibre/ui/ribbon/ProjectLibreRibbonUI.java b/projectlibre_ui/src/com/projectlibre/ui/ribbon/ProjectLibreRibbonUI.java index 6907dfc..61fa70d 100644 --- a/projectlibre_ui/src/com/projectlibre/ui/ribbon/ProjectLibreRibbonUI.java +++ b/projectlibre_ui/src/com/projectlibre/ui/ribbon/ProjectLibreRibbonUI.java @@ -227,6 +227,8 @@ public class ProjectLibreRibbonUI extends RibbonUI { // "Panel.background"); protected int fileSelectorOffsetX = 300; + + protected int languageSelectorWidth = 50; protected int projectViewsOffsetX = 600; @@ -489,6 +491,8 @@ public class ProjectLibreRibbonUI extends RibbonUI { // ribbon.add(ribbon.getProjectLibreLogo()); ribbon.add(ribbon.getFileSelector()); + + ribbon.add(ribbon.getLanguageSelector()); ribbon.add(ribbon.getProjectViews()); @@ -560,6 +564,9 @@ public class ProjectLibreRibbonUI extends RibbonUI { if (ribbon.getFileSelector() != null) ribbon.remove(ribbon.getFileSelector()); + + if (ribbon.getLanguageSelector() != null) + ribbon.remove(ribbon.getLanguageSelector()); if (ribbon.getProjectViews() != null) ribbon.remove(ribbon.getProjectViews()); @@ -948,8 +955,14 @@ public class ProjectLibreRibbonUI extends RibbonUI { taskBarPanel.setBounds(0, 0, 0, 0); } + ribbon.getFileSelector().setBounds(fileSelectorOffsetX, ins.top, - width - ins.right - fileSelectorOffsetX, taskbarHeight); + width - ins.right - fileSelectorOffsetX - languageSelectorWidth, taskbarHeight); + + if (languageSelectorWidth>0) + ribbon.getLanguageSelector().setBounds(width - ins.right - languageSelectorWidth , ins.top, + languageSelectorWidth, taskbarHeight); + // projectViews.setBounds(width-ins.right-300, ins.top, 280, // taskbarHeight); diff --git a/projectlibre_ui/src/com/projectlibre1/dialog/LocaleDialog.java b/projectlibre_ui/src/com/projectlibre1/dialog/LocaleDialog.java new file mode 100644 index 0000000..9aa2e09 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/dialog/LocaleDialog.java @@ -0,0 +1,893 @@ +/******************************************************************************* + * The contents of this file are subject to the Common Public Attribution License + * Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public + * License Version 1.1 but Sections 14 and 15 have been added to cover use of + * software over a computer network and provide for limited attribution for the + * Original Developer. In addition, Exhibit A has been modified to be consistent + * with Exhibit B. + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the + * specific language governing rights and limitations under the License. The + * Original Code is ProjectLibre. The Original Developer is the Initial Developer + * and is ProjectLibre Inc. All portions of the code written by ProjectLibre are + * Copyright (c) 2012-2019. All Rights Reserved. All portions of the code written by + * ProjectLibre are Copyright (c) 2012-2019. All Rights Reserved. Contributor + * ProjectLibre, Inc. + * + * Alternatively, the contents of this file may be used under the terms of the + * ProjectLibre End-User License Agreement (the ProjectLibre License) in which case + * the provisions of the ProjectLibre License are applicable instead of those above. + * If you wish to allow use of your version of this file only under the terms of the + * ProjectLibre License and not to allow others to use your version of this file + * under the CPAL, indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by the ProjectLibre + * License. If you do not delete the provisions above, a recipient may use your + * version of this file under either the CPAL or the ProjectLibre Licenses. + * + * + * [NOTE: The text of this Exhibit A may differ slightly from the text of the notices + * in the Source Code files of the Original Code. You should use the text of this + * Exhibit A rather than the text found in the Original Code Source Code for Your + * Modifications.] + * + * EXHIBIT B. Attribution Information for ProjectLibre required + * + * Attribution Copyright Notice: Copyright (c) 2012-2019, ProjectLibre, Inc. + * Attribution Phrase (not exceeding 10 words): + * ProjectLibre, open source project management software. + * Attribution URL: http://www.projectlibre.com + * Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with + * alternatives listed on http://www.projectlibre.com/logo + * + * Display of Attribution Information is required in Larger Works which are defined + * in the CPAL as a work which combines Covered Code or portions thereof with code + * not governed by the terms of the CPAL. However, in addition to the other notice + * obligations, all copies of the Covered Code in Executable and Source Code form + * distributed must, as a form of attribution of the original author, include on + * each user interface screen the "ProjectLibre" logo visible to all users. + * The ProjectLibre logo should be located horizontally aligned with the menu bar + * and left justified on the top left of the screen adjacent to the File menu. The + * logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" + * logo it must direct them back to http://www.projectlibre.com. + *******************************************************************************/ +package com.projectlibre1.dialog; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Frame; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.URL; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.Vector; +import java.util.prefs.Preferences; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.ButtonGroup; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.JTextPane; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.event.TableModelListener; +import javax.swing.filechooser.FileSystemView; +import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableModel; +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.DefaultStyledDocument; +import javax.swing.text.SimpleAttributeSet; +import javax.swing.text.StyleConstants; +import javax.swing.text.StyleContext; +import javax.swing.text.rtf.RTFEditorKit; + +import org.apache.commons.lang.StringEscapeUtils; + +import com.jgoodies.forms.builder.DefaultFormBuilder; +import com.jgoodies.forms.layout.CellConstraints; +import com.jgoodies.forms.layout.FormLayout; +import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI; +import com.projectlibre1.pm.graphic.frames.GraphicManager; +import com.projectlibre1.configuration.Settings; +import com.projectlibre1.pm.snapshot.SnapshottableImpl; +import com.projectlibre1.preference.ConfigurationFile; +import com.projectlibre1.strings.Messages; +import com.projectlibre1.util.Alert; + +import net.sf.mpxj.common.RtfHelper; + +public final class LocaleDialog extends AbstractDialog { + private static final long serialVersionUID = 1L; + + JComboBox languageCombo; + JComboBox countryCombo; + JCheckBox externalCheckbox=new JCheckBox(Messages.getString("Text.ExternalLocaleUse")); + JTextField directoryField=new JTextField(); + JButton directorySetButton=new JButton(Messages.getString("Text.ExternalLocaleDirectorySet")); + JButton directoryUpdateButton=new JButton(Messages.getString("Text.ExternalLocaleDirectoryUpdate")); + JButton directoryExportButton=new JButton(Messages.getString("Text.ExternalLocaleDirectoryExport")); + JTextPane messageArea; + JTable externalList; + AbstractTableModel externalListModel; + String[] externalListColumns={"code", "client.properties", "menu.properties"}; + + ArrayList files=new ArrayList(); + + public enum FileStatus { + OK(Messages.getString("LocaleDialog.FileStatusOk")), + MISSING(Messages.getString("LocaleDialog.FileStatusMissing")), + ERROR(Messages.getString("LocaleDialog.FileStatusFormatError")); + + public final String message; + + private FileStatus(String message) { + this.message = message; + } + } + + + class LanguageProperties implements Comparable{ + String code; + File client; + FileStatus clientStatus; + File menu; + FileStatus menuStatus; + + + /** + * @param code + * @param client + * @param clientStatus + * @param menu + * @param menuStatus + */ + public LanguageProperties(String code, File client, FileStatus clientStatus, File menu, FileStatus menuStatus) { + super(); + this.code = code; + this.client = client; + this.clientStatus = clientStatus; + this.menu = menu; + this.menuStatus = menuStatus; + } + + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public File getClient() { + return client; + } + public void setClient(File client) { + this.client = client; + } + public File getMenu() { + return menu; + } + public void setMenu(File menu) { + this.menu = menu; + } + + public FileStatus getClientStatus() { + return clientStatus; + } + public void setClientStatus(FileStatus clientStatus) { + this.clientStatus = clientStatus; + } + public FileStatus getMenuStatus() { + return menuStatus; + } + public void setMenuStatus(FileStatus menuStatus) { + this.menuStatus = menuStatus; + } + @Override + public int compareTo(String o) { + return code.compareTo(o); + } + + } + + + String[] slocales=Settings.LANGUAGES.split(";"); + Set allLocales=new TreeSet(); + Map transOri=new HashMap(); + Map oriTrans=new HashMap(); + + + protected boolean bind(boolean get) { + Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class); + if (get) { + updateLocales(true); + boolean custom=pref.getBoolean("useExternalLocales",false); + externalCheckbox.setSelected(custom); + directoryField.setEnabled(custom); + directorySetButton.setEnabled(custom); + directoryUpdateButton.setEnabled(custom); + directoryExportButton.setEnabled(custom); + + directoryField.setText(pref.get("externalLocalesDirectory","")); + } else { + String language=(String)languageCombo.getSelectedItem(); + String country=((Country)countryCombo.getSelectedItem()).getCode(); + String trans=transOri.get(language); + String code=trans==null?language:trans; + if (!"".equals(country)) + code+="_"+country; + pref.put("locale",code); + pref.putBoolean("useExternalLocales", externalCheckbox.isSelected()); + pref.put("externalLocalesDirectory", directoryField.getText()); + } + return true; + } + + static class Country implements Comparable{ + String code; + String name; + public Country() { + super(); + this.code = ""; + this.name = ""; + } + /** + * @param code + * @param name + */ + public Country(String code, String name) { + super(); + this.code = code; + this.name = name; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + @Override + public int hashCode() { + return code.hashCode(); + } + @Override + public String toString() { + return name.toString(); + } + @Override + public int compareTo(Country o) { + return code.compareTo(o.getCode()); + } + @Override + public boolean equals(Object o) { + if (o==null || ! (o instanceof Country)) + return false; + else return code.equals(((Country)o).getCode()); + } + + } + + public static final Country DEFAULT_COUNTRY=new Country(); + + + public void updateLocales(boolean init) { + String currentLocaleCode=Preferences.userNodeForPackage(ConfigurationFile.class).get("locale","default"); + String currentLanguage; + Country currentCountry; + if ("default".equals(currentLocaleCode)) { + currentLanguage=currentLocaleCode; + currentCountry=DEFAULT_COUNTRY; + }else { + String[] codes=ConfigurationFile.getLocaleCodes(currentLocaleCode); + currentLanguage=codes[0]; + String code=codes[1]; + if (code==null || + "".equals(code)) + currentCountry=DEFAULT_COUNTRY; + else { + Locale locale = new Locale("en", code); + currentCountry=new Country(code, locale.getDisplayCountry(locale)); + } + } + + + if (init/*countryCombo.getItemCount()==0*/) { //only set once + TreeSet countrySet=new TreeSet(); + + countrySet.add(DEFAULT_COUNTRY); + String[] countryCodes=Locale.getISOCountries(); + for (String countryCode: countryCodes) { + Locale locale = new Locale("en", countryCode); + countrySet.add(new Country(countryCode, locale.getDisplayCountry(locale))); + } + for (Country country: countrySet) { + countryCombo.addItem(country); + } + countryCombo.setSelectedItem(currentCountry); + } + + + for (String locale:slocales) { + String trans; + if ("default".equals(locale)) + trans=Messages.getString("Text.DefaultLocale"); + else trans=locale; + oriTrans.put(locale, trans); + transOri.put(trans, locale); + } + String selectedItem; + if (init){ + String trans=oriTrans.get(currentLanguage); + selectedItem=trans==null? currentLanguage: trans; + }else selectedItem=(String)languageCombo.getSelectedItem(); + + + + + allLocales.clear(); + languageCombo.removeAllItems(); + + + + //add custom locales + for (LanguageProperties file:files) { + if (file.getClientStatus()==FileStatus.OK || + file.getMenuStatus()==FileStatus.OK) + allLocales.add(file.code); + } + + //add preference locale if missing + + boolean found=false; + String defaultLocale=null; + for (String locale:slocales) { + if ("default".equals(locale)) { + defaultLocale=locale; + continue; + } + allLocales.add(locale); + if (locale.equals(currentLanguage)) { + found=true; + } + } + if (!found) + allLocales.add(currentLanguage); + + + if (defaultLocale!=null) + languageCombo.addItem(oriTrans.get(defaultLocale)); + for (String locale: allLocales) { + String trans=oriTrans.get(locale); + if (!"default".equals(locale)) + languageCombo.addItem(trans==null?locale:trans); + } + + languageCombo.setSelectedItem(selectedItem); + + } + + public static LocaleDialog getInstance(GraphicManager graphicManager) { + LocaleDialog instance =null; + if (instance == null) { + instance = new LocaleDialog(graphicManager.getFrame()); + } else + instance.setTitle(Messages.getString("Text.LocaleDialog")); + instance.addDocHelp("Locale_Dialog"); + + return instance; + } + + private LocaleDialog(Frame owner) { + super(owner, "", true); + languageCombo=new JComboBox(); + countryCombo=new JComboBox(); + + messageArea=new JTextPane(); + messageArea.setBackground(null); + + + externalList=new JTable(); + } + + + protected void displayMessage(String message) { + StyleContext sc = StyleContext.getDefaultStyleContext(); + AttributeSet attr = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.RED); + attr = sc.addAttribute(attr, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED); + attr = sc.addAttribute(attr, StyleConstants.Italic, true); + + + messageArea.setCaretPosition(0); + messageArea.selectAll(); + messageArea.setCharacterAttributes(attr, false); + messageArea.replaceSelection(message); + } + protected void displayChangeMessage() { + displayMessage(Messages.getString("Message.localeChange")); + } + + protected void initControls() { + bind(true); + languageCombo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + displayChangeMessage(); + } + }); + countryCombo.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + displayChangeMessage(); + } + }); + externalCheckbox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + directoryField.setEnabled(externalCheckbox.isSelected()); + directorySetButton.setEnabled(externalCheckbox.isSelected()); + directoryUpdateButton.setEnabled(externalCheckbox.isSelected()); + directoryExportButton.setEnabled(externalCheckbox.isSelected()); + displayChangeMessage(); + } + }); + directoryField.getDocument().addDocumentListener(new DocumentListener() { + + @Override + public void removeUpdate(DocumentEvent e) { + displayChangeMessage(); + } + + @Override + public void insertUpdate(DocumentEvent e) { + displayChangeMessage(); + } + + @Override + public void changedUpdate(DocumentEvent e) { + displayChangeMessage(); + } + }); + + directorySetButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + + String spath=directoryField.getText(); + File path; + if (spath==null || spath=="") + path=FileSystemView.getFileSystemView().getHomeDirectory(); + else { + path=new File(spath); + if (!path.isDirectory()) + path=FileSystemView.getFileSystemView().getHomeDirectory(); + } + JFileChooser fileChooser = new JFileChooser(path); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + if (fileChooser.showOpenDialog(LocaleDialog.this) == JFileChooser.APPROVE_OPTION) { + displayChangeMessage(); + File selectedFile = fileChooser.getSelectedFile(); + directoryField.setText(selectedFile.getPath()); + refreshFiles(); + } + + } + }); + + directoryUpdateButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + displayChangeMessage(); + refreshFiles(); + } + }); + + directoryExportButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + displayChangeMessage(); + refreshExportFiles(); + } + }); + + externalListModel=new AbstractTableModel() { + @Override + public String getColumnName(int col) { + return externalListColumns[col]; + } + + @Override + public Object getValueAt(int row, int col) { + if (row<0 || + col<0 || + row>=getRowCount() || + col>=getColumnCount()) + return null; + LanguageProperties prop=files.get(row); + if (col==0) + return prop.getCode(); + else if (col==1) + return prop.getClientStatus(); + else return prop.getMenuStatus(); + } + + @Override + public int getRowCount() { + return files.size(); + } + + @Override + public int getColumnCount() { + return 3; + } + }; + externalList.setModel(externalListModel); + externalList.setEnabled(false); +// refreshFiles(); + } + + public void exportResourceFile(String packageDir, String file) { + File generatedDir=ConfigurationFile.getGeneratedDirectory(directoryField.getText()); + if (generatedDir==null) + return; + + ClassLoader cl = getClass().getClassLoader(); + try { + InputStream in = cl.getResourceAsStream(packageDir+"/"+file+".properties"); + if (in == null) + throw new FileNotFoundException(); + + byte[] buf = new byte[in.available()]; + in.read(buf); + File target = new File(generatedDir,file+".properties"); + OutputStream out = new FileOutputStream(target); + out.write(buf); + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + public void exportResourceFileUTF8(String packageDir, String file) { + File generatedDir=ConfigurationFile.getExportDirectory(directoryField.getText()); + if (generatedDir==null) + return; + + ClassLoader cl = getClass().getClassLoader(); + try { + InputStream in = cl.getResourceAsStream(packageDir+"/"+file+".properties"); + if (in == null) + throw new FileNotFoundException(); + + String text=getFileContent(in, "ISO-8859-1",true); + File target = new File(generatedDir,file+".txt"); + FileWriter out = new FileWriter(target); + out.write(text); + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void refreshFiles() { + files.clear(); + + File directory=new File(directoryField.getText()); + if (!directory.isDirectory()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + + File generated=new File(directory, "import"); + if (generated.exists()) { + if (!generated.isDirectory()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + }else { + if (!generated.mkdir()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + } + + +// Pattern clientPattern = Pattern.compile("client_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.properties)(\\.([^\\.]*))?$"); +// Pattern menuPattern = Pattern.compile("menu_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.properties)(\\.([^\\.]*))?$"); + final Pattern clientPattern = Pattern.compile("client_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.(properties|txt|rtf))$"); + final Pattern menuPattern = Pattern.compile( "menu_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.(properties|txt|rtf))$"); + + + File[] clientFiles=directory.listFiles(new FileFilter() { + @Override + public boolean accept(File f) { + if (f.isFile() && + clientPattern.matcher(f.getName()).matches()) + return true; + return false; + } + }); + File[] menuFiles=directory.listFiles(new FileFilter() { + @Override + public boolean accept(File f) { + if (f.isFile() && + menuPattern.matcher(f.getName()).matches()) + return true; + return false; + } + }); + + + exportResourceFile("com/projectlibre1/strings/","client"); + + Map fileMap=new TreeMap(); + for (File file:clientFiles) { + Matcher m = clientPattern.matcher(file.getName()); + if(m.matches()) { + String code=m.group(1); + String extension=m.group(5); + if (extension==null) + continue; + File generatedFile=null; + generatedFile=convertToPropertyFile(file,new File(generated,"client_"+code+".properties"),extension); + if (generatedFile==null) + continue; + if (fileMap.containsKey(code)) { + LanguageProperties p=fileMap.get(code); + p.setClient(file); + p.setClientStatus(generatedFile==null? + FileStatus.ERROR: + FileStatus.OK); + }else fileMap.put(code, new LanguageProperties(code, + file, + generatedFile==null? + FileStatus.ERROR: + FileStatus.OK, + null, + FileStatus.MISSING)); + } + } + + + exportResourceFile("com/projectlibre1/menu/","menu"); + + for (File file:menuFiles) { + Matcher m = menuPattern.matcher(file.getName()); + if(m.matches()) { + String code=m.group(1); + String extension=m.group(5); + if (extension==null) + continue; + File generatedFile=null; + generatedFile=convertToPropertyFile(file,new File(generated,"menu_"+code+".properties"),extension); + if (generatedFile==null) + continue; + if (fileMap.containsKey(code)) { + LanguageProperties p=fileMap.get(code); + p.setMenu(file); + p.setMenuStatus(generatedFile==null? + FileStatus.ERROR: + FileStatus.OK); + }else fileMap.put(code, new LanguageProperties(code, + null, + FileStatus.MISSING, + file, + generatedFile==null? + FileStatus.ERROR: + FileStatus.OK)); + } + } + + files.addAll(fileMap.values()); + + updateLocales(false); + + externalListModel.fireTableDataChanged(); + + + } + + + public void refreshExportFiles() { + File directory=new File(directoryField.getText()); + if (!directory.isDirectory()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + + File export=new File(directory, "export"); + if (export.exists()) { + if (!export.isDirectory()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + }else { + if (!export.mkdir()) { + displayMessage(Messages.getString("Message.badLocaleDirectory")); + if (externalListModel!=null) + externalListModel.fireTableDataChanged(); + return; + } + } + exportResourceFileUTF8("com/projectlibre1/strings/","client"); + exportResourceFileUTF8("com/projectlibre1/menu/","menu"); + for (String locale:slocales) { + if ("default".equals(locale)) + continue; + exportResourceFileUTF8("com/projectlibre1/strings/","client_"+locale); + exportResourceFileUTF8("com/projectlibre1/menu/","menu_"+locale); + } + } + + public static String getFileContent(InputStream in,String encoding ,boolean unescape) throws IOException { + BufferedReader br =new BufferedReader( new InputStreamReader(in, encoding )); + StringBuilder sb = new StringBuilder(); + String line; + while(( line = br.readLine()) != null ) { + sb.append( unescape?unescape(line):line ); + sb.append( '\n' ); + } + return sb.toString(); + } + + + public static String escapeProperties(String text) { +// CharsetEncoder targetEncoder = Charset.forName("US-ASCII").newEncoder(); + CharsetEncoder targetEncoder = Charset.forName("ISO-8859-1").newEncoder(); + final StringBuilder result = new StringBuilder(); + for (Character character : text.toCharArray()) { + if (targetEncoder.canEncode(character)) { + result.append(character); + } else { + result.append("\\u"); + result.append(Integer.toHexString(0x10000 | character).substring(1).toUpperCase()); //hack to add leading zeros + } + } + return result.toString(); + } + + public static String unescape(String text) { + text = StringEscapeUtils.unescapeJava(text); + return text; + } + + public File convertToPropertyFile(File file, File newFile, String type) { + try { + FileInputStream in = new FileInputStream(file); + String text=null; + + if ("rtf".equals(type)) { + try { + RTFEditorKit kit = new RTFEditorKit(); + DefaultStyledDocument doc = new DefaultStyledDocument(); + kit.read(in, doc, 0); + text = doc.getText(0, doc.getLength()); + text=escapeProperties(text); + } catch (BadLocationException e) { + e.printStackTrace(); + } + } else if ("txt".equals(type)) { + text=getFileContent(in, "UTF-8",false); + text=escapeProperties(text); + } else { + text=getFileContent(in, "ISO-8859-1", false); + } + if (text==null) + return null; + + byte[] outputData = text.getBytes(); + + + FileOutputStream out=new FileOutputStream(newFile); + out.write(outputData); + out.close(); + + return newFile; + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + + + + + public JComponent createContentPanel() { + initControls(); + FormLayout dLayout = new FormLayout("default, 3dlu, fill:80dlu:grow, 3dlu, default", "p"); + DefaultFormBuilder dbuilder = new DefaultFormBuilder(dLayout); + dbuilder.setDefaultDialogBorder(); + dbuilder.append(Messages.getString("Text.ExternalLocaleDirectory")); + dbuilder.append(directoryField); + dbuilder.append(directorySetButton); + JComponent directoryPanel=dbuilder.getPanel(); + + FormLayout layout = new FormLayout("default, 3dlu, default, 3dlu, default, 3dlu, fill:80dlu:grow", + "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, 100dlu, 20dlu, p"); + + DefaultFormBuilder builder = new DefaultFormBuilder(layout); + builder.setDefaultDialogBorder(); + CellConstraints cc = new CellConstraints(); + builder.append(Messages.getString("Text.Language")); + builder.append(languageCombo); + builder.nextLine(2); + builder.append(Messages.getString("Text.Country")); + builder.append(countryCombo); + builder.nextLine(2); + builder.addSeparator(Messages.getString("Text.ExternalLocale")); + builder.nextLine(2); + + builder.add(externalCheckbox,cc.xyw(builder.getColumn(), builder + .getRow(), 7)); + builder.nextLine(2); + builder.add(directoryPanel,cc.xyw(builder.getColumn(), builder + .getRow(), 7)); + builder.nextLine(2); + builder.append(Messages.getString("Text.Locales")); + builder.append(directoryUpdateButton); + builder.append(directoryExportButton); + builder.nextLine(2); + builder.add(new JScrollPane(externalList),cc.xyw(builder.getColumn(), builder + .getRow(), 7)); + builder.nextLine(2); + builder.add(messageArea,cc.xyw(builder.getColumn(), builder + .getRow(), 7)); + return builder.getPanel(); + } +} diff --git a/projectlibre_ui/src/com/projectlibre1/main/Main.java b/projectlibre_ui/src/com/projectlibre1/main/Main.java index 04b5864..d470fed 100644 --- a/projectlibre_ui/src/com/projectlibre1/main/Main.java +++ b/projectlibre_ui/src/com/projectlibre1/main/Main.java @@ -79,6 +79,8 @@ public class Main { System.setProperty("projectlibre.firstRun", firstRun+""); System.setProperty("projectlibre.projectLibreRunNumber", getProjectLibreRunNumber()+""); System.setProperty("projectlibre.projectLibreFirstRun", getProjectLibreFirstRun()+""); + +// System.setProperty("file.encoding", "UTF-8"); Environment.setStandAlone(true); String[] formatedArgs; diff --git a/projectlibre_ui/src/com/projectlibre1/menu/MenuActionConstants.java b/projectlibre_ui/src/com/projectlibre1/menu/MenuActionConstants.java index 44271ec..755cd11 100644 --- a/projectlibre_ui/src/com/projectlibre1/menu/MenuActionConstants.java +++ b/projectlibre_ui/src/com/projectlibre1/menu/MenuActionConstants.java @@ -144,6 +144,7 @@ public interface MenuActionConstants { public static final String ACTION_UPDATE_PROJECT = "UpdateProject"; public static final String ACTION_SAVE_BASELINE = "SaveBaseline"; public static final String ACTION_CLEAR_BASELINE = "ClearBaseline"; + public static final String ACTION_LOCALE = "LocaleAction"; public static final String ACTION_CALENDAR_OPTIONS = "CalendarOptions"; diff --git a/projectlibre_ui/src/com/projectlibre1/menu/MenuManager.java b/projectlibre_ui/src/com/projectlibre1/menu/MenuManager.java index 2f38b12..a19fd6a 100644 --- a/projectlibre_ui/src/com/projectlibre1/menu/MenuManager.java +++ b/projectlibre_ui/src/com/projectlibre1/menu/MenuManager.java @@ -74,13 +74,12 @@ import javax.swing.JToolBar; import org.apache.batik.util.gui.resource.ActionMap; import org.apache.batik.util.gui.resource.ButtonFactory; -import org.apache.batik.util.gui.resource.RibbonFactory; import org.pushingpixels.flamingo.api.common.AbstractCommandButton; import org.pushingpixels.flamingo.api.ribbon.RibbonTask; import com.projectlibre.ui.ribbon.CustomRibbonBandGenerator; import com.projectlibre1.pm.graphic.TabbedNavigation; -import com.projectlibre1.strings.DirectoryClassLoader; +import com.projectlibre1.preference.ConfigurationFile; import com.projectlibre1.util.ClassLoaderUtils; import com.projectlibre1.util.Environment; @@ -121,12 +120,10 @@ public class MenuManager { private MenuManager(ActionMap rootActionMap) { this.rootActionMap = rootActionMap; ResourceBundle internalBundle=null,bundle=null; + if (bundle==null){ try{ - DirectoryClassLoader dir=new DirectoryClassLoader(); - if (dir.isValid()){ - bundle=ResourceBundle.getBundle(MENU_BUNDLE_CONF_DIR,Locale.getDefault(),dir); - } + bundle=ConfigurationFile.getDirectoryBundle(MENU_BUNDLE_CONF_DIR); }catch(Exception e){} if (internalBundle==null) internalBundle = ResourceBundle.getBundle(MENU_INTERNAL_BUNDLE,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader()); if (bundle==null) bundle = ResourceBundle.getBundle(MENU_BUNDLE,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader()); diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu.properties index 9f7cece..185e1a4 100644 --- a/projectlibre_ui/src/com/projectlibre1/menu/menu.properties +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu.properties @@ -225,4 +225,9 @@ ChooseFilter.tooltip = Filter ChooseSort.tooltip = Sort ChooseGroup.tooltip = Group +PreferencesRibbonBand.title=Preferences +RibbonLocale.text=Locale +RibbonLocale.tooltip=Locale... +RibbonLocale.mnemonic=L + diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menuInternal.properties b/projectlibre_ui/src/com/projectlibre1/menu/menuInternal.properties index 442f52c..11fd298 100644 --- a/projectlibre_ui/src/com/projectlibre1/menu/menuInternal.properties +++ b/projectlibre_ui/src/com/projectlibre1/menu/menuInternal.properties @@ -84,6 +84,7 @@ ClipboardRibbonBand = RibbonPaste.TOP RibbonCopy RibbonCut TaskRibbonBand = RibbonInsert RibbonDelete - RibbonIndent RibbonOutdent - RibbonLink RibbonUnlink - RibbonTaskInformation RibbonChangeWorkingTime RibbonNotes RibbonAssignResources RibbonSaveBaseline RibbonClearBaseline RibbonFind RibbonScrollToTask RibbonUpdateTasks ResourceRibbonBand = RibbonInsert RibbonDelete - RibbonIndent RibbonOutdent - RibbonResourceInformation RibbonChangeWorkingTime RibbonNotes RibbonFind ProjectRibbonBand = RibbonProjects.TOP RibbonProjectInformation RibbonChangeWorkingTime RibbonProjectsDialog RibbonSaveBaseline RibbonClearBaseline RibbonUpdateProject +PreferencesRibbonBand = RibbonLocale TaskViewsZoomRibbonBand = RibbonGantt.TOP RibbonNetwork RibbonWBS RibbonTaskUsageDetail RibbonZoomIn RibbonZoomOut ResourceViewsZoomRibbonBand = RibbonResources.TOP RibbonRBS RibbonResourceUsageDetail RibbonZoomIn RibbonZoomOut TaskViewsRibbonBand = RibbonGantt.TOP RibbonNetwork RibbonWBS RibbonTaskUsageDetail @@ -201,6 +202,8 @@ RibbonSaveBaseline.action = SaveBaselineAction RibbonClearBaseline.type = ITEM RibbonClearBaseline.action = ClearBaselineAction +RibbonLocale.type=ITEM +RibbonLocale.action=LocaleAction RibbonGantt.icon =view.gantt RibbonGantt.action =GanttAction @@ -360,6 +363,7 @@ UpdateTasks.action = UpdateTasksAction UpdateProject.action = UpdateProjectAction SaveBaseline.action = SaveBaselineAction ClearBaseline.action = ClearBaselineAction +LocaleAction.action = LocaleAction Organizer.action = OrganizerAction Customize.action = CustomizeAction ScheduleOptions.action = ScheduleOptions diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_da.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_da.properties new file mode 100644 index 0000000..5abc608 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_da.properties @@ -0,0 +1,234 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.  +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + + +ProjectRibbonTask.title=Fil +TaskRibbonTask.title=Opgave +ResourceRibbonTask.title=Ressource +ViewRibbonTask.title=Vis +FileRibbonBand.title=Fil +PrintRibbonBand.title=Udskriv +ClipboardRibbonBand.title=Udklipsholder +#EditingRibbonBand.title=Redigering +TaskRibbonBand.title=Opgave +ResourceRibbonBand.title=Ressource +ProjectRibbonBand.title=Projekt +TaskViewsZoomRibbonBand.title=Visninger +TaskViewsRibbonBand.title=Opgavevisninger +ResourceViewsZoomRibbonBand.title=Visninger +ResourceViewsRibbonBand.title=Ressourcevisninger +OtherViewsRibbonBand.title=Andre visninger +SubViewsRibbonBand.title=Del-visninger +FiltersRibbonBand.title=Filtre +RibbonNewProject.text=Ny +RibbonNewProject.tooltip=Nyt projekt +RibbonOpenProject.text=Åbn +RibbonOpenProject.tooltip=Åbn projekt +RibbonSaveProject.text=Gem +RibbonSaveProject.tooltip=Gem projekt +RibbonSaveProjectAs.text=Gem som +RibbonSaveProjectAs.tooltip=Gem dette som et nyt projekt +RibbonCloseProject.text=Luk +RibbonCloseProject.tooltip=Luk projekt +RibbonPrint.text=Udskriv +RibbonPrint.tooltip=Udskriv det nuværende dokument. +RibbonPrintPreview.text=Forhåndsvisning +RibbonPrintPreview.tooltip=Udskrift forhåndsvisning +RibbonPDF.text=PDF +RibbonPDF.tooltip=PDF +RibbonCut.text=Klip +RibbonCut.tooltip=Klip +RibbonCopy.text=Kopier +RibbonCopy.tooltip=Kopier +RibbonPaste.text=Indsæt +RibbonPaste.tooltip=Indsæt +RibbonDelete.text=Slet +RibbonDelete.tooltip=Slet +RibbonZoomIn.text=Zoom ind +RibbonZoomIn.tooltip=Zoom ind +RibbonZoomOut.text=Zoom ud +RibbonZoomOut.tooltip=Zoom ud +RibbonFind.text=Find +RibbonFind.tooltip=Find +RibbonScrollToTask.text=Scroll til opgave +RibbonScrollToTask.tooltip=Scroll til opgave +RibbonOutdent.text=Udrykning +RibbonOutdent.tooltip=Udrykning +RibbonIndent.text=Indrykning +RibbonIndent.tooltip=Indrykning +RibbonLink.text=Link +RibbonLink.tooltip=Link +RibbonUnlink.text=Fjern link +RibbonUnlink.tooltip=Fjern link +RibbonTaskInformation.text=Information +RibbonTaskInformation.tooltip=Opgaveinformation +RibbonResourceInformation.text=Information +RibbonResourceInformation.tooltip=Ressourceinformation +RibbonProjectInformation.text=Information +RibbonProjectInformation.tooltip=Projektinformation +RibbonChangeWorkingTime.text=Kalender +RibbonChangeWorkingTime.tooltip=Ændre Arbejdskalender +RibbonNotes.text=Noter +RibbonNotes.tooltip=Noter... +RibbonInsert.text=Indsæt +RibbonInsert.tooltip=Indsæt +RibbonAssignResources.text=Tildel ressourcer +RibbonAssignResources.tooltip=Tildel ressourcer +RibbonProjectsDialog.text=Projektdialog +RibbonProjectsDialog.tooltip=Projekter +RibbonUpdateTasks.text=Opdater +RibbonUpdateTasks.tooltip=Opdater opgaver... +RibbonUpdateTasks.mnemonic=T +RibbonUpdateProject.text=Opdater +RibbonUpdateProject.tooltip=Opdater projekt... +RibbonUpdateProject.mnemonic=P +RibbonSaveBaseline.text=Gem Baseline +RibbonSaveBaseline.tooltip=Gem Baseline... +RibbonSaveBaseline.mnemonic=S +RibbonClearBaseline.text=Ryd Baseline +RibbonClearBaseline.tooltip=Ryd Baseline... +RibbonClearBaseline.mnemonic=C +RibbonGantt.text=Gantt +RibbonGantt.tooltip=Gantt +RibbonTrackingGantt.text=Sporing Gantt +RibbonTrackingGantt.tooltip=Sporing Gantt +RibbonTaskUsageDetail.text=Opgaveforbrug +RibbonTaskUsageDetail.tooltip=Opgaveforbrug +RibbonResourceUsageDetail.text=Ressourceforbrug +RibbonResourceUsageDetail.tooltip=Ressourceforbrug +RibbonNetwork.text=Netværk +RibbonNetwork.tooltip=Netværk +RibbonResources.text=Ressourcer +RibbonResources.tooltip=Ressourcer +RibbonProjects.text=Projekter +RibbonProjects.tooltip=Projekter +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=Rapport +RibbonReport.tooltip=Rapport +RibbonHistogram.text=Histogram +RibbonHistogram.tooltip=Histogram +RibbonCharts.text=Diagrammer +RibbonCharts.tooltip=Diagrammer +RibbonTaskUsage.text=Opgaveforbrug +RibbonTaskUsage.tooltip=Opgaveforbrug +RibbonResourceUsage.text=Ressourceforbrug +RibbonResourceUsage.tooltip=Ressourceforbrug +RibbonNoSubWindow.text=Ingen undervindue +RibbonNoSubWindow.tooltip=Ingen undervindue +RibbonNoTextHistogram.tooltip=Histogram +RibbonNoTextCharts.tooltip=Diagrammer +RibbonNoTextTaskUsage.tooltip=Opgaveforbrug +RibbonNoTextResourceUsage.tooltip=Ressourceforbrug +RibbonNoTextNoSubWindow.tooltip=Ingen undervindue +RibbonTopBarSaveProject.text=Gem projekt +RibbonTopBarSaveProject.tooltip=Gem projekt +RibbonTopBarUndo.text=Fortryd +RibbonTopBarUndo.tooltip=Fortryd +RibbonTopBarRedo.text=Annuller fortryd +RibbonTopBarRedo.tooltip=Annuller fortryd +PrintPreviewFirst.tooltip=Første side +PrintPreviewBack.tooltip=Forrige side +PrintPreviewForward.tooltip=Næste side +PrintPreviewLast.tooltip=Sidste side +PrintPreviewDown.tooltip=Forrige side +PrintPreviewUp.tooltip=Næste side +PrintPreviewZoomOut.tooltip=Zoom ud +PrintPreviewZoomReset.tooltip=Nulstil zoom +PrintPreviewZoomIn.tooltip=Zoom ind +PrintPreviewFormat.tooltip=Sideopsætning +PrintPreviewPrint.tooltip=Udskriv +PrintPreviewPDF.tooltip=PDF +PrintPreviewLeftView.tooltip=Vis venstre del +PrintPreviewRightView.tooltip=Vis højre del +Help.text=Hjælp +ChooseFilter.tooltip=Filtrér +ChooseSort.tooltip=Sortér +ChooseGroup.tooltip=Gruppér + + diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_el.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_el.properties new file mode 100644 index 0000000..70a81a8 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_el.properties @@ -0,0 +1,233 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.  +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + +ProjectRibbonTask.title=\u0391\u03C1\u03C7\u03B5\u03AF\u03BF +TaskRibbonTask.title=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +ResourceRibbonTask.title=\u03A0\u03CC\u03C1\u03BF\u03C2 +ViewRibbonTask.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE +FileRibbonBand.title=\u0391\u03C1\u03C7\u03B5\u03AF\u03BF  +PrintRibbonBand.title=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 +ClipboardRibbonBand.title=\u03A0\u03C1\u03CC\u03C7\u03B5\u03B9\u03C1\u03BF +#EditingRibbonBand.title=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +TaskRibbonBand.title=  \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +ResourceRibbonBand.title=\u03A0\u03CC\u03C1\u03BF\u03C2 +ProjectRibbonBand.title=\u0388\u03C1\u03B3\u03BF +TaskViewsZoomRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 +TaskViewsRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +ResourceViewsZoomRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 +ResourceViewsRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 \u03A0\u03CC\u03C1\u03BF\u03C5 +OtherViewsRibbonBand.title=\u0386\u03BB\u03BB\u03B5\u03C2 \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 +SubViewsRibbonBand.title=\u03A5\u03C0\u03BF-\u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 +FiltersRibbonBand.title=\u03A6\u03AF\u03BB\u03C4\u03C1\u03B1 +RibbonNewProject.text=\u039D\u03AD\u03BF +RibbonNewProject.tooltip=\u039D\u03AD\u03BF \u03AD\u03C1\u03B3\u03BF +RibbonOpenProject.text=\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 +RibbonOpenProject.tooltip=\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +RibbonSaveProject.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 +RibbonSaveProject.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5 +RibbonSaveProjectAs.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03C9\u03C2 +RibbonSaveProjectAs.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03C9\u03C2 \u03BD\u03AD\u03BF \u03AD\u03C1\u03B3\u03BF +RibbonCloseProject.text=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF +RibbonCloseProject.tooltip=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03AD\u03C1\u03B3\u03BF\u03C5 +RibbonPrint.text=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 +RibbonPrint.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B5 \u03C4\u03BF \u03C4\u03C1\u03AD\u03C7\u03BF\u03BD \u03AD\u03B3\u03B3\u03C1\u03B1\u03C6\u03BF +RibbonPrintPreview.text=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7 +RibbonPrintPreview.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7\u03C2 +RibbonPDF.text=PDF +RibbonPDF.tooltip=PDF +RibbonCut.text=\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE +RibbonCut.tooltip=\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE +RibbonCopy.text=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE +RibbonCopy.tooltip=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE +RibbonPaste.text=\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 +RibbonPaste.tooltip=\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7 +RibbonDelete.text=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE +RibbonDelete.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE +RibbonZoomIn.text=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7 +RibbonZoomIn.tooltip=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7 +RibbonZoomOut.text=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7 +RibbonZoomOut.tooltip=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7 +RibbonFind.text=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 +RibbonFind.tooltip=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 +RibbonScrollToTask.text=\u03A3\u03BA\u03C1\u03CC\u03BB\u03B1\u03C1\u03B5 \u03C3\u03C4\u03B7\u03BD \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +RibbonScrollToTask.tooltip=\u03A3\u03BA\u03C1\u03CC\u03BB\u03B1\u03C1\u03B5 \u03C3\u03C4\u03B7\u03BD \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1 +RibbonOutdent.text=\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE +RibbonOutdent.tooltip=\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE +RibbonIndent.text=\u0395\u03C3\u03BF\u03C7\u03AE +RibbonIndent.tooltip=\u0395\u03C3\u03BF\u03C7\u03AE +RibbonLink.text=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +RibbonLink.tooltip=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +RibbonUnlink.text=\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +RibbonUnlink.tooltip=\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 +RibbonTaskInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 +RibbonTaskInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonResourceInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 +RibbonResourceInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonProjectInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 +RibbonProjectInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5 +RibbonChangeWorkingTime.text=\u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF +RibbonChangeWorkingTime.tooltip=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonNotes.text=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +RibbonNotes.tooltip=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2 +RibbonInsert.text=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE +RibbonInsert.tooltip=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE +RibbonAssignResources.text=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +RibbonAssignResources.tooltip=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD +RibbonProjectsDialog.text=\u03A0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF \u0394\u03B9\u03B1\u03BB\u03CC\u03B3\u03BF\u03C5 \u0388\u03C1\u03B3\u03C9\u03BD +RibbonProjectsDialog.tooltip=\u0388\u03C1\u03B3\u03B1 +RibbonUpdateTasks.text=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 +RibbonUpdateTasks.tooltip=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD +RibbonUpdateTasks.mnemonic=T +RibbonUpdateProject.text=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 +RibbonUpdateProject.tooltip=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5 +RibbonUpdateProject.mnemonic=P +RibbonSaveBaseline.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +RibbonSaveBaseline.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +RibbonSaveBaseline.mnemonic=S +RibbonClearBaseline.text=\u0395\u03BA\u03BA\u03B1\u03B8\u03AC\u03C1\u03B9\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +RibbonClearBaseline.tooltip=\u0395\u03BA\u03BA\u03B1\u03B8\u03AC\u03C1\u03B9\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2 +RibbonClearBaseline.mnemonic=C +RibbonGantt.text=Gantt  +RibbonGantt.tooltip=Gantt  +RibbonTrackingGantt.text=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03CD\u03B8\u03B7\u03C3\u03B7 Gantt +RibbonTrackingGantt.tooltip=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03CD\u03B8\u03B7\u03C3\u03B7 Gantt +RibbonTaskUsageDetail.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonTaskUsageDetail.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonResourceUsageDetail.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonResourceUsageDetail.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonNetwork.text=\u0394\u03AF\u03BA\u03C4\u03C5\u03BF +RibbonNetwork.tooltip=\u0394\u03AF\u03BA\u03C4\u03C5\u03BF +RibbonResources.text=\u03A0\u03CC\u03C1\u03BF\u03B9 +RibbonResources.tooltip=\u03A0\u03CC\u03C1\u03BF\u03B9 +RibbonProjects.text=\u0388\u03C1\u03B3\u03B1 +RibbonProjects.tooltip=\u0388\u03C1\u03B3\u03B1 +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC +RibbonReport.tooltip=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC +RibbonHistogram.text=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +RibbonHistogram.tooltip=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +RibbonCharts.text=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1 +RibbonCharts.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1 +RibbonTaskUsage.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonTaskUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonResourceUsage.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonResourceUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonNoSubWindow.text=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF +RibbonNoSubWindow.tooltip=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF +RibbonNoTextHistogram.tooltip=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 +RibbonNoTextCharts.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1 +RibbonNoTextTaskUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2 +RibbonNoTextResourceUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5 +RibbonNoTextNoSubWindow.tooltip=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF +RibbonTopBarSaveProject.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5 +RibbonTopBarSaveProject.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5 +RibbonTopBarUndo.text=\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 +RibbonTopBarUndo.tooltip=\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7 +RibbonTopBarRedo.text=\u0395\u03C0\u03B1\u03BD\u03B5\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7 +RibbonTopBarRedo.tooltip=\u0395\u03C0\u03B1\u03BD\u03B5\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7 +PrintPreviewFirst.tooltip=\u03A0\u03C1\u03CE\u03C4\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewBack.tooltip=\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewForward.tooltip=\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewLast.tooltip=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewDown.tooltip=\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewUp.tooltip=\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1 +PrintPreviewZoomOut.tooltip=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7 +PrintPreviewZoomReset.tooltip=\u0395\u03C0\u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC \u03B6\u03BF\u03C5\u03BC +PrintPreviewZoomIn.tooltip=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7 +PrintPreviewFormat.tooltip=\u03A3\u03C4\u03AE\u03C3\u03B9\u03BC\u03BF \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2 +PrintPreviewPrint.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 +PrintPreviewPDF.tooltip=PDF  +PrintPreviewLeftView.tooltip=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03BF\u03CD \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2 +PrintPreviewRightView.tooltip=\u03A0\u03B1\u03C1\u03BF\u03C5\u03C3\u03AF\u03B1\u03C3\u03B7 \u03B4\u03B5\u03BE\u03B9\u03BF\u03CD \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2 +Help.text=\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1 +ChooseFilter.tooltip=\u03A6\u03B9\u03BB\u03C4\u03C1\u03AC\u03C1\u03B9\u03C3\u03BC\u03B1 +ChooseSort.tooltip=\u03A4\u03B1\u03BE\u03B9\u03BD\u03CC\u03BC\u03B7\u03C3\u03B7 +ChooseGroup.tooltip=\u039F\u03BC\u03B1\u03B4\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 + + diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_it.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_it.properties index bbbb7cd..d20917c 100644 --- a/projectlibre_ui/src/com/projectlibre1/menu/menu_it.properties +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_it.properties @@ -1,214 +1,216 @@ -############################################################################### -# The contents of this file are subject to the Common Public Attribution License -# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public -# License Version 1.1 but Sections 14 and 15 have been added to cover use of -# software over a computer network and provide for limited attribution for the -# Original Developer. In addition, Exhibit A has been modified to be consistent -# with Exhibit B. -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the -# specific language governing rights and limitations under the License. The -# Original Code is ProjectLibre. The Original Developer is the Initial Developer -# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are -# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by -# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor -# ProjectLibre, Inc. -# -# Alternatively, the contents of this file may be used under the terms of the -# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case -# the provisions of the ProjectLibre License are applicable instead of those above. -# If you wish to allow use of your version of this file only under the terms of the -# ProjectLibre License and not to allow others to use your version of this file -# under the CPAL, indicate your decision by deleting the provisions above and -# replace them with the notice and other provisions required by the ProjectLibre -# License. If you do not delete the provisions above, a recipient may use your -# version of this file under either the CPAL or the ProjectLibre Licenses. -# -# -# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices -# in the Source Code files of the Original Code. You should use the text of this -# Exhibit A rather than the text found in the Original Code Source Code for Your -# Modifications.] -# -# EXHIBIT B. Attribution Information for ProjectLibre required -# -# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. -# Attribution Phrase (not exceeding 10 words): -# ProjectLibre, open source project management software. -# Attribution URL: http://www.projectlibre.com -# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with -# alternatives listed on http://www.projectlibre.com/logo -# -# Display of Attribution Information is required in Larger Works which are defined -# in the CPAL as a work which combines Covered Code or portions thereof with code -# not governed by the terms of the CPAL. However, in addition to the other notice -# obligations, all copies of the Covered Code in Executable and Source Code form -# distributed must, as a form of attribution of the original author, include on -# each user interface screen the "ProjectLibre" logo visible to all users. -# The ProjectLibre logo should be located horizontally aligned with the menu bar -# and left justified on the top left of the screen adjacent to the File menu. The -# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" -# logo it must direct them back to http://www.projectlibre.com. -############################################################################### -# -# -# LOCALIZATION NOTES: -# -# The only lines to localize have the following suffixes: -# .text -# .title -# .tooltip -# .mnemonic (normally first letter of .text) -# .accelerator (normally CTRL+first letter of .text) -# - -ProjectRibbonTask.title = File -TaskRibbonTask.title = Attivit -ResourceRibbonTask.title = Risorsa -ViewRibbonTask.title = Visualizza -FileRibbonBand.title = File -PrintRibbonBand.title = Stampa -ClipboardRibbonBand.title = Clipboard -#EditingRibbonBand.title = Modifica -TaskRibbonBand.title = Attivit -ResourceRibbonBand.title = Risorsa -ProjectRibbonBand.title = Progetto -TaskViewsZoomRibbonBand.title = Viste -TaskViewsRibbonBand.title = Viste attivit -ResourceViewsZoomRibbonBand.title = Viste -ResourceViewsRibbonBand.title = Viste risorsa -OtherViewsRibbonBand.title = Altre viste -SubViewsRibbonBand.title = Sotto-viste -FiltersRibbonBand.title = Filtri -RibbonNewProject.text =Nuovo -RibbonNewProject.tooltip =Nuovo progetto -RibbonOpenProject.text =Apri -RibbonOpenProject.tooltip =Apri progetto -RibbonSaveProject.text =Salva -RibbonSaveProject.tooltip =Salva progetto -RibbonSaveProjectAs.text =Salva con nome -RibbonSaveProjectAs.tooltip =Salva come nuovo progetto -RibbonCloseProject.text =Chiudi -RibbonCloseProject.tooltip =Chiudi progetto -RibbonPrint.text =Stampa -RibbonPrint.tooltip =Stampa il dcumento corrente. -RibbonPrintPreview.text =Anteprima -RibbonPrintPreview.tooltip =Anteprima di stampa -RibbonPDF.text =PDF -RibbonPDF.tooltip =PDF -RibbonCut.text =Taglia -RibbonCut.tooltip =Taglia -RibbonCopy.text =Copia -RibbonCopy.tooltip =Copia -RibbonPaste.text =Incolla -RibbonPaste.tooltip =Incolla -RibbonDelete.text =Cancella -RibbonDelete.tooltip =Cancella -RibbonZoomIn.text =Zoom avanti -RibbonZoomIn.tooltip =Zoom avanti -RibbonZoomOut.text =Zoom indietro -RibbonZoomOut.tooltip =Zoom indietro -RibbonFind.text =Trova -RibbonFind.tooltip = Trova -RibbonScrollToTask.text = Scorri fino all'attivit -RibbonScrollToTask.tooltip = Scorri fino all'attivit -RibbonOutdent.text =Diminuisci rientro -RibbonOutdent.tooltip =Diminuisci rientro -RibbonIndent.text =Aumenta rientro -RibbonIndent.tooltip =Aumenta rientro -RibbonLink.text=Inserisi collegamento -RibbonLink.tooltip=Inserisci collegamento -RibbonUnlink.text=Elimina collegamento -RibbonUnlink.tooltip=Elimina collegamento -RibbonTaskInformation.text =Informazioni -RibbonTaskInformation.tooltip =Informazioni attivit -RibbonResourceInformation.text =Informazioni -RibbonResourceInformation.tooltip =Informazioni risorsa -RibbonProjectInformation.text =Informazioni -RibbonProjectInformation.tooltip =Informazioni progetto -RibbonChangeWorkingTime.text=Calendario -RibbonChangeWorkingTime.tooltip=Modifica il calendario di lavoro -RibbonNotes.text =Note -RibbonNotes.tooltip =Note... -RibbonInsert.text =Inserisci -RibbonInsert.tooltip =Inserisci -RibbonAssignResources.text=Assegna risorse -RibbonAssignResources.tooltip=Assegna risorse -RibbonProjectsDialog.text =Finestra progetti -RibbonProjectsDialog.tooltip =Progetti -RibbonUpdateTasks.text =Aggiorna -RibbonUpdateTasks.tooltip =Aggiorna attivit... -RibbonUpdateTasks.mnemonic = A -RibbonUpdateProject.text =Aggiorna -RibbonUpdateProject.tooltip =Aggiorna progetto... -RibbonUpdateProject.mnemonic = P -RibbonSaveBaseline.text =Salva Baseline -RibbonSaveBaseline.tooltip =Salva Baseline... -RibbonSaveBaseline.mnemonic = S -RibbonClearBaseline.text =Elimina Baseline -RibbonClearBaseline.tooltip =Elimina Baseline... -RibbonClearBaseline.mnemonic = C -RibbonGantt.text=Gantt -RibbonGantt.tooltip=Gantt -RibbonTrackingGantt.text=Tracking Gantt -RibbonTrackingGantt.tooltip=Tracking Gantt -RibbonTaskUsageDetail.text=Uso delle attivit -RibbonTaskUsageDetail.tooltip=Uso delle attivit -RibbonResourceUsageDetail.text=Uso delle risorse -RibbonResourceUsageDetail.tooltip=Uso delle risorse -RibbonNetwork.text=Network -RibbonNetwork.tooltip=Network -RibbonResources.text=Risorse -RibbonResources.tooltip=Risorse -RibbonProjects.text=Progetti -RibbonProjects.tooltip=Progetti -RibbonWBS.text=WBS -RibbonWBS.tooltip=WBS -RibbonRBS.text=RBS -RibbonRBS.tooltip=RBS -RibbonReport.text=Report -RibbonReport.tooltip=Report -RibbonHistogram.text=Istogramma -RibbonHistogram.tooltip=Istogramma -RibbonCharts.text=Grafici -RibbonCharts.tooltip=Grafici -RibbonTaskUsage.text=Uso delle attivit -RibbonTaskUsage.tooltip=Uso delle attivit -RibbonResourceUsage.text=Uso delle risorse -RibbonResourceUsage.tooltip=Uso delle risorse -RibbonNoSubWindow.text=Nessuna sotto-finestra -RibbonNoSubWindow.tooltip=Nessuna sotto-finestra -RibbonNoTextHistogram.tooltip=Istogramma -RibbonNoTextCharts.tooltip=Grafici -RibbonNoTextTaskUsage.tooltip=Utilizzo attivit -RibbonNoTextResourceUsage.tooltip=Utilizzo risorse -RibbonNoTextNoSubWindow.tooltip=Nessuna sotto-finestra -RibbonTopBarSaveProject.text=Salva progetto -RibbonTopBarSaveProject.tooltip=Salva progetto -RibbonTopBarUndo.text=Annulla -RibbonTopBarUndo.tooltip=Annulla -RibbonTopBarRedo.text=Ripeti -RibbonTopBarRedo.tooltip=Ripeti -PrintPreviewFirst.tooltip=Prima pagina -PrintPreviewBack.tooltip=Pagina precedente -PrintPreviewForward.tooltip = Pagina successiva -PrintPreviewLast.tooltip = Ultima pagina -PrintPreviewDown.tooltip = Pagina precedente -PrintPreviewUp.tooltip = Pagina successiva -PrintPreviewZoomOut.tooltip = Zoom indietro -PrintPreviewZoomReset.tooltip = Ripristina Zoom -PrintPreviewZoomIn.tooltip = Zoom avanti -PrintPreviewFormat.tooltip = Impostazioni pagina -PrintPreviewPrint.tooltip = Stampa -PrintPreviewPDF.tooltip = PDF -PrintPreviewLeftView.tooltip = Mostra la parte sinistra -PrintPreviewRightView.tooltip = Mostra la parte destra -Help.text = Aiuto -ChooseFilter.tooltip = Filtro -ChooseSort.tooltip = Ordina -ChooseGroup.tooltip = Gruppo - - +############################################################################### +# The contents of this file are subject to the Common Public Attribution License +# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# software over a computer network and provide for limited attribution for the +# Original Developer. In addition, Exhibit A has been modified to be consistent +# with Exhibit B. +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# specific language governing rights and limitations under the License. The +# Original Code is ProjectLibre. The Original Developer is the Initial Developer +# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are +# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by +# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor +# ProjectLibre, Inc. +# +# Alternatively, the contents of this file may be used under the terms of the +# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +# the provisions of the ProjectLibre License are applicable instead of those above. +# If you wish to allow use of your version of this file only under the terms of the +# ProjectLibre License and not to allow others to use your version of this file +# under the CPAL, indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by the ProjectLibre +# License. If you do not delete the provisions above, a recipient may use your +# version of this file under either the CPAL or the ProjectLibre Licenses. +# +# +# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices +# in the Source Code files of the Original Code. You should use the text of this +# Exhibit A rather than the text found in the Original Code Source Code for Your +# Modifications.] +# +# EXHIBIT B. Attribution Information for ProjectLibre required +# +# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. +# Attribution Phrase (not exceeding 10 words): +# ProjectLibre, open source project management software. +# Attribution URL: http://www.projectlibre.com +# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +# alternatives listed on http://www.projectlibre.com/logo +# +# Display of Attribution Information is required in Larger Works which are defined +# in the CPAL as a work which combines Covered Code or portions thereof with code +# not governed by the terms of the CPAL. However, in addition to the other notice +# obligations, all copies of the Covered Code in Executable and Source Code form +# distributed must, as a form of attribution of the original author, include on +# each user interface screen the "ProjectLibre" logo visible to all users. +# The ProjectLibre logo should be located horizontally aligned with the menu bar +# and left justified on the top left of the screen adjacent to the File menu. The +# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" +# logo it must direct them back to http://www.projectlibre.com. +############################################################################### +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + +ProjectRibbonTask.title = File +TaskRibbonTask.title = Attività +ResourceRibbonTask.title = Risorsa +ViewRibbonTask.title = Visualizza +FileRibbonBand.title = File +PrintRibbonBand.title = Stampa +ClipboardRibbonBand.title = Clipboard- appunti +#EditingRibbonBand.title = Modifica +TaskRibbonBand.title = Attività +ResourceRibbonBand.title = Risorsa +ProjectRibbonBand.title = Progetto +TaskViewsZoomRibbonBand.title = Viste +TaskViewsRibbonBand.title = Viste attività +ResourceViewsZoomRibbonBand.title = Viste +ResourceViewsRibbonBand.title = Viste risorsa +OtherViewsRibbonBand.title = Altre viste +SubViewsRibbonBand.title = Sotto-viste +FiltersRibbonBand.title = Filtri +RibbonNewProject.text =Nuovo +RibbonNewProject.tooltip =Nuovo progetto +RibbonOpenProject.text =Apri +RibbonOpenProject.tooltip =Apri progetto +RibbonSaveProject.text =Salva +RibbonSaveProject.tooltip =Salva progetto +RibbonSaveProjectAs.text =Salva con nome +RibbonSaveProjectAs.tooltip =Salva come nuovo progetto +RibbonCloseProject.text =Chiudi +RibbonCloseProject.tooltip =Chiudi progetto +RibbonPrint.text =Stampa +RibbonPrint.tooltip =Stampa il dcumento corrente. +RibbonPrintPreview.text =Anteprima +RibbonPrintPreview.tooltip =Anteprima di stampa +RibbonPDF.text =PDF +RibbonPDF.tooltip =PDF +RibbonCut.text =Taglia +RibbonCut.tooltip =Taglia +RibbonCopy.text =Copia +RibbonCopy.tooltip =Copia +RibbonPaste.text =Incolla +RibbonPaste.tooltip =Incolla +RibbonDelete.text =Cancella +RibbonDelete.tooltip =Cancella +RibbonZoomIn.text =Zoom avanti +RibbonZoomIn.tooltip =Zoom avanti +RibbonZoomOut.text =Zoom indietro +RibbonZoomOut.tooltip =Zoom indietro +RibbonFind.text =Trova +RibbonFind.tooltip = Trova +RibbonScrollToTask.text = Scorri fino all'attività +RibbonScrollToTask.tooltip = Scorri fino all'attività +RibbonOutdent.text =Diminuisci rientro +RibbonOutdent.tooltip =Diminuisci rientro +RibbonIndent.text =Aumenta rientro +RibbonIndent.tooltip =Aumenta rientro +RibbonLink.text=Inserisi collegamento +RibbonLink.tooltip=Inserisci collegamento +RibbonUnlink.text=Elimina collegamento +RibbonUnlink.tooltip=Elimina collegamento +RibbonTaskInformation.text =Informazioni +RibbonTaskInformation.tooltip =Informazioni attività +RibbonResourceInformation.text =Informazioni +RibbonResourceInformation.tooltip =Informazioni risorsa +RibbonProjectInformation.text =Informazioni +RibbonProjectInformation.tooltip =Informazioni progetto +RibbonChangeWorkingTime.text=Calendario +RibbonChangeWorkingTime.tooltip=Modifica il calendario di lavoro +RibbonNotes.text =Note +RibbonNotes.tooltip =Note... +RibbonInsert.text =Inserisci +RibbonInsert.tooltip =Inserisci +RibbonAssignResources.text=Assegna risorse +RibbonAssignResources.tooltip=Assegna risorse +RibbonProjectsDialog.text =Finestra progetti +RibbonProjectsDialog.tooltip =Progetti +RibbonUpdateTasks.text =Aggiorna +RibbonUpdateTasks.tooltip =Aggiorna attività... +RibbonUpdateTasks.mnemonic = A +RibbonUpdateProject.text =Aggiorna +RibbonUpdateProject.tooltip =Aggiorna progetto... +RibbonUpdateProject.mnemonic = P +RibbonSaveBaseline.text =Salva Baseline +RibbonSaveBaseline.tooltip =Salva Baseline... +RibbonSaveBaseline.mnemonic = S +RibbonClearBaseline.text =Elimina Baseline +RibbonClearBaseline.tooltip =Elimina Baseline... +RibbonClearBaseline.mnemonic = C +RibbonGantt.text=Gantt +RibbonGantt.tooltip=Gantt +RibbonTrackingGantt.text=Tracking Gantt +RibbonTrackingGantt.tooltip=Tracking Gantt +RibbonTaskUsageDetail.text=Uso delle attività +RibbonTaskUsageDetail.tooltip=Uso delle attività +RibbonResourceUsageDetail.text=Uso delle risorse +RibbonResourceUsageDetail.tooltip=Uso delle risorse +RibbonNetwork.text=Network Reticolo Logico +RibbonNetwork.tooltip=Network Reticolo Logico +RibbonResources.text=Risorse +RibbonResources.tooltip=Risorse +RibbonProjects.text=Progetti +RibbonProjects.tooltip=Progetti +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=Report +RibbonReport.tooltip=Report +RibbonHistogram.text=Istogramma +RibbonHistogram.tooltip=Istogramma +RibbonCharts.text=Grafici +RibbonCharts.tooltip=Grafici +RibbonTaskUsage.text=Uso delle attività Gestione delle attività +RibbonTaskUsage.tooltip= Uso delle attività Gestione delle attività +RibbonResourceUsage.text=Uso delle risorse +RibbonResourceUsage.tooltip=Uso delle risorse +RibbonNoSubWindow.text=Nessuna sotto-finestra +RibbonNoSubWindow.tooltip=Nessuna sotto-finestra +RibbonNoTextHistogram.tooltip=Istogramma +RibbonNoTextCharts.tooltip=Grafici +RibbonNoTextTaskUsage.tooltip=Utilizzo attività +RibbonNoTextResourceUsage.tooltip=Utilizzo risorse +RibbonNoTextNoSubWindow.tooltip=Nessuna sotto-finestra +RibbonTopBarSaveProject.text=Salva progetto +RibbonTopBarSaveProject.tooltip=Salva progetto +RibbonTopBarUndo.text=Annulla +RibbonTopBarUndo.tooltip=Annulla +RibbonTopBarRedo.text=Ripeti +RibbonTopBarRedo.tooltip=Ripeti +PrintPreviewFirst.tooltip=Prima pagina +PrintPreviewBack.tooltip=Pagina precedente +PrintPreviewForward.tooltip = Pagina successiva +PrintPreviewLast.tooltip = Ultima pagina +PrintPreviewDown.tooltip = Pagina precedente +PrintPreviewUp.tooltip = Pagina successiva +PrintPreviewZoomOut.tooltip = Zoom indietro +PrintPreviewZoomReset.tooltip = Ripristina Zoom +PrintPreviewZoomIn.tooltip = Zoom avanti +PrintPreviewFormat.tooltip = Impostazioni pagina +PrintPreviewPrint.tooltip = Stampa +PrintPreviewPDF.tooltip = PDF +PrintPreviewLeftView.tooltip = Mostra la parte sinistra +PrintPreviewRightView.tooltip = Mostra la parte destra +Help.text = Aiuto +ChooseFilter.tooltip = Filtro +ChooseSort.tooltip = Ordina +ChooseGroup.tooltip = Gruppo + + + + diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_it2.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_it2.properties new file mode 100644 index 0000000..bbbb7cd --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_it2.properties @@ -0,0 +1,214 @@ +############################################################################### +# The contents of this file are subject to the Common Public Attribution License +# Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# software over a computer network and provide for limited attribution for the +# Original Developer. In addition, Exhibit A has been modified to be consistent +# with Exhibit B. +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# specific language governing rights and limitations under the License. The +# Original Code is ProjectLibre. The Original Developer is the Initial Developer +# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are +# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by +# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor +# ProjectLibre, Inc. +# +# Alternatively, the contents of this file may be used under the terms of the +# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +# the provisions of the ProjectLibre License are applicable instead of those above. +# If you wish to allow use of your version of this file only under the terms of the +# ProjectLibre License and not to allow others to use your version of this file +# under the CPAL, indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by the ProjectLibre +# License. If you do not delete the provisions above, a recipient may use your +# version of this file under either the CPAL or the ProjectLibre Licenses. +# +# +# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices +# in the Source Code files of the Original Code. You should use the text of this +# Exhibit A rather than the text found in the Original Code Source Code for Your +# Modifications.] +# +# EXHIBIT B. Attribution Information for ProjectLibre required +# +# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc. +# Attribution Phrase (not exceeding 10 words): +# ProjectLibre, open source project management software. +# Attribution URL: http://www.projectlibre.com +# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +# alternatives listed on http://www.projectlibre.com/logo +# +# Display of Attribution Information is required in Larger Works which are defined +# in the CPAL as a work which combines Covered Code or portions thereof with code +# not governed by the terms of the CPAL. However, in addition to the other notice +# obligations, all copies of the Covered Code in Executable and Source Code form +# distributed must, as a form of attribution of the original author, include on +# each user interface screen the "ProjectLibre" logo visible to all users. +# The ProjectLibre logo should be located horizontally aligned with the menu bar +# and left justified on the top left of the screen adjacent to the File menu. The +# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" +# logo it must direct them back to http://www.projectlibre.com. +############################################################################### +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + +ProjectRibbonTask.title = File +TaskRibbonTask.title = Attivit +ResourceRibbonTask.title = Risorsa +ViewRibbonTask.title = Visualizza +FileRibbonBand.title = File +PrintRibbonBand.title = Stampa +ClipboardRibbonBand.title = Clipboard +#EditingRibbonBand.title = Modifica +TaskRibbonBand.title = Attivit +ResourceRibbonBand.title = Risorsa +ProjectRibbonBand.title = Progetto +TaskViewsZoomRibbonBand.title = Viste +TaskViewsRibbonBand.title = Viste attivit +ResourceViewsZoomRibbonBand.title = Viste +ResourceViewsRibbonBand.title = Viste risorsa +OtherViewsRibbonBand.title = Altre viste +SubViewsRibbonBand.title = Sotto-viste +FiltersRibbonBand.title = Filtri +RibbonNewProject.text =Nuovo +RibbonNewProject.tooltip =Nuovo progetto +RibbonOpenProject.text =Apri +RibbonOpenProject.tooltip =Apri progetto +RibbonSaveProject.text =Salva +RibbonSaveProject.tooltip =Salva progetto +RibbonSaveProjectAs.text =Salva con nome +RibbonSaveProjectAs.tooltip =Salva come nuovo progetto +RibbonCloseProject.text =Chiudi +RibbonCloseProject.tooltip =Chiudi progetto +RibbonPrint.text =Stampa +RibbonPrint.tooltip =Stampa il dcumento corrente. +RibbonPrintPreview.text =Anteprima +RibbonPrintPreview.tooltip =Anteprima di stampa +RibbonPDF.text =PDF +RibbonPDF.tooltip =PDF +RibbonCut.text =Taglia +RibbonCut.tooltip =Taglia +RibbonCopy.text =Copia +RibbonCopy.tooltip =Copia +RibbonPaste.text =Incolla +RibbonPaste.tooltip =Incolla +RibbonDelete.text =Cancella +RibbonDelete.tooltip =Cancella +RibbonZoomIn.text =Zoom avanti +RibbonZoomIn.tooltip =Zoom avanti +RibbonZoomOut.text =Zoom indietro +RibbonZoomOut.tooltip =Zoom indietro +RibbonFind.text =Trova +RibbonFind.tooltip = Trova +RibbonScrollToTask.text = Scorri fino all'attivit +RibbonScrollToTask.tooltip = Scorri fino all'attivit +RibbonOutdent.text =Diminuisci rientro +RibbonOutdent.tooltip =Diminuisci rientro +RibbonIndent.text =Aumenta rientro +RibbonIndent.tooltip =Aumenta rientro +RibbonLink.text=Inserisi collegamento +RibbonLink.tooltip=Inserisci collegamento +RibbonUnlink.text=Elimina collegamento +RibbonUnlink.tooltip=Elimina collegamento +RibbonTaskInformation.text =Informazioni +RibbonTaskInformation.tooltip =Informazioni attivit +RibbonResourceInformation.text =Informazioni +RibbonResourceInformation.tooltip =Informazioni risorsa +RibbonProjectInformation.text =Informazioni +RibbonProjectInformation.tooltip =Informazioni progetto +RibbonChangeWorkingTime.text=Calendario +RibbonChangeWorkingTime.tooltip=Modifica il calendario di lavoro +RibbonNotes.text =Note +RibbonNotes.tooltip =Note... +RibbonInsert.text =Inserisci +RibbonInsert.tooltip =Inserisci +RibbonAssignResources.text=Assegna risorse +RibbonAssignResources.tooltip=Assegna risorse +RibbonProjectsDialog.text =Finestra progetti +RibbonProjectsDialog.tooltip =Progetti +RibbonUpdateTasks.text =Aggiorna +RibbonUpdateTasks.tooltip =Aggiorna attivit... +RibbonUpdateTasks.mnemonic = A +RibbonUpdateProject.text =Aggiorna +RibbonUpdateProject.tooltip =Aggiorna progetto... +RibbonUpdateProject.mnemonic = P +RibbonSaveBaseline.text =Salva Baseline +RibbonSaveBaseline.tooltip =Salva Baseline... +RibbonSaveBaseline.mnemonic = S +RibbonClearBaseline.text =Elimina Baseline +RibbonClearBaseline.tooltip =Elimina Baseline... +RibbonClearBaseline.mnemonic = C +RibbonGantt.text=Gantt +RibbonGantt.tooltip=Gantt +RibbonTrackingGantt.text=Tracking Gantt +RibbonTrackingGantt.tooltip=Tracking Gantt +RibbonTaskUsageDetail.text=Uso delle attivit +RibbonTaskUsageDetail.tooltip=Uso delle attivit +RibbonResourceUsageDetail.text=Uso delle risorse +RibbonResourceUsageDetail.tooltip=Uso delle risorse +RibbonNetwork.text=Network +RibbonNetwork.tooltip=Network +RibbonResources.text=Risorse +RibbonResources.tooltip=Risorse +RibbonProjects.text=Progetti +RibbonProjects.tooltip=Progetti +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=Report +RibbonReport.tooltip=Report +RibbonHistogram.text=Istogramma +RibbonHistogram.tooltip=Istogramma +RibbonCharts.text=Grafici +RibbonCharts.tooltip=Grafici +RibbonTaskUsage.text=Uso delle attivit +RibbonTaskUsage.tooltip=Uso delle attivit +RibbonResourceUsage.text=Uso delle risorse +RibbonResourceUsage.tooltip=Uso delle risorse +RibbonNoSubWindow.text=Nessuna sotto-finestra +RibbonNoSubWindow.tooltip=Nessuna sotto-finestra +RibbonNoTextHistogram.tooltip=Istogramma +RibbonNoTextCharts.tooltip=Grafici +RibbonNoTextTaskUsage.tooltip=Utilizzo attivit +RibbonNoTextResourceUsage.tooltip=Utilizzo risorse +RibbonNoTextNoSubWindow.tooltip=Nessuna sotto-finestra +RibbonTopBarSaveProject.text=Salva progetto +RibbonTopBarSaveProject.tooltip=Salva progetto +RibbonTopBarUndo.text=Annulla +RibbonTopBarUndo.tooltip=Annulla +RibbonTopBarRedo.text=Ripeti +RibbonTopBarRedo.tooltip=Ripeti +PrintPreviewFirst.tooltip=Prima pagina +PrintPreviewBack.tooltip=Pagina precedente +PrintPreviewForward.tooltip = Pagina successiva +PrintPreviewLast.tooltip = Ultima pagina +PrintPreviewDown.tooltip = Pagina precedente +PrintPreviewUp.tooltip = Pagina successiva +PrintPreviewZoomOut.tooltip = Zoom indietro +PrintPreviewZoomReset.tooltip = Ripristina Zoom +PrintPreviewZoomIn.tooltip = Zoom avanti +PrintPreviewFormat.tooltip = Impostazioni pagina +PrintPreviewPrint.tooltip = Stampa +PrintPreviewPDF.tooltip = PDF +PrintPreviewLeftView.tooltip = Mostra la parte sinistra +PrintPreviewRightView.tooltip = Mostra la parte destra +Help.text = Aiuto +ChooseFilter.tooltip = Filtro +ChooseSort.tooltip = Ordina +ChooseGroup.tooltip = Gruppo + + diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_th.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_th.properties new file mode 100644 index 0000000..71407f7 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_th.properties @@ -0,0 +1,231 @@ +#The contents of this file are subject to the Common Public Attribution License  +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public  +#License Version 1.1 but Sections 14 and 15 have been added to cover use of  +#software over a computer network and provide for limited attribution for the  +#Original Developer. In addition, Exhibit A has been modified to be consistent  +#with Exhibit B.  +# +#Software distributed under the License is distributed on an "AS IS" basis,  +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the  +#specific language governing rights and limitations under the License. The  +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and  +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)  +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre  +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and  +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the  +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case  +#the provisions of the ProjectLibre License are applicable instead of those above.  +#If you wish to allow use of your version of this file only under the terms of the  +#ProjectLibre License and not to allow others to use your version of this file under  +#the CPAL, indicate your decision by deleting the provisions above and replace them  +#with the notice and other provisions required by the Project Libre License. If you  +#do not delete the provisions above, a recipient may use your version of this file  +#under either the CPAL or the ProjectLibre Licenses.  +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices  +#in the Source Code files of the Original Code. You should use the text of this  +#Exhibit A rather than the text found in the Original Code Source Code for Your  +#Modifications.]  +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of  +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with  +#alternatives listed on http://www.projectlibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally  +#aligned immediately above the ProjectLibre logo and left justified in alignment with the  +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the  +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source  +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with  +#alternatives listed on http://www.ProjectLibre.com/logo  +# +#Display of Attribution Information is required in Larger Works which are defined in  +#the CPAL as a work which combines Covered Code or portions thereof with code not  +#governed by the terms of the CPAL. However, in addition to the other notice  +#obligations, all copies of the Covered Code in Executable and Source Code form  +#distributed must, as a form of attribution of the original author, include on each  +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.  +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left  +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be  +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them  +#back to http://www.ProjectLibre.com. +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + +ProjectRibbonTask.title=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +TaskRibbonTask.title=\u0E07\u0E32\u0E19 +ResourceRibbonTask.title=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ViewRibbonTask.title=\u0E21\u0E2D\u0E07 +FileRibbonBand.title=\u0E41\u0E1F\u0E49\u0E21 +PrintRibbonBand.title=\u0E1E\u0E34\u0E21\u0E1E\u0E4C +ClipboardRibbonBand.title=\u0E04\u0E25\u0E34\u0E1B\u0E1A\u0E2D\u0E23\u0E4C\u0E14 +#EditingRibbonBand.title=\u0E41\u0E01\u0E49\u0E44\u0E02 +TaskRibbonBand.title=\u0E07\u0E32\u0E19 +ResourceRibbonBand.title=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ProjectRibbonBand.title=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +TaskViewsZoomRibbonBand.title=\u0E22\u0E48\u0E2D\u0E02\u0E22\u0E32\u0E22\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 +TaskViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08 +ResourceViewsZoomRibbonBand.title=\u0E22\u0E48\u0E2D\u0E02\u0E22\u0E32\u0E22\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +ResourceViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +OtherViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E2D\u0E37\u0E48\u0E19 \u0E46 +SubViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E22\u0E48\u0E2D\u0E22 +FiltersRibbonBand.title=\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07 +RibbonNewProject.text=\u0E2A\u0E23\u0E49\u0E32\u0E07 +RibbonNewProject.tooltip=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonOpenProject.text=\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E1F\u0E49\u0E21 +RibbonOpenProject.tooltip=\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E1F\u0E49\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonSaveProject.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01 +RibbonSaveProject.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonSaveProjectAs.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19 +RibbonSaveProjectAs.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E37\u0E48\u0E19  +RibbonCloseProject.text=\u0E1B\u0E34\u0E14 +RibbonCloseProject.tooltip=\u0E1B\u0E34\u0E14\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonPrint.text=\u0E1E\u0E34\u0E21\u0E1E\u0E4C +RibbonPrint.tooltip=\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19 +RibbonPrintPreview.text=\u0E14\u0E39\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07 +RibbonPrintPreview.tooltip=\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C +RibbonPDF.text=PDF +RibbonPDF.tooltip=PDF +RibbonCut.text=\u0E04\u0E31\u0E14 +RibbonCut.tooltip=\u0E04\u0E31\u0E14 +RibbonCopy.text=\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01 +RibbonCopy.tooltip=\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01 +RibbonPaste.text=\u0E27\u0E32\u0E07 +RibbonPaste.tooltip=\u0E27\u0E32\u0E07 +RibbonDelete.text=\u0E25\u0E1A +RibbonDelete.tooltip=\u0E25\u0E1A +RibbonZoomIn.text=\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32 +RibbonZoomIn.tooltip=\u0E0B\u0E39\u0E12\u0E40\u0E02\u0E49\u0E32 +RibbonZoomOut.text=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01 +RibbonZoomOut.tooltip=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01 +RibbonFind.text=\u0E04\u0E49\u0E19\u0E2B\u0E32 +RibbonFind.tooltip=\u0E04\u0E49\u0E19\u0E2B\u0E32 +RibbonScrollToTask.text=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E07\u0E32\u0E19 +RibbonScrollToTask.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E07\u0E32\u0E19 +RibbonOutdent.text=\u0E25\u0E14\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +RibbonOutdent.tooltip=\u0E25\u0E14\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +RibbonIndent.text=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +RibbonIndent.tooltip=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07 +RibbonLink.text=\u0E25\u0E34\u0E49\u0E07\u0E04\u0E4C +RibbonLink.tooltip=\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07 +RibbonUnlink.text=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E25\u0E34\u0E49\u0E07\u0E04\u0E4C +RibbonUnlink.tooltip=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07 +RibbonTaskInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25 +RibbonTaskInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19 +RibbonResourceInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonResourceInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonProjectInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonProjectInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonChangeWorkingTime.text=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19 +RibbonChangeWorkingTime.tooltip=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19 +RibbonNotes.text=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38 +RibbonNotes.tooltip=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38 +RibbonInsert.text=\u0E41\u0E17\u0E23\u0E01 +RibbonInsert.tooltip=\u0E41\u0E17\u0E23\u0E01 +RibbonAssignResources.text=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonAssignResources.tooltip=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonProjectsDialog.text=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonProjectsDialog.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonUpdateTasks.text=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19 +RibbonUpdateTasks.tooltip=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19 +RibbonUpdateTasks.mnemonic=T +RibbonUpdateProject.text=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonUpdateProject.tooltip=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonUpdateProject.mnemonic=P +RibbonSaveBaseline.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +RibbonSaveBaseline.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +RibbonSaveBaseline.mnemonic=S +RibbonClearBaseline.text=\u0E25\u0E1A\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +RibbonClearBaseline.tooltip=\u0E25\u0E1A\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19 +RibbonClearBaseline.mnemonic=C +RibbonGantt.text=Gantt +RibbonGantt.tooltip=Gantt +RibbonTrackingGantt.text=\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 Gantt +RibbonTrackingGantt.tooltip=\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 Gantt +RibbonTaskUsageDetail.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +RibbonTaskUsageDetail.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +RibbonResourceUsageDetail.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonResourceUsageDetail.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonNetwork.text=\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22 +RibbonNetwork.tooltip=\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C +RibbonResources.text=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonResources.tooltip=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonProjects.text=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonProjects.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonWBS.text=WBS +RibbonWBS.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E01\u0E32\u0E23\u0E41\u0E1A\u0E48\u0E07\u0E07\u0E32\u0E19 +RibbonRBS.text=RBS +RibbonRBS.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E01\u0E32\u0E23\u0E41\u0E1A\u0E48\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonReport.text=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19 +RibbonReport.tooltip=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19 +RibbonHistogram.text=\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21 +RibbonHistogram.tooltip=\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21 +RibbonCharts.text=\u0E01\u0E23\u0E32\u0E1F +RibbonCharts.tooltip=\u0E01\u0E23\u0E32\u0E1F +RibbonTaskUsage.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +RibbonTaskUsage.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +RibbonResourceUsage.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonResourceUsage.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B +RibbonNoSubWindow.text=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14 +RibbonNoSubWindow.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E22\u0E48\u0E2D\u0E22 +RibbonNoTextHistogram.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21 +RibbonNoTextCharts.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E23\u0E32\u0E1F +RibbonNoTextTaskUsage.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 +RibbonNoTextResourceUsage.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23 +RibbonNoTextNoSubWindow.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E22\u0E48\u0E2D\u0E22 +RibbonTopBarSaveProject.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonTopBarSaveProject.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23 +RibbonTopBarUndo.text=\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A +RibbonTopBarUndo.tooltip=\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A +RibbonTopBarRedo.text=\u0E17\u0E33\u0E0B\u0E49\u0E33 +RibbonTopBarRedo.tooltip=\u0E17\u0E33\u0E0B\u0E49\u0E33 +PrintPreviewFirst.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E41\u0E23\u0E01 +PrintPreviewBack.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27 +PrintPreviewForward.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E48\u0E2D\u0E44\u0E1B +PrintPreviewLast.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22 +PrintPreviewDown.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E25\u0E07 +PrintPreviewUp.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E02\u0E36\u0E49\u0E19 +PrintPreviewZoomOut.tooltip=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01 +PrintPreviewZoomReset.tooltip=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E0B\u0E39\u0E21 +PrintPreviewZoomIn.tooltip=\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32 +PrintPreviewFormat.tooltip=\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A +PrintPreviewPrint.tooltip=\u0E1E\u0E34\u0E21\u0E1E\u0E4C +PrintPreviewPDF.tooltip=PDF +PrintPreviewLeftView.tooltip=\u0E41\u0E2A\u0E14\u0E07\u0E14\u0E49\u0E32\u0E19\u0E0B\u0E49\u0E32\u0E22 +PrintPreviewRightView.tooltip=\u0E41\u0E2A\u0E14\u0E07\u0E14\u0E49\u0E32\u0E19\u0E02\u0E27\u0E32 +Help.text=\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D +ChooseFilter.tooltip=\u0E01\u0E23\u0E2D\u0E07 +ChooseSort.tooltip=\u0E40\u0E23\u0E35\u0E22\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A +ChooseGroup.tooltip=\u0E01\u0E25\u0E38\u0E48\u0E21 diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_vi.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_vi.properties new file mode 100644 index 0000000..5464da8 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_vi.properties @@ -0,0 +1,301 @@ +# The contents of this file are subject to the Common Public Attribution License +# N\u1ED9i dung c\u1EE7a t\u1EC7p này ph\u1EA3i tuân theo Gi\u1EA5y Phép Phân B\u1ED5 Công C\u1ED9ng Chung +# Version 1.0 (the "License"); you may not use this file except in compliance with +# Phiên b\u1EA3n 1.0 ("Gi\u1EA5y phép"); b\u1EA1n không th\u1EC3 s\u1EED d\u1EE5ng t\u1EC7p này tr\u1EEB khi tuân th\u1EE7 +# the License. You may obtain a copy of the License at +# gi\u1EA5y phép. B\u1EA1n có th\u1EC3 nh\u1EADn \u0111\u01B0\u1EE3c m\u1ED9t b\u1EA3n sao c\u1EE7a Gi\u1EA5y phép t\u1EA1i +# http://www.projity.com/license . The License is based on the Mozilla Public +# http://www.projity.com/license. Gi\u1EA5y phép d\u1EF1a trên Mozilla Public +# License Version 1.1 but Sections 14 and 15 have been added to cover use of +# Phiên b\u1EA3n Gi\u1EA5y phép 1.1 nh\u01B0ng Ph\u1EA7n 14 và 15 \u0111ã \u0111\u01B0\u1EE3c thêm vào \u0111\u1EC3 s\u1EED d\u1EE5ng +# software over a computer network and provide for limited attribution for the +# ph\u1EA7n m\u1EC1m qua m\u1EA1ng máy tính và cung c\u1EA5p phân b\u1ED5 gi\u1EDBi h\u1EA1n cho +# Original Developer. In addition, Exhibit A has been modified to be consistent +# Nhà phát tri\u1EC3n g\u1ED1c. Ngoài ra, Ph\u1EE5 l\u1EE5c A \u0111ã \u0111\u01B0\u1EE3c s\u1EEDa \u0111\u1ED5i \u0111\u1EC3 phù h\u1EE3p +# with Exhibit B. +# v\u1EDBi Ph\u1EE5 l\u1EE5c B. +# Software distributed under the License is distributed on an "AS IS" basis, +# Ph\u1EA7n m\u1EC1m \u0111\u01B0\u1EE3c phân ph\u1ED1i theo Gi\u1EA5y phép \u0111\u01B0\u1EE3c phân ph\u1ED1i trên c\u01A1 s\u1EDF "NGUYÊN TR\u1EA0NG", +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +# KHÔNG B\u1EA2O HÀNH B\u1EA4T K\u1EF2 HÌNH TH\u1EE8C NÀO, dù rõ ràng hay ng\u1EE5 ý. Xem Gi\u1EA5y phép cho +# specific language governing rights and limitations under the License. The +# ngôn ng\u1EEF c\u1EE5 th\u1EC3 \u0111i\u1EC1u ch\u1EC9nh các quy\u1EC1n và gi\u1EDBi h\u1EA1n theo Gi\u1EA5y phép. Các +# Original Code is OpenProj and ProjectLibre. +# Mã g\u1ED1c là OpenProj và ProjectLibre . Nhà phát tri\u1EC3n chính là Nhà phát tri\u1EC3n ban \u0111\u1EA7u và +#The Original Developer is the Initial Developer and is both Projity, Inc and +# Nhà phát tri\u1EC3n chính là Nhà phát tri\u1EC3n ban \u0111\u1EA7u và c\u1EA3 Projity, Inc l\u1EABn +#ProjectLibre Inc. All portions of the code written by Projity are Copyright (c) +#ProjectLibre Inc. T\u1EA5t c\u1EA3 các ph\u1EA7n c\u1EE7a mã do Projity vi\u1EBFt \u0111\u1EC1u là B\u1EA3n quy\u1EC1n (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +# 2006, 2008. M\u1ECDi Quy\u1EC1n \u0111\u01B0\u1EE3c B\u1EA3o l\u01B0u. T\u1EA5t c\u1EA3 các ph\u1EA7n c\u1EE7a mã \u0111\u01B0\u1EE3c vi\u1EBFt b\u1EDFi ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors Projity, Inc. and +# là b\u1EA3n quy\u1EC1n © 2012. M\u1ECDi Quy\u1EC1n \u0111\u01B0\u1EE3c B\u1EA3o l\u01B0u. Ng\u01B0\u1EDDi \u0111óng góp Projity, Inc. và +#ProjectLibre, Inc. +#ProjectLibre, Inc. +#Alternatively, the contents of this file may be used under the terms of the +# Ngoài ra, n\u1ED9i dung c\u1EE7a t\u1EC7p này có th\u1EC3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +# Th\u1ECFa thu\u1EADn C\u1EA5p phép Ng\u01B0\u1EDDi dùng Cu\u1ED1i c\u1EE7a ProjectLibre (Gi\u1EA5y phép ProjectLibre), trong tr\u01B0\u1EDDng h\u1EE3p \u0111ó +#the provisions of the ProjectLibre License are applicable instead of those above. +# \u0111i\u1EC1u kho\u1EA3n c\u1EE7a Gi\u1EA5y phép ProjectLibre có th\u1EC3 áp d\u1EE5ng thay cho nh\u1EEFng \u0111i\u1EC1u kho\u1EA3n \u1EDF trên. +#If you wish to allow use of your version of this file only under the terms of the +# N\u1EBFu b\u1EA1n mu\u1ED1n ch\u1EC9 cho phép s\u1EED d\u1EE5ng phiên b\u1EA3n c\u1EE7a t\u1EC7p này theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a + +#ProjectLibre License and not to allow others to use your version of this file under +# Gi\u1EA5y phép ProjectLibre và không cho phép ng\u01B0\u1EDDi khác s\u1EED d\u1EE5ng phiên b\u1EA3n t\u1EC7p này c\u1EE7a b\u1EA1n theo +#the CPAL, indicate your decision by deleting the provisions above and replace them +# CPAL, cho bi\u1EBFt quy\u1EBFt \u0111\u1ECBnh c\u1EE7a b\u1EA1n b\u1EB1ng cách xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên và thay th\u1EBF chúng +#with the notice and other provisions required by the Project Libre License. If you +# v\u1EDBi thông báo và các \u0111i\u1EC1u kho\u1EA3n khác theo yêu c\u1EA7u c\u1EE7a Gi\u1EA5y phép Project Libre. N\u1EBFu b\u1EA1n +#do not delete the provisions above, a recipient may use your version of this file +# không xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên, ng\u01B0\u1EDDi nh\u1EADn có th\u1EC3 s\u1EED d\u1EE5ng phiên b\u1EA3n này c\u1EE7a b\u1EA1n +#under either the CPAL or the ProjectLibre Licenses. +# theo CPAL ho\u1EB7c Gi\u1EA5y phép ProjectLibre. +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +# [L\u01AFU Ý: V\u0103n b\u1EA3n c\u1EE7a Ph\u1EE5 l\u1EE5c A này có th\u1EC3 h\u01A1i khác so v\u1EDBi v\u0103n b\u1EA3n c\u1EE7a các thông báo +#in the Source Code files of the Original Code. You should use the text of this +# trong các t\u1EC7p Mã ngu\u1ED3n c\u1EE7a Mã g\u1ED1c. B\u1EA1n nên s\u1EED d\u1EE5ng v\u0103n b\u1EA3n +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Ph\u1EE5 L\u1EE5c A ch\u1EE9 không ph\u1EA3i là v\u0103n b\u1EA3n \u0111\u01B0\u1EE3c tìm th\u1EA5y trong Mã ngu\u1ED3n g\u1ED1c cho +#Modifications.] +# S\u1EEDa \u0111\u1ED5i.] +#EXHIBIT B. Attribution Information both ProjectLibre and OpenProj required +#Ph\u1EE5 l\u1EE5c B. C\u1EA7n có Thông tin Thu\u1ED9c tính cho c\u1EA3 ProjectLibre và OpenProj +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +# Thông báo v\u1EC1 B\u1EA3n quy\u1EC1n Ghi nh\u1EADn tác gi\u1EA3: B\u1EA3n quy\u1EC1n (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +# C\u1EE5m t\u1EEB Thu\u1ED9c tính (không quá 10 t\u1EEB): ProjectLibre, phiên b\u1EA3n c\u1EADp nh\u1EADt c\u1EE7a +#OpenProj +# OpenProj +#Attribution URL: http://www.projectlibre.com +# URL phân b\u1ED5: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +# Hình \u1EA3nh \u0110\u1ED3 h\u1ECDa nh\u01B0 \u0111\u01B0\u1EE3c cung c\u1EA5p trong Mã \u0111\u01B0\u1EE3c B\u1EA3o v\u1EC7 d\u01B0\u1EDBi d\u1EA1ng t\u1EC7p: projectlibre-logo.png v\u1EDBi +#alternatives listed on http://www.projectlibre.com/logo +# l\u1EF1a ch\u1ECDn thay th\u1EBF \u0111\u01B0\u1EE3c li\u1EC7t kê trên http://www.projectlibre.com/logo + +#Display of Attribution Information is required in Larger Works which are defined in +# C\u1EA7n có Hi\u1EC3n th\u1ECB Thông tin Phân b\u1ED5 trong s\u1EA3n ph\u1EA9m l\u1EDBn h\u01A1n \u0111\u01B0\u1EE3c \u0111\u1ECBnh ngh\u0129a trong +#the CPAL as a work which combines Covered Code or portions thereof with code not +# CPAL nh\u01B0 m\u1ED9t s\u1EA3n ph\u1EA9m k\u1EBFt h\u1EE3p Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 ho\u1EB7c các ph\u1EA7n c\u1EE7a nó v\u1EDBi mã không +#governed by the terms of the CPAL. However, in addition to the other notice +# \u0111\u01B0\u1EE3c \u0111i\u1EC1u ch\u1EC9nh b\u1EDFi các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a CPAL. Tuy nhiên, ngoài các thông báo + +#obligations, all copies of the Covered Code in Executable and Source Code form +# ngh\u0129a v\u1EE5 khác, t\u1EA5t c\u1EA3 các b\u1EA3n sao c\u1EE7a Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 \u1EDF d\u1EA1ng Mã ngu\u1ED3n và Có th\u1EC3 th\u1EF1c thi +#distributed must, as a form of attribution of the original author, include on each +# ph\u1EA3i \u0111\u01B0\u1EE3c phân ph\u1ED1i, nh\u01B0 m\u1ED9t hình th\u1EE9c ghi nh\u1EADn tác gi\u1EA3 g\u1ED1c, bao g\u1ED3m trên m\u1ED7i +#user interface screen the "OpenProj" and \u201CProjectLibre\u201D logos visible to all users. +# giao di\u1EC7n ng\u01B0\u1EDDi dùng hi\u1EC3n th\u1ECB logo "OpenProj" và \u201CProjectLibre \ u201D cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi dùng. +#The OpenProj logo should be located horizontally aligned with the menu bar and left +# Bi\u1EC3u tr\u01B0ng OpenProj ph\u1EA3i \u0111\u01B0\u1EE3c c\u0103n ch\u1EC9nh theo chi\u1EC1u ngang v\u1EDBi thanh menu và +#justified on the top left of the screen adjacent to the File menu. The logo must be +# c\u0103n trái \u1EDF trên cùng bên trái c\u1EE7a màn hình li\u1EC1n k\u1EC1 v\u1EDBi menu T\u1EC7p. Bi\u1EC3u t\u01B0\u1EE3ng ph\u1EA3i là +#at least 100 x 25 pixels. When users click on the "OpenProj" logo it must direct them +# ít nh\u1EA5t 100 x 25 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào logo "OpenProj", nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD +#back to http://www.projity.com. The ProjectLibre logo should be located horizontally +# quay l\u1EA1i http://www.projity.com. Logo ProjectLibre ph\u1EA3i \u0111\u01B0\u1EE3c \u0111\u1EB7t theo chi\u1EC1u ngang +#aligned immediately above the OpenProj logo and left justified in alignment with the +# c\u0103n ngay phía trên bi\u1EC3u tr\u01B0ng OpenProj và c\u0103n ch\u1EC9nh trái v\u1EDBi +#OpenProj logo. The logo must be at least 144 x 31 pixels. When users click on the +# Bi\u1EC3u tr\u01B0ng OpenProj. Bi\u1EC3u tr\u01B0ng ph\u1EA3i có kích th\u01B0\u1EDBc ít nh\u1EA5t là 144 x 31 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# "ProjectLibre" logo nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD tr\u1EDF l\u1EA1i http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2008 Projity, Inc. +# Thông báo v\u1EC1 B\u1EA3n quy\u1EC1n Ghi nh\u1EADn tác gi\u1EA3: B\u1EA3n quy\u1EC1n (c) 2006, 2008 Projity, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by OpenProj, an open source +# C\u1EE5m t\u1EEB thu\u1ED9c tính (không quá 10 t\u1EEB): \u0110\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi OpenProj, m\u1ED9t ngu\u1ED3n m\u1EDF +#solution from Projity +# gi\u1EA3i pháp t\u1EEB Projity +#Attribution URL: http://www.projity.com +# URL phân b\u1ED5: http://www.projity.com +#Graphic Image as provided in the Covered Code as file: openproj_logo.png with +# Hình \u1EA3nh \u0110\u1ED3 h\u1ECDa nh\u01B0 \u0111\u01B0\u1EE3c cung c\u1EA5p trong Mã \u0111\u01B0\u1EE3c B\u1EA3o v\u1EC7 d\u01B0\u1EDBi d\u1EA1ng t\u1EC7p: openproj_logo.png v\u1EDBi +#alternatives listed on http://www.projity.com/logo +# l\u1EF1a ch\u1ECDn thay th\u1EBF \u0111\u01B0\u1EE3c li\u1EC7t kê trên http://www.projity.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +# C\u1EA7n có Hi\u1EC3n th\u1ECB Thông tin Phân b\u1ED5 trong S\u1EA3n Ph\u1EA9m L\u1EDBn h\u01A1n \u0111\u01B0\u1EE3c \u0111\u1ECBnh ngh\u0129a trong +#the CPAL as a work which combines Covered Code or portions thereof with code not +# CPAL nh\u01B0 m\u1ED9t s\u1EA3n ph\u1EA9m k\u1EBFt h\u1EE3p Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 ho\u1EB7c các ph\u1EA7n c\u1EE7a nó v\u1EDBi mã không +#governed by the terms of the CPAL. However, in addition to the other notice +# \u0111\u01B0\u1EE3c \u0111i\u1EC1u ch\u1EC9nh b\u1EDFi các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a CPAL. Tuy nhiên, ngoài các thông báo + +#obligations, all copies of the Covered Code in Executable and Source Code form +# ngh\u0129a v\u1EE5 khác, t\u1EA5t c\u1EA3 các b\u1EA3n sao c\u1EE7a Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 \u1EDF d\u1EA1ng Mã ngu\u1ED3n và Có th\u1EC3 th\u1EF1c thi +#distributed must, as a form of attribution of the original author, include on each +# ph\u1EA3i \u0111\u01B0\u1EE3c phân ph\u1ED1i, nh\u01B0 m\u1ED9t hình th\u1EE9c ghi nh\u1EADn tác gi\u1EA3 g\u1ED1c, bao g\u1ED3m trên m\u1ED7i +#user interface screen the "OpenProj" and \u201CProjectLibre\u201D logos visible to all users. +# giao di\u1EC7n ng\u01B0\u1EDDi dùng hi\u1EC3n th\u1ECB logo "OpenProj" và \ u201CProjectLibre \ u201D cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi dùng. +#The OpenProj logo should be located horizontally aligned with the menu bar and left +# Bi\u1EC3u tr\u01B0ng OpenProj ph\u1EA3i \u0111\u01B0\u1EE3c c\u0103n ch\u1EC9nh theo chi\u1EC1u ngang v\u1EDBi thanh menu và +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +# c\u0103n trái \u1EDF trên cùng bên trái c\u1EE7a màn hình li\u1EC1n k\u1EC1 v\u1EDBi menu T\u1EC7p. \ u00A0 Logo ph\u1EA3i là +#at least 100 x 25 pixels. When users click on the "OpenProj" logo it must direct them +# ít nh\u1EA5t 100 x 25 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào logo "OpenProj", nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD +#back to http://www.projity.com. +# quay l\u1EA1i http://www.projity.com. +# +# +# LOCALIZATION NOTES: +# L\u01AFU Ý V\u1ECA TRÍ: +# +# The only lines to localize have the following suffixes: +# Các dòng duy nh\u1EA5t \u0111\u1EC3 b\u1EA3n \u0111\u1ECBa hóa có các h\u1EADu t\u1ED1 sau: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .mnemonic (th\u01B0\u1EDDng là ch\u1EEF cái \u0111\u1EA7u tiên c\u1EE7a .text) +# .accelerator (normally CTRL+first letter of .text) +# .accelerator (th\u01B0\u1EDDng là CTRL + ch\u1EEF cái \u0111\u1EA7u tiên c\u1EE7a .text) +# + +ProjectRibbonTask.title=d\u1EF1 án +TaskRibbonTask.title=công tác +ResourceRibbonTask.title=tài nguyên +ViewRibbonTask.title=xem +FileRibbonBand.title=t\u1EADp tin +PrintRibbonBand.title=in +ClipboardRibbonBand.title=b\u1EA3ng ghi t\u1EA1m +#EditingRibbonBand.title=biên so\u1EA1n +TaskRibbonBand.title=công tác +ResourceRibbonBand.title=tài nguyên +ProjectRibbonBand.title=d\u1EF1 án +TaskViewsZoomRibbonBand.title=xem công tác +TaskViewsRibbonBand.title=xem công tác +ResourceViewsZoomRibbonBand.title=xem tài nguyên +ResourceViewsRibbonBand.title=xem tài nguyên +OtherViewsRibbonBand.title=xem khác +SubViewsRibbonBand.title=xem ph\u1EE5 +FiltersRibbonBand.title=l\u1ECDc +RibbonNewProject.text=m\u1EDBi +RibbonNewProject.tooltip=m\u1EDBi +RibbonOpenProject.text=m\u1EDF +RibbonOpenProject.tooltip=m\u1EDF +RibbonSaveProject.text=l\u01B0u +RibbonSaveProject.tooltip=l\u01B0u +RibbonSaveProjectAs.text=l\u01B0u l\u1EA1i +RibbonSaveProjectAs.tooltip=l\u01B0u l\u1EA1i +RibbonCloseProject.text=\u0111óng +RibbonCloseProject.tooltip=\u0111óng +RibbonPrint.text=in +RibbonPrint.tooltip=in +RibbonPrintPreview.text=xem tr\u01B0\u1EDBc in +RibbonPrintPreview.tooltip=xem tr\u01B0\u1EDBc in +RibbonPDF.text=PDF.v\u0103n b\u1EA3n +RibbonPDF.tooltip=m\u1EB9o công c\u1EE5 +RibbonCut.text=c\u1EAFt +RibbonCut.tooltip=c\u1EAFt +RibbonCopy.text=sao chép +RibbonCopy.tooltip=sao chép +RibbonPaste.text=dán +RibbonPaste.tooltip=dán +RibbonDelete.text=xóa +RibbonDelete.tooltip=xóa +RibbonZoomIn.text=phóng to +RibbonZoomIn.tooltip=phóng to +RibbonZoomOut.text=thu nh\u1ECF +RibbonZoomOut.tooltip=thu nh\u1ECF +RibbonFind.text=tìm +RibbonFind.tooltip=tìm +RibbonScrollToTask.text=cu\u1ED9n t\u1EDBi công tác +RibbonScrollToTask.tooltip=cu\u1ED9n t\u1EDBi công tác +RibbonOutdent.text=nhô ra +RibbonOutdent.tooltip=nhô ra +RibbonIndent.text=th\u1EE5t vào +RibbonIndent.tooltip=th\u1EE5t vào +RibbonLink.text=k\u1EBFt n\u1ED1i +RibbonLink.tooltip=k\u1EBFt n\u1ED1i +RibbonUnlink.text=không k\u1EBFt n\u1ED1i +RibbonUnlink.tooltip=không k\u1EBFt n\u1ED1i +RibbonTaskInformation.text=thông tin công tác +RibbonTaskInformation.tooltip=thông tin công tác +RibbonResourceInformation.text=thông tin tài nguyên +RibbonResourceInformation.tooltip=thông tin tài nguyên +RibbonProjectInformation.text=thông tin d\u1EF1 án +RibbonProjectInformation.tooltip=thông tin d\u1EF1 án +RibbonChangeWorkingTime.text=thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c +RibbonChangeWorkingTime.tooltip=thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c +RibbonNotes.text=ghi chú +RibbonNotes.tooltip=ghi chú +RibbonInsert.text=chèn +RibbonInsert.tooltip=chèn +RibbonAssignResources.text=phân công tài nguyên +RibbonAssignResources.tooltip=phân công tài nguyên +RibbonProjectsDialog.text=h\u1ED9p tho\u1EA1i d\u1EF1 án +RibbonProjectsDialog.tooltip=h\u1ED9p tho\u1EA1i d\u1EF1 án +RibbonUpdateTasks.text=c\u1EADp nh\u1EADt công tác +RibbonUpdateTasks.tooltip=c\u1EADp nh\u1EADt công tác +RibbonUpdateTasks.mnemonic=c\u1EADp nh\u1EADt công tác +RibbonUpdateProject.text=c\u1EADp nh\u1EADt d\u1EF1 án +RibbonUpdateProject.tooltip=c\u1EADp nh\u1EADt d\u1EF1 án +RibbonUpdateProject.mnemonic=c\u1EADp nh\u1EADt d\u1EF1 án +RibbonSaveBaseline.text=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonSaveBaseline.tooltip=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonSaveBaseline.mnemonic=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonClearBaseline.text=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonClearBaseline.tooltip=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonClearBaseline.mnemonic=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF +RibbonGantt.text=Gantt +RibbonGantt.tooltip=Gantt +RibbonTrackingGantt.text=truy tìm Gantt +RibbonTrackingGantt.tooltip=truy tìm Gantt +RibbonTaskUsageDetail.text=chi ti\u1EBFt s\u1EED d\u1EE5ng công tác +RibbonTaskUsageDetail.tooltip=chi ti\u1EBFt s\u1EED d\u1EE5ng công tác +RibbonResourceUsageDetail.text=chi ti\u1EBFt s\u1EED d\u1EE5ng tài nguyên +RibbonResourceUsageDetail.tooltip=chi ti\u1EBFt s\u1EED d\u1EE5ng tài nguyên +RibbonNetwork.text=công vi\u1EC7c ròng +RibbonNetwork.tooltip=công vi\u1EC7c ròng +RibbonResources.text=tài nguyên +RibbonResources.tooltip=tài nguyên +RibbonProjects.text=d\u1EF1 án +RibbonProjects.tooltip=d\u1EF1 án +RibbonWBS.text=\u0130KY \u2026\u2026\u2026\u2026\u2026\u2026. \u0130\u015F K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131 +RibbonWBS.tooltip=\u0130KY \u2026\u2026\u2026\u2026\u2026\u2026. \u0130\u015F K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131 +RibbonRBS.text=KKY \u2026\u2026\u2026\u2026\u2026 Kaynak K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131 +RibbonRBS.tooltip=KKY \u2026\u2026\u2026\u2026\u2026 Kaynak K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131 +RibbonReport.text=báo cáo +RibbonReport.tooltip=báo cáo +RibbonHistogram.text=Histogram +RibbonHistogram.tooltip=Histogram +RibbonCharts.text=bi\u1EC3u \u0111\u1ED3 +RibbonCharts.tooltip=bi\u1EC3u \u0111\u1ED3 +RibbonTaskUsage.text=s\u1EED d\u1EE5ng công tác +RibbonTaskUsage.tooltip=s\u1EED d\u1EE5ng công tác +RibbonResourceUsage.text=s\u1EED d\u1EE5ng tài nguyên +RibbonResourceUsage.tooltip=s\u1EED d\u1EE5ng tài nguyên +RibbonNoSubWindow.text=không có c\u1EEDa s\u1ED5 ph\u1EE5 +RibbonNoSubWindow.tooltip=không có c\u1EEDa s\u1ED5 ph\u1EE5 +RibbonNoTextHistogram.tooltip=không có v\u0103n b\u1EA3n Histogram +RibbonNoTextCharts.tooltip=không có v\u0103n b\u1EA3n \u0111\u1ED3 th\u1ECB +RibbonNoTextTaskUsage.tooltip=không có v\u0103n b\u1EA3n s\u1EED d\u1EE5ng công tác +RibbonNoTextResourceUsage.tooltip=không có v\u0103n b\u1EA3n s\u1EED d\u1EE5ng tài nguyên +RibbonNoTextNoSubWindow.tooltip=không có v\u0103n b\u1EA3n không có c\u1EEDa s\u1ED5 ph\u1EE5 +RibbonTopBarSaveProject.text=l\u01B0u d\u1EF1 án +RibbonTopBarSaveProject.tooltip=l\u01B0u d\u1EF1 án +RibbonTopBarUndo.text=h\u1EE7y +RibbonTopBarUndo.tooltip=h\u1EE7y +RibbonTopBarRedo.text=làm l\u1EA1i +RibbonTopBarRedo.tooltip=làm l\u1EA1i +PrintPreviewFirst.tooltip=\u0111\u1EA7u tiên +PrintPreviewBack.tooltip=sau +PrintPreviewForward.tooltip=tr\u01B0\u1EDBc +PrintPreviewLast.tooltip=cu\u1ED1i cùng +PrintPreviewDown.tooltip=xu\u1ED1ng +PrintPreviewUp.tooltip=lên +PrintPreviewZoomOut.tooltip=thu nh\u1ECF +PrintPreviewZoomReset.tooltip=l\u1EADp l\u1EA1i ch\u1EBF \u0111\u1ED9 thu phóng +PrintPreviewZoomIn.tooltip=phóng to +PrintPreviewFormat.tooltip=\u0111\u1ECBnh d\u1EA1ng +PrintPreviewPrint.tooltip=in +PrintPreviewPDF.tooltip=PDF +PrintPreviewLeftView.tooltip=xem trái +PrintPreviewRightView.tooltip=xem ph\u1EA3i +Help.text=h\u1ED7 tr\u1EE3 +ChooseFilter.tooltip=l\u1ECDc +ChooseSort.tooltip=s\u1EAFp x\u1EBFp +ChooseGroup.tooltip=nhóm diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_zh.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_zh.properties new file mode 100644 index 0000000..ae2e520 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_zh.properties @@ -0,0 +1,232 @@ +#The contents of this file are subject to the Common Public Attribution License +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +#License Version 1.1 but Sections 14 and 15 have been added to cover use of +#software over a computer network and provide for limited attribution for the +#Original Developer. In addition, Exhibit A has been modified to be consistent +#with Exhibit B. +# +#Software distributed under the License is distributed on an "AS IS" basis, +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +#specific language governing rights and limitations under the License. The +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +#the provisions of the ProjectLibre License are applicable instead of those above. +#If you wish to allow use of your version of this file only under the terms of the +#ProjectLibre License and not to allow others to use your version of this file under +#the CPAL, indicate your decision by deleting the provisions above and replace them +#with the notice and other provisions required by the Project Libre License. If you +#do not delete the provisions above, a recipient may use your version of this file +#under either the CPAL or the ProjectLibre Licenses. +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +#in the Source Code files of the Original Code. You should use the text of this +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Modifications.] +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +#alternatives listed on http://www.projectlibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally +#aligned immediately above the ProjectLibre logo and left justified in alignment with the +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with +#alternatives listed on http://www.ProjectLibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + + +ProjectRibbonTask.title = \u6A94\u6848 +TaskRibbonTask.title = \u4EFB\u52D9 +ResourceRibbonTask.title = \u8CC7\u6E90 +ViewRibbonTask.title = \u6AA2\u8996 +FileRibbonBand.title = \u6A94\u6848 +PrintRibbonBand.title = \u5217\u5370 +ClipboardRibbonBand.title = \u526A\u8CBC\u7C3F +#EditingRibbonBand.title = \u7DE8\u8F2F +TaskRibbonBand.title = \u4EFB\u52D9 +ResourceRibbonBand.title = \u8CC7\u6E90 +ProjectRibbonBand.title = \u5C08\u6848 +TaskViewsZoomRibbonBand.title = \u6AA2\u8996 +TaskViewsRibbonBand.title = \u4EFB\u52D9\u6AA2\u8996 +ResourceViewsZoomRibbonBand.title = \u6AA2\u8996 +ResourceViewsRibbonBand.title = \u8CC7\u6E90\u6AA2\u8996 +OtherViewsRibbonBand.title = \u5176\u4ED6\u6AA2\u8996 +SubViewsRibbonBand.title = \u6B21\u8981\u6AA2\u8996 +FiltersRibbonBand.title = \u904E\u6FFE +RibbonNewProject.text =\u65B0\u589E +RibbonNewProject.tooltip =\u65B0\u589E\u5C08\u6848 +RibbonOpenProject.text =\u958B\u555F +RibbonOpenProject.tooltip =\u958B\u555F\u5C08\u6848 +RibbonSaveProject.text =\u5132\u5B58 +RibbonSaveProject.tooltip =\u5132\u5B58\u5C08\u6848 +RibbonSaveProjectAs.text =\u53E6\u5B58 +RibbonSaveProjectAs.tooltip =\u5132\u5B58\u70BA\u65B0\u5C08\u6848 +RibbonCloseProject.text =\u95DC\u9589 +RibbonCloseProject.tooltip =\u95DC\u9589\u5C08\u6848 +RibbonPrint.text =\u5217\u5370 +RibbonPrint.tooltip =\u5217\u5370\u7576\u524D\u6587\u4EF6. +RibbonPrintPreview.text =\u9810\u89BD +RibbonPrintPreview.tooltip =\u9810\u89BD\u5217\u5370 +RibbonPDF.text =PDF +RibbonPDF.tooltip =PDF +RibbonCut.text =\u526A\u4E0B +RibbonCut.tooltip =\u526A\u4E0B +RibbonCopy.text =\u8907\u88FD +RibbonCopy.tooltip =\u8907\u88FD +RibbonPaste.text =Paste +RibbonPaste.tooltip =Paste +RibbonDelete.text =\u522A\u9664 +RibbonDelete.tooltip =\u522A\u9664 +RibbonZoomIn.text =\u62C9\u8FD1 +RibbonZoomIn.tooltip =\u62C9\u8FD1 +RibbonZoomOut.text =\u62C9\u9060 +RibbonZoomOut.tooltip =\u62C9\u9060 +RibbonFind.text =\u5C0B\u627E +RibbonFind.tooltip = \u5C0B\u627E +RibbonScrollToTask.text = \u6372\u52D5\u81F3\u4EFB\u52D9 +RibbonScrollToTask.tooltip = \u6372\u52D5\u81F3\u4EFB\u52D9 +RibbonOutdent.text =\u6E1B\u5C11\u7E2E\u6392 +RibbonOutdent.tooltip =\u6E1B\u5C11\u7E2E\u6392 +RibbonIndent.text =\u589E\u52A0\u7E2E\u6392 +RibbonIndent.tooltip =\u589E\u52A0\u7E2E\u6392 +RibbonLink.text=\u9023\u7D50 +RibbonLink.tooltip=\u9023\u7D50 +RibbonUnlink.text=\u53CD\u9023\u7D50 +RibbonUnlink.tooltip=\u53CD\u9023\u7D50 +RibbonTaskInformation.text =\u8CC7\u8A0A +RibbonTaskInformation.tooltip =\u4EFB\u52D9\u8CC7\u8A0A +RibbonResourceInformation.text =\u8CC7\u8A0A +RibbonResourceInformation.tooltip =\u8CC7\u6E90\u8CC7\u8A0A +RibbonProjectInformation.text =\u8CC7\u8A0A +RibbonProjectInformation.tooltip =\u5C08\u6848\u8CC7\u8A0A +RibbonChangeWorkingTime.text=\u884C\u4E8B\u66C6 +RibbonChangeWorkingTime.tooltip=\u4FBF\u5DE5\u4F5C\u884C\u4E8B\u66C6 +RibbonNotes.text =\u7B46\u8A18 +RibbonNotes.tooltip =\u7B46\u8A18... +RibbonInsert.text =\u63D2\u5165 +RibbonInsert.tooltip =\u63D2\u5165 +RibbonAssignResources.text=\u5206\u914D\u8CC7\u6E90 +RibbonAssignResources.tooltip=\u5206\u914D\u8CC7\u6E90 +RibbonProjectsDialog.text =\u5C08\u6848\u8996\u7A97 +RibbonProjectsDialog.tooltip =\u5C08\u6848 +RibbonUpdateTasks.text =\u66F4\u65B0 +RibbonUpdateTasks.tooltip =\u66F4\u65B0\u5C08\u6848... +RibbonUpdateTasks.mnemonic = T +RibbonUpdateProject.text =\u66F4\u65B0 +RibbonUpdateProject.tooltip =\u66F4\u65B0\u5C08\u6848... +RibbonUpdateProject.mnemonic = P +RibbonSaveBaseline.text =\u5132\u5B58\u57FA\u7DDA +RibbonSaveBaseline.tooltip =\u5132\u5B58\u57FA\u7DDA... +RibbonSaveBaseline.mnemonic = S +RibbonClearBaseline.text =\u6E05\u9664\u57FA\u7DDA +RibbonClearBaseline.tooltip =\u6E05\u9664\u57FA\u7DDA... +RibbonClearBaseline.mnemonic = C +RibbonGantt.text=\u7518\u7279 +RibbonGantt.tooltip=\u7518\u7279 +RibbonTrackingGantt.text=\u8FFD\u8E2A\u7518\u7279 +RibbonTrackingGantt.tooltip=\u8FFD\u8E2A\u7518\u7279 +RibbonTaskUsageDetail.text=\u4EFB\u52D9\u4F7F\u7528 +RibbonTaskUsageDetail.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonResourceUsageDetail.text=\u8CC7\u6E90\u4F7F\u7528 +RibbonResourceUsageDetail.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNetwork.text=\u7DB2\u8DEF +RibbonNetwork.tooltip=\u7DB2\u8DEF +RibbonResources.text=\u8CC7\u6E90 +RibbonResources.tooltip=\u8CC7\u6E90 +RibbonProjects.text=\u5C08\u6848 +RibbonProjects.tooltip=\u5C08\u6848 +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=\u56DE\u5831 +RibbonReport.tooltip=\u56DE\u5831 +RibbonHistogram.text=\u7D71\u8A08 +RibbonHistogram.tooltip=\u7D71\u8A08 +RibbonCharts.text=\u5716\u8868 +RibbonCharts.tooltip=\u5716\u8868 +RibbonTaskUsage.text=\u4EFB\u52D9\u4F7F\u7528 +RibbonTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonResourceUsage.text=\u8CC7\u6E90\u4F7F\u7528 +RibbonResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNoSubWindow.text=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonNoTextHistogram.tooltip=\u7D71\u8A08 +RibbonNoTextCharts.tooltip=\u5716\u8868 +RibbonNoTextTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonNoTextResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNoTextNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonTopBarSaveProject.text=\u5132\u5B58\u5C08\u6848 +RibbonTopBarSaveProject.tooltip=\u5132\u5B58\u5C08\u6848 +RibbonTopBarUndo.text=\u5FA9\u539F +RibbonTopBarUndo.tooltip=\u5FA9\u539F +RibbonTopBarRedo.text=\u91CD\u4F5C +RibbonTopBarRedo.tooltip=\u91CD\u4F5C +PrintPreviewFirst.tooltip=\u7B2C\u4E00\u9801 +PrintPreviewBack.tooltip=\u4E0A\u4E00\u9801 +PrintPreviewForward.tooltip = \u4E0B\u4E00\u9801 +PrintPreviewLast.tooltip = \u6700\u5F8C\u4E00\u9801 +PrintPreviewDown.tooltip = \u4E0A\u4E00\u9801 +PrintPreviewUp.tooltip = \u4E0B\u4E00\u9801 +PrintPreviewZoomOut.tooltip = \u62C9\u9060 +PrintPreviewZoomReset.tooltip = \u9810\u8A2D\u5927\u5C0F +PrintPreviewZoomIn.tooltip = \u62C9\u8FD1 +PrintPreviewFormat.tooltip = \u9801\u9762\u8A2D\u5B9A +PrintPreviewPrint.tooltip = \u5217\u5370 +PrintPreviewPDF.tooltip = PDF +PrintPreviewLeftView.tooltip = \u986F\u793A\u5DE6\u534A\u908A +PrintPreviewRightView.tooltip = \u986F\u793A\u53F3\u534A\u908A +Help.text = \u8AAA\u660E +ChooseFilter.tooltip = \u904E\u6FFE +ChooseSort.tooltip = \u6392\u5E8F +ChooseGroup.tooltip = \u7FA4\u7D44 diff --git a/projectlibre_ui/src/com/projectlibre1/menu/menu_zh_TW.properties b/projectlibre_ui/src/com/projectlibre1/menu/menu_zh_TW.properties new file mode 100644 index 0000000..ae2e520 --- /dev/null +++ b/projectlibre_ui/src/com/projectlibre1/menu/menu_zh_TW.properties @@ -0,0 +1,232 @@ +#The contents of this file are subject to the Common Public Attribution License +#Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public +#License Version 1.1 but Sections 14 and 15 have been added to cover use of +#software over a computer network and provide for limited attribution for the +#Original Developer. In addition, Exhibit A has been modified to be consistent +#with Exhibit B. +# +#Software distributed under the License is distributed on an "AS IS" basis, +#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the +#specific language governing rights and limitations under the License. The +#Original Code is ProjectLibre and ProjectLibre. +#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and +#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) +#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre +#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and +#ProjectLibre, Inc. +# +#Alternatively, the contents of this file may be used under the terms of the +#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case +#the provisions of the ProjectLibre License are applicable instead of those above. +#If you wish to allow use of your version of this file only under the terms of the +#ProjectLibre License and not to allow others to use your version of this file under +#the CPAL, indicate your decision by deleting the provisions above and replace them +#with the notice and other provisions required by the Project Libre License. If you +#do not delete the provisions above, a recipient may use your version of this file +#under either the CPAL or the ProjectLibre Licenses. +# +# +#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices +#in the Source Code files of the Original Code. You should use the text of this +#Exhibit A rather than the text found in the Original Code Source Code for Your +#Modifications.] +#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required +# +#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of +#ProjectLibre +#Attribution URL: http://www.projectlibre.com +#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with +#alternatives listed on http://www.projectlibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally +#aligned immediately above the ProjectLibre logo and left justified in alignment with the +#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the +#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com. +# +#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc. +#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source +#solution from ProjectLibre +#Attribution URL: http://www.ProjectLibre.com +#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with +#alternatives listed on http://www.ProjectLibre.com/logo +# +#Display of Attribution Information is required in Larger Works which are defined in +#the CPAL as a work which combines Covered Code or portions thereof with code not +#governed by the terms of the CPAL. However, in addition to the other notice +#obligations, all copies of the Covered Code in Executable and Source Code form +#distributed must, as a form of attribution of the original author, include on each +#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. +#The ProjectLibre logo should be located horizontally aligned with the menu bar and left +#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be +#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them +#back to http://www.ProjectLibre.com. +# +# +# LOCALIZATION NOTES: +# +# The only lines to localize have the following suffixes: +# .text +# .title +# .tooltip +# .mnemonic (normally first letter of .text) +# .accelerator (normally CTRL+first letter of .text) +# + + +ProjectRibbonTask.title = \u6A94\u6848 +TaskRibbonTask.title = \u4EFB\u52D9 +ResourceRibbonTask.title = \u8CC7\u6E90 +ViewRibbonTask.title = \u6AA2\u8996 +FileRibbonBand.title = \u6A94\u6848 +PrintRibbonBand.title = \u5217\u5370 +ClipboardRibbonBand.title = \u526A\u8CBC\u7C3F +#EditingRibbonBand.title = \u7DE8\u8F2F +TaskRibbonBand.title = \u4EFB\u52D9 +ResourceRibbonBand.title = \u8CC7\u6E90 +ProjectRibbonBand.title = \u5C08\u6848 +TaskViewsZoomRibbonBand.title = \u6AA2\u8996 +TaskViewsRibbonBand.title = \u4EFB\u52D9\u6AA2\u8996 +ResourceViewsZoomRibbonBand.title = \u6AA2\u8996 +ResourceViewsRibbonBand.title = \u8CC7\u6E90\u6AA2\u8996 +OtherViewsRibbonBand.title = \u5176\u4ED6\u6AA2\u8996 +SubViewsRibbonBand.title = \u6B21\u8981\u6AA2\u8996 +FiltersRibbonBand.title = \u904E\u6FFE +RibbonNewProject.text =\u65B0\u589E +RibbonNewProject.tooltip =\u65B0\u589E\u5C08\u6848 +RibbonOpenProject.text =\u958B\u555F +RibbonOpenProject.tooltip =\u958B\u555F\u5C08\u6848 +RibbonSaveProject.text =\u5132\u5B58 +RibbonSaveProject.tooltip =\u5132\u5B58\u5C08\u6848 +RibbonSaveProjectAs.text =\u53E6\u5B58 +RibbonSaveProjectAs.tooltip =\u5132\u5B58\u70BA\u65B0\u5C08\u6848 +RibbonCloseProject.text =\u95DC\u9589 +RibbonCloseProject.tooltip =\u95DC\u9589\u5C08\u6848 +RibbonPrint.text =\u5217\u5370 +RibbonPrint.tooltip =\u5217\u5370\u7576\u524D\u6587\u4EF6. +RibbonPrintPreview.text =\u9810\u89BD +RibbonPrintPreview.tooltip =\u9810\u89BD\u5217\u5370 +RibbonPDF.text =PDF +RibbonPDF.tooltip =PDF +RibbonCut.text =\u526A\u4E0B +RibbonCut.tooltip =\u526A\u4E0B +RibbonCopy.text =\u8907\u88FD +RibbonCopy.tooltip =\u8907\u88FD +RibbonPaste.text =Paste +RibbonPaste.tooltip =Paste +RibbonDelete.text =\u522A\u9664 +RibbonDelete.tooltip =\u522A\u9664 +RibbonZoomIn.text =\u62C9\u8FD1 +RibbonZoomIn.tooltip =\u62C9\u8FD1 +RibbonZoomOut.text =\u62C9\u9060 +RibbonZoomOut.tooltip =\u62C9\u9060 +RibbonFind.text =\u5C0B\u627E +RibbonFind.tooltip = \u5C0B\u627E +RibbonScrollToTask.text = \u6372\u52D5\u81F3\u4EFB\u52D9 +RibbonScrollToTask.tooltip = \u6372\u52D5\u81F3\u4EFB\u52D9 +RibbonOutdent.text =\u6E1B\u5C11\u7E2E\u6392 +RibbonOutdent.tooltip =\u6E1B\u5C11\u7E2E\u6392 +RibbonIndent.text =\u589E\u52A0\u7E2E\u6392 +RibbonIndent.tooltip =\u589E\u52A0\u7E2E\u6392 +RibbonLink.text=\u9023\u7D50 +RibbonLink.tooltip=\u9023\u7D50 +RibbonUnlink.text=\u53CD\u9023\u7D50 +RibbonUnlink.tooltip=\u53CD\u9023\u7D50 +RibbonTaskInformation.text =\u8CC7\u8A0A +RibbonTaskInformation.tooltip =\u4EFB\u52D9\u8CC7\u8A0A +RibbonResourceInformation.text =\u8CC7\u8A0A +RibbonResourceInformation.tooltip =\u8CC7\u6E90\u8CC7\u8A0A +RibbonProjectInformation.text =\u8CC7\u8A0A +RibbonProjectInformation.tooltip =\u5C08\u6848\u8CC7\u8A0A +RibbonChangeWorkingTime.text=\u884C\u4E8B\u66C6 +RibbonChangeWorkingTime.tooltip=\u4FBF\u5DE5\u4F5C\u884C\u4E8B\u66C6 +RibbonNotes.text =\u7B46\u8A18 +RibbonNotes.tooltip =\u7B46\u8A18... +RibbonInsert.text =\u63D2\u5165 +RibbonInsert.tooltip =\u63D2\u5165 +RibbonAssignResources.text=\u5206\u914D\u8CC7\u6E90 +RibbonAssignResources.tooltip=\u5206\u914D\u8CC7\u6E90 +RibbonProjectsDialog.text =\u5C08\u6848\u8996\u7A97 +RibbonProjectsDialog.tooltip =\u5C08\u6848 +RibbonUpdateTasks.text =\u66F4\u65B0 +RibbonUpdateTasks.tooltip =\u66F4\u65B0\u5C08\u6848... +RibbonUpdateTasks.mnemonic = T +RibbonUpdateProject.text =\u66F4\u65B0 +RibbonUpdateProject.tooltip =\u66F4\u65B0\u5C08\u6848... +RibbonUpdateProject.mnemonic = P +RibbonSaveBaseline.text =\u5132\u5B58\u57FA\u7DDA +RibbonSaveBaseline.tooltip =\u5132\u5B58\u57FA\u7DDA... +RibbonSaveBaseline.mnemonic = S +RibbonClearBaseline.text =\u6E05\u9664\u57FA\u7DDA +RibbonClearBaseline.tooltip =\u6E05\u9664\u57FA\u7DDA... +RibbonClearBaseline.mnemonic = C +RibbonGantt.text=\u7518\u7279 +RibbonGantt.tooltip=\u7518\u7279 +RibbonTrackingGantt.text=\u8FFD\u8E2A\u7518\u7279 +RibbonTrackingGantt.tooltip=\u8FFD\u8E2A\u7518\u7279 +RibbonTaskUsageDetail.text=\u4EFB\u52D9\u4F7F\u7528 +RibbonTaskUsageDetail.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonResourceUsageDetail.text=\u8CC7\u6E90\u4F7F\u7528 +RibbonResourceUsageDetail.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNetwork.text=\u7DB2\u8DEF +RibbonNetwork.tooltip=\u7DB2\u8DEF +RibbonResources.text=\u8CC7\u6E90 +RibbonResources.tooltip=\u8CC7\u6E90 +RibbonProjects.text=\u5C08\u6848 +RibbonProjects.tooltip=\u5C08\u6848 +RibbonWBS.text=WBS +RibbonWBS.tooltip=WBS +RibbonRBS.text=RBS +RibbonRBS.tooltip=RBS +RibbonReport.text=\u56DE\u5831 +RibbonReport.tooltip=\u56DE\u5831 +RibbonHistogram.text=\u7D71\u8A08 +RibbonHistogram.tooltip=\u7D71\u8A08 +RibbonCharts.text=\u5716\u8868 +RibbonCharts.tooltip=\u5716\u8868 +RibbonTaskUsage.text=\u4EFB\u52D9\u4F7F\u7528 +RibbonTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonResourceUsage.text=\u8CC7\u6E90\u4F7F\u7528 +RibbonResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNoSubWindow.text=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonNoTextHistogram.tooltip=\u7D71\u8A08 +RibbonNoTextCharts.tooltip=\u5716\u8868 +RibbonNoTextTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528 +RibbonNoTextResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528 +RibbonNoTextNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97 +RibbonTopBarSaveProject.text=\u5132\u5B58\u5C08\u6848 +RibbonTopBarSaveProject.tooltip=\u5132\u5B58\u5C08\u6848 +RibbonTopBarUndo.text=\u5FA9\u539F +RibbonTopBarUndo.tooltip=\u5FA9\u539F +RibbonTopBarRedo.text=\u91CD\u4F5C +RibbonTopBarRedo.tooltip=\u91CD\u4F5C +PrintPreviewFirst.tooltip=\u7B2C\u4E00\u9801 +PrintPreviewBack.tooltip=\u4E0A\u4E00\u9801 +PrintPreviewForward.tooltip = \u4E0B\u4E00\u9801 +PrintPreviewLast.tooltip = \u6700\u5F8C\u4E00\u9801 +PrintPreviewDown.tooltip = \u4E0A\u4E00\u9801 +PrintPreviewUp.tooltip = \u4E0B\u4E00\u9801 +PrintPreviewZoomOut.tooltip = \u62C9\u9060 +PrintPreviewZoomReset.tooltip = \u9810\u8A2D\u5927\u5C0F +PrintPreviewZoomIn.tooltip = \u62C9\u8FD1 +PrintPreviewFormat.tooltip = \u9801\u9762\u8A2D\u5B9A +PrintPreviewPrint.tooltip = \u5217\u5370 +PrintPreviewPDF.tooltip = PDF +PrintPreviewLeftView.tooltip = \u986F\u793A\u5DE6\u534A\u908A +PrintPreviewRightView.tooltip = \u986F\u793A\u53F3\u534A\u908A +Help.text = \u8AAA\u660E +ChooseFilter.tooltip = \u904E\u6FFE +ChooseSort.tooltip = \u6392\u5E8F +ChooseGroup.tooltip = \u7FA4\u7D44 diff --git a/projectlibre_ui/src/com/projectlibre1/pm/graphic/frames/GraphicManager.java b/projectlibre_ui/src/com/projectlibre1/pm/graphic/frames/GraphicManager.java index d18ec2e..8f2e45c 100644 --- a/projectlibre_ui/src/com/projectlibre1/pm/graphic/frames/GraphicManager.java +++ b/projectlibre_ui/src/com/projectlibre1/pm/graphic/frames/GraphicManager.java @@ -1,3074 +1,3152 @@ -/******************************************************************************* - * The contents of this file are subject to the Common Public Attribution License - * Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public - * License Version 1.1 but Sections 14 and 15 have been added to cover use of - * software over a computer network and provide for limited attribution for the - * Original Developer. In addition, Exhibit A has been modified to be consistent - * with Exhibit B. - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the - * specific language governing rights and limitations under the License. The - * Original Code is ProjectLibre. The Original Developer is the Initial Developer - * and is ProjectLibre Inc. All portions of the code written by ProjectLibre are - * Copyright (c) 2012-2019. All Rights Reserved. All portions of the code written by - * ProjectLibre are Copyright (c) 2012-2019. All Rights Reserved. Contributor - * ProjectLibre, Inc. - * - * Alternatively, the contents of this file may be used under the terms of the - * ProjectLibre End-User License Agreement (the ProjectLibre License) in which case - * the provisions of the ProjectLibre License are applicable instead of those above. - * If you wish to allow use of your version of this file only under the terms of the - * ProjectLibre License and not to allow others to use your version of this file - * under the CPAL, indicate your decision by deleting the provisions above and - * replace them with the notice and other provisions required by the ProjectLibre - * License. If you do not delete the provisions above, a recipient may use your - * version of this file under either the CPAL or the ProjectLibre Licenses. - * - * - * [NOTE: The text of this Exhibit A may differ slightly from the text of the notices - * in the Source Code files of the Original Code. You should use the text of this - * Exhibit A rather than the text found in the Original Code Source Code for Your - * Modifications.] - * - * EXHIBIT B. Attribution Information for ProjectLibre required - * - * Attribution Copyright Notice: Copyright (c) 2012-2019, ProjectLibre, Inc. - * Attribution Phrase (not exceeding 10 words): - * ProjectLibre, open source project management software. - * Attribution URL: http://www.projectlibre.com - * Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with - * alternatives listed on http://www.projectlibre.com/logo - * - * Display of Attribution Information is required in Larger Works which are defined - * in the CPAL as a work which combines Covered Code or portions thereof with code - * not governed by the terms of the CPAL. However, in addition to the other notice - * obligations, all copies of the Covered Code in Executable and Source Code form - * distributed must, as a form of attribution of the original author, include on - * each user interface screen the "ProjectLibre" logo visible to all users. - * The ProjectLibre logo should be located horizontally aligned with the menu bar - * and left justified on the top left of the screen adjacent to the File menu. The - * logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" - * logo it must direct them back to http://www.projectlibre.com. - *******************************************************************************/ -package com.projectlibre1.pm.graphic.frames; -import java.applet.Applet; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Container; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.GridLayout; -import java.awt.HeadlessException; -import java.awt.Toolkit; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; -import java.awt.event.KeyEvent; -import java.awt.event.WindowEvent; -import java.awt.event.WindowStateListener; -import java.beans.XMLDecoder; -import java.beans.XMLEncoder; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import javax.swing.Action; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.InputMap; -import javax.swing.JApplet; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.JTabbedPane; -import javax.swing.JToolBar; -import javax.swing.KeyStroke; -import javax.swing.LookAndFeel; -import javax.swing.RootPaneContainer; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; -import javax.swing.border.EmptyBorder; -import javax.swing.undo.AbstractUndoableEdit; -import javax.swing.undo.CannotRedoException; -import javax.swing.undo.CannotUndoException; - -import org.apache.batik.util.gui.resource.ActionMap; -import org.apache.batik.util.gui.resource.MissingListenerException; -import org.apache.commons.collections.Closure; -import org.pushingpixels.flamingo.api.common.AbstractCommandButton; -import org.pushingpixels.flamingo.api.ribbon.JRibbon; -import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame; -import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenu; -import org.pushingpixels.flamingo.api.ribbon.RibbonTask; - -import com.projectlibre.ui.ribbon.CustomRibbonBandGenerator; -import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI; -import com.projectlibre1.configuration.Configuration; -import com.projectlibre1.configuration.FieldDictionary; -import com.projectlibre1.contrib.ClassLoaderUtils; -import com.projectlibre1.dialog.AboutDialog; -import com.projectlibre1.dialog.AbstractDialog; -import com.projectlibre1.dialog.BaselineDialog; -import com.projectlibre1.dialog.FindDialog; -import com.projectlibre1.dialog.HelpDialog; -import com.projectlibre1.dialog.OpenProjectDialog; -import com.projectlibre1.dialog.ProjectDialog; -import com.projectlibre1.dialog.ProjectInformationDialog; -import com.projectlibre1.dialog.RenameProjectDialog; -import com.projectlibre1.dialog.ResourceInformationDialog; -import com.projectlibre1.dialog.ResourceMappingDialog; -import com.projectlibre1.dialog.TaskInformationDialog; -import com.projectlibre1.dialog.TipOfTheDay; -import com.projectlibre1.dialog.WelcomeDialog; -import com.projectlibre1.dialog.assignment.AssignmentDialog; -import com.projectlibre1.dialog.options.CalendarDialogBox; -import com.projectlibre1.document.Document; -import com.projectlibre1.document.ObjectEvent; -import com.projectlibre1.exchange.ResourceMappingForm; -import com.projectlibre1.field.Field; -import com.projectlibre1.graphic.configuration.SpreadSheetFieldArray; -import com.projectlibre1.grouping.core.Node; -import com.projectlibre1.grouping.core.VoidNodeImpl; -import com.projectlibre1.grouping.core.model.NodeModel; -import com.projectlibre1.grouping.core.transform.ViewTransformer; -import com.projectlibre1.grouping.core.transform.filtering.NodeFilter; -import com.projectlibre1.grouping.core.transform.filtering.ResourceInTeamFilter; -import com.projectlibre1.job.Job; -import com.projectlibre1.job.JobQueue; -import com.projectlibre1.job.JobRunnable; -import com.projectlibre1.job.Mutex; -import com.projectlibre1.menu.MenuActionConstants; -import com.projectlibre1.menu.MenuActionsMap; -import com.projectlibre1.menu.MenuManager; -import com.projectlibre1.options.CalendarOption; -import com.projectlibre1.pm.assignment.Assignment; -import com.projectlibre1.pm.graphic.IconManager; -import com.projectlibre1.pm.graphic.TabbedNavigation; -import com.projectlibre1.pm.graphic.frames.workspace.DefaultFrameManager; -import com.projectlibre1.pm.graphic.frames.workspace.FrameHolder; -import com.projectlibre1.pm.graphic.frames.workspace.FrameManager; -import com.projectlibre1.pm.graphic.frames.workspace.NamedFrame; -import com.projectlibre1.pm.graphic.frames.workspace.NamedFrameEvent; -import com.projectlibre1.pm.graphic.frames.workspace.NamedFrameListener; -import com.projectlibre1.pm.graphic.laf.LafManager; -import com.projectlibre1.pm.graphic.spreadsheet.SpreadSheet; -import com.projectlibre1.pm.graphic.spreadsheet.common.CommonSpreadSheet; -import com.projectlibre1.pm.graphic.spreadsheet.selection.event.SelectionNodeEvent; -import com.projectlibre1.pm.graphic.spreadsheet.selection.event.SelectionNodeListener; -import com.projectlibre1.pm.graphic.views.BaseView; -import com.projectlibre1.pm.graphic.views.ProjectsDialog; -import com.projectlibre1.pm.graphic.views.Searchable; -import com.projectlibre1.pm.resource.Resource; -import com.projectlibre1.pm.resource.ResourcePool; -import com.projectlibre1.pm.task.Project; -import com.projectlibre1.pm.task.ProjectFactory; -import com.projectlibre1.pm.task.SubProj; -import com.projectlibre1.pm.task.Task; -import com.projectlibre1.pm.time.HasStartAndEnd; -import com.projectlibre1.preference.ConfigurationFile; -import com.projectlibre1.preference.GlobalPreferences; -import com.projectlibre1.print.GraphPageable; -import com.projectlibre1.print.PrintDocumentFactory; -import com.projectlibre1.server.data.DocumentData; -import com.projectlibre1.session.CreateOptions; -import com.projectlibre1.session.LoadOptions; -import com.projectlibre1.session.LocalSession; -import com.projectlibre1.session.SaveOptions; -import com.projectlibre1.session.Session; -import com.projectlibre1.session.SessionFactory; -import com.projectlibre1.strings.Messages; -import com.projectlibre1.toolbar.FilterToolBarManager; -import com.projectlibre1.toolbar.TransformComboBox; -import com.projectlibre1.undo.CommandInfo; -import com.projectlibre1.undo.UndoController; -import com.projectlibre1.util.Alert; -import com.projectlibre1.util.BrowserControl; -import com.projectlibre1.util.ClassUtils; -import com.projectlibre1.util.Environment; -import com.projectlibre1.workspace.SavableToWorkspace; -import com.projectlibre1.workspace.WorkspaceSetting; - -import apple.dts.samplecode.osxadapter.OSXAdapter; - - -/** - * - */ -public class GraphicManager implements FrameHolder, NamedFrameListener, WindowStateListener, SelectionNodeListener, ObjectEvent.Listener, ActionMap, MenuActionConstants, SavableToWorkspace { - private static final boolean BINARY_WORKSPACE = true; - private static GraphicManager lastGraphicManager = null; // used when displaying a popup but the frame isn't known - private DocumentFrame currentFrame = null; - private List frameList=new ArrayList(); - private HashMap frameMap = new HashMap(); -// private JFileChooser fileChooser = null; - - private NamedFrame viewBarFrame; - private FrameManager frameManager; - - private MenuManager menuManager; - MenuActionsMap actionsMap = null; - //private String[] projectUrl; - private static String server = null; - - private AssignmentDialog assignResourcesDialog = null; - private FindDialog findDialog = null; - private ProjectInformationDialog projectInformationDialog = null; - private TaskInformationDialog taskInformationDialog = null; - private ResourceInformationDialog resourceInformationDialog = null; - private AboutDialog aboutDialog = null; - private HelpDialog helpDialog = null; - private BaselineDialog baselineDialog = null; - private ResourceMappingDialog resourceMappingDialog=null; - ProjectFactory projectFactory = null; - protected Container container; - protected Frame frame; - TabbedNavigation topTabs = null; - - private static Object lastWorkspace = null; // static required - used for copying current workspace to new instance - static LinkedList graphicManagers = new LinkedList(); - private static LafManager lafManager; - public static boolean badLAF = false; - private StartupFactory startupFactory = null; - protected JobQueue jobQueue=null; - - protected GlobalPreferences preferences=null; - private FilterToolBarManager filterToolBarManager; - private JMenu projectListMenu = null; - - private ArrayList history=new ArrayList(); - - /** determines the parent graphic manager for a component - * - * @param component - * @return - */ - public static GraphicManager getInstance(Component component){ - Component c = component; - for (c = component; c != null; c = c.getParent()) { - if (c instanceof FrameHolder) - return ((FrameHolder)c).getGraphicManager(); - else if (c.getName() != null && c.getName().endsWith("BootstrapApplet") && c.getClass().getName().endsWith("BootstrapApplet")){ - System.out.println("applet: "+c.getClass().getName()); - try { - FrameHolder holder=(FrameHolder)Class.forName("com.projectlibre1.bootstrap.BootstrapApplet.class").getMethod("getObject", null).invoke(c, null); - return holder.getGraphicManager(); - } catch (Exception e) { - return null; - } - } - } - return lastGraphicManager; // if none found, use last used one - } - public static GraphicManager getInstance(){ -//System.out.println("Graphic manager getInstance = " + lastGraphicManager.hashCode()); - return lastGraphicManager; - } - - public static Frame getFrameInstance(){ - return lastGraphicManager.getFrame(); - } - - public static DocumentFrame getDocumentFrameInstance(){ - return lastGraphicManager==null?null:lastGraphicManager.getCurrentFrame(); - } - - void setMeAsLastGraphicManager() { // makes this the current graphic manager for job queue and dialogs - lastGraphicManager = this; - if (jobQueue != null) - SessionFactory.getInstance().setJobQueue(getJobQueue()); - - } - - - - public static LinkedList getGraphicManagers() { - return graphicManagers; - } - - /** - * @param projectUrl TODO - * @param server TODO - * @throws java.awt.HeadlessException - */ - public GraphicManager(/*String[] projectUrl,*/ String server,Container container) throws HeadlessException { - graphicManagers.add(this); - lastGraphicManager = this; - container.addFocusListener(new FocusListener() { - - public void focusGained(FocusEvent e) { -// System.out.println("GainFocus " + GraphicManager.this.hashCode()); - setMeAsLastGraphicManager(); - } - - public void focusLost(FocusEvent e) { -// System.out.println("LostFocus " + GraphicManager.this.hashCode()); - }}); - - projectFactory = ProjectFactory.getInstance(); - projectFactory.getPortfolio().addObjectListener(this); - - //this.projectUrl = projectUrl; - GraphicManager.server = server; - this.container=container; - if (container instanceof Frame) - frame=(Frame)container; - else if (container instanceof JApplet) - frame = JOptionPane.getFrameForComponent(container); - if (container instanceof FrameHolder) - ((FrameHolder)container).setGraphicManager(this); -// else if (container instanceof BootstrapApplet){ - else{ - try { - FrameHolder holder=(FrameHolder)Class.forName("com.projectlibre1.bootstrap.BootstrapApplet").getMethod("getObject", null).invoke(container, null); - holder.setGraphicManager(this); - } catch (Exception e) { - } - } - registerForMacOSXEvents(); - } - public GraphicManager(Container container) { - this(/*null,*/ server,container); - } - - protected void finalize() throws Throwable { -// System.out.println("~~~~~~~~~~~~~~~~ GraphicManager.finalize()"); - super.finalize(); - } - - public void cleanUp() { - -// On quitting, a sleep interrupted exception (below) is thrown by Substance. Without changing the source -// java.lang.InterruptedException: sleep interrupted -// at java.lang.Thread.sleep(Native Method) -// at org.jvnet.substance.utils.FadeTracker$FadeTrackerThread.run(FadeTracker.java:210) -// I have submitted a bug report: https://substance.dev.java.net/issues/show_bug.cgi?id=155 with a proposed fix - - projectFactory.getPortfolio().removeObjectListener(this); - ((DefaultFrameManager)frameManager).cleanUp(); - graphicManagers.remove(this); - if (graphicManagers.isEmpty()) - getLafManager().clean(); - - if (jobQueue != null) - jobQueue.cancel(); - jobQueue = null; - } - - public LafManager getLafManager(){ - if (lafManager==null){ - try { - String lafName=Messages.getMetaString("LafManager"); - lafManager=(LafManager)Class.forName(lafName).getConstructor(new Class[]{GraphicManager.class}).newInstance(new Object[]{this}); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - //lafManager=new LafManager(this); - } - return lafManager; - } - - - - private String fileName = "../projectlibre_exchange/testdata/New Product.mpp"; //$NON-NLS-1$ - private ViewAction resourceAction; - -// private JFileChooser getFileChooser() { -// if (fileChooser == null) -// fileChooser = new JFileChooser(); -// return fileChooser; -// } - - - private static String getTabIdForProject(Project project) { - if (project == null) - return null; - return "" + project.getUniqueId(); //see later //$NON-NLS-1$ - } - - void setTabNameAndTitle(DocumentFrame frame, Project project) { - frame.setTabNameAndTitle(project); - } - - - public void switchToProject(long projectId) { - Project project = ProjectFactory.getInstance().findFromId(projectId); - if (project == null) - return; - DocumentFrame f = (DocumentFrame) frameMap.get(project); - if (f == null) - return; - setCurrentFrame(f); - - } - protected void setCurrentFrame(DocumentFrame frame){ - if (frame instanceof DocumentFrame) { - if (currentFrame != null && projectListMenu != null&&!Environment.isPlugin()) { - currentFrame.getMenuItem().setSelected(false); - } - - if (currentFrame != null&&!Environment.isPlugin()) - currentFrame.refreshViewButtons(false); // disable buttons for old view - - currentFrame = (DocumentFrame)frame; - if (projectListMenu != null&&!Environment.isPlugin()) { - currentFrame.getMenuItem().setSelected(true); - } - if (topTabs != null&&!Environment.isPlugin()) { - topTabs.setCurrentFrame(currentFrame); - } - DocumentSelectedEvent.fire(this,currentFrame); - if (projectInformationDialog != null) - projectInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); - if (taskInformationDialog != null) - taskInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); - if (resourceInformationDialog != null) - resourceInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); - - setTitle(false); - if (currentFrame != null) - currentFrame.refreshViewButtons(true); - - getFrameManager().activateFrame(currentFrame); // need to force activation in case being activated by closing another - if(!Environment.isPlugin()){ - setEnabledDocumentMenuActions(currentFrame!=null); - setButtonState(null,currentFrame.getProject()); - } - if (currentFrame != null && currentFrame.getProject() != null) { - if (!Environment.isPlugin()) currentFrame.getFilterToolBarManager().transformBasedOnValue(); - CalendarOption calendarOption = currentFrame.getProject().getCalendarOption(); - - if (calendarOption != null) { - CalendarOption.setInstance(calendarOption); - } - } else { - CalendarOption.setInstance(CalendarOption.getDefaultInstance()); - } - } - } - - void setTitle(boolean isSaving) { - DocumentFrame dframe = getCurrentFrame(); - String title=Messages.getContextString("Text.ApplicationTitle"); //$NON-NLS-1$ - if (dframe != null && dframe.getProject() != null) { - if (Environment.getStandAlone()) title=dframe.getProject().getTitle(); - else title += " - " + dframe.getProject().getName(); //$NON-NLS-1$ - if (!isSaving && dframe.getProject().needsSaving()) - title += " *"; // modified; //$NON-NLS-1$ - } - Frame f=getFrame(); - if (frame!=null) frame.setTitle(title); - - } - /** - * Adds a new document frame and shows it - * @param project - * @return - */ - - public DocumentFrame addProjectFrame(final Project project) { - String tabId = getTabIdForProject(project); - if (project == null) // in case of out of memory error - return null; - final DocumentFrame frame = new DocumentFrame(this,project,tabId); - if (frame == null) // in case of out memory error - return null; - getFrameManager().addFrame(frame); -// DocumentFrame newDocumentFrame = (DocumentFrame)getFrameManager().getFrame(tabId); - - setTabNameAndTitle(frame,project); - frame.setShowTitleBar(false); - getFrameManager().showFrame(frame); // show the frame - frame.addNamedFrameListener(this); // main frame listens to changes in selection - - project.addProjectListener(frame); - - - if (projectListMenu != null) { - JRadioButtonMenuItem mi = new JRadioButtonMenuItem(new SelectDocumentAction(frame)); - mi.setSelected(true); - frame.setMenuItem(mi); - projectListMenu.add(mi); - } - setCurrentFrame(frame); - - frameList.add(frame); - frameMap.put(project, frame); - - // clear filter/grouping/sort for newly opened or created project - if (!Environment.isPlugin()) SwingUtilities.invokeLater( new Runnable() { - public void run() { - frame.getFilterToolBarManager().clear(); - }}); - getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,frame==null || !frame.isEditingResourcePool()); //resource pool can not be opened at same time as another proj - return frame; - } - - private void closeProjectFrame(Project project) { - String tabId = getTabIdForProject(project); - DocumentFrame frame = (DocumentFrame) frameMap.get(project); - if (frame!=null){ //TODO why is it sometimes null? Well, in the case of opening a subproject it can be - - if (currentFrame == frame){ - frame.setVisible(false); - JMenuItem mi = frame.getMenuItem(); - if (mi != null && projectListMenu != null) - projectListMenu.remove(mi); - - if (frameList.size()<=1) { - frame.refreshViewButtons(false); // disable old buttons - currentFrame=null;//TODO open a new one instead - setTitle(false); - setEnabledDocumentMenuActions(false); - } else{ - DocumentFrame current; - int index=0; - for (Iterator i=frameList.iterator();i.hasNext();index++){ - current=(DocumentFrame)i.next(); - if (tabId.equals(getTabIdForProject(current.getProject()))) - break; - } - setCurrentFrame((DocumentFrame)frameList.get((index==0)?1:index-1));//TODO use previous instead - } - } - project.removeProjectListener(frame); // hk uncommented this for applet. don't know why it was commented - frame.removeNamedFrameListener(this); // main frame listens to changes in selection - - getFrameManager().removeFrame(frame); - frame.onClose(); - frameList.remove(frame); - frameMap.remove(project); - - - } - setAllButResourceDisabled(false); - getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,true); // no matter what, you can open a project after closing, since if you closed resource pool you can open after - } - public String doRenameProjectDialog(String name,Set projectNames,boolean saveAs) { - finishAnyOperations(); - RenameProjectDialog renameProjectDialog = RenameProjectDialog.getInstance(getFrame(),null); - renameProjectDialog.getForm().setName(name); - renameProjectDialog.getForm().setProjectNames(projectNames); - renameProjectDialog.getForm().setSaveAs(saveAs); - if (renameProjectDialog.doModal()) - return renameProjectDialog.getForm().getName(); - return null; - } - - public void doWelcomeDialog() { - //claur, for test purpose to preload a project - String preloadProject=ConfigurationFile.getProperty("preLoadProject"); - if (preloadProject!=null){ - loadLocalDocument(preloadProject,false); - return; - } - - WelcomeDialog instance = WelcomeDialog.getInstance(getFrame(),getMenuManager()); - if (instance.doModal()) { - waitInitialization(); - if (instance.getForm().isCreateProject()) - doNewProjectDialog(); - else if (instance.getForm().isOpenProject()){ - if(Environment.getStandAlone()) openLocalProject(); - else doOpenProjectDialog(); - }else if (instance.getForm().isManageResources()) { - loadMasterProject(); - } - } - } - - public boolean doNewProjectDialog() { - ProjectDialog.Form form=doNewProjectDialog1(); - if (form==null) return false; - else return doNewProjectDialog2(form); - } - public boolean doNewProjectNoDialog(HashMap opts) { - ProjectDialog.Form form=doNewProjectNoDialog1(); - if (form==null) return false; - if (opts!=null){ - Closure updateViewClosure=(Closure)opts.get("updateViewClosure"); - if (updateViewClosure!=null) updateViewClosure.execute(form); - } - return doNewProjectDialog2(form); - } - public ProjectDialog.Form doNewProjectDialog1() { - addHistory("doNewProjectDialog"); - finishAnyOperations(); - ProjectDialog projectDialog = ProjectDialog.getInstance(getFrame(),null); - projectDialog.getForm().setManager(Environment.getUser().getName()); - if (!projectDialog.doModal()) - return null; // if cancelled - return projectDialog.getForm(); - } - protected static int project_suffix_count=1; -// protected static ProjectDialog.Form lastNewProjectForm; -// public ProjectDialog.Form getLastNewProjectForm() { -// return lastNewProjectForm; -// } - public ProjectDialog.Form doNewProjectNoDialog1() { - System.out.println("doNewProjectNoDialog1 begin"); - addHistory("doNewProjectNoDialog"); - finishAnyOperations(); - ProjectDialog.Form form=new ProjectDialog.Form(); - form.setName("Project"+(project_suffix_count++)); -// lastNewProjectForm=form; - System.out.println("doNewProjectNoDialog1 end"); - return form; - } - public boolean doNewProjectDialog2(ProjectDialog.Form form) { - showWaitCursor(true); - ResourcePool resourcePool=form.getResourcePool(); - boolean local=form.isLocal(); - if (resourcePool!=null) resourcePool.setLocal(local); - CreateOptions opt=new CreateOptions(); - opt.setResourcePool(form.getResourcePool()); - opt.setLocal(local); - opt.setName(form.getName()); - opt.setAddResources(!local); - Project project = projectFactory.createProject(opt); - try { - //createProject above might make a new resource pool, so make sur it is used when copying properties - //projectDialog.getForm().setResourcePool(project.getResourcePool()); - - project.setManager(form.getManager()); - project.setName(form.getName()); - project.setNotes(form.getNotes()); - project.setForward(form.isForward()); - project.setGroup(form.getGroup()); - project.setDivision(form.getDivision()); - project.setProjectType(form.getProjectType()); - project.setProjectStatus(form.getProjectStatus()); - project.setExpenseType(form.getExpenseType()); - - if (!form.isLocal()){ - project.setAccessControlPolicy(form.getAccessControlType()); - project.resetRoles(form.getAccessControlType()==0); - } - - - if (form.isLocal()) - project.setLocal(true); - else project.setTemporaryLocal(true); - if (form.isForward()) - project.setStartDate(form.getStartDate()); - else - project.setFinishDate(form.getStartDate()); - // copy any extra fields to the project - project.getExtraFields().putAll(form.getExtra().getExtraFields()); - -// PropertyUtils.copyProperties(project, projectDialog.getForm()); - } catch (Exception propertyException) { - propertyException.printStackTrace(); - } - showWaitCursor(false); - - return true; - } - - boolean doingOpenDialog = false; - private void doOpenProjectDialog() { - if (doingOpenDialog) - return; - doingOpenDialog = true; - finishAnyOperations(); - - final ArrayList descriptors=new ArrayList(); - - Session session=SessionFactory.getInstance().getSession(false); - Job job=(Job)SessionFactory.callNoEx(session,"getLoadProjectDescriptorsJob",new Class[]{boolean.class,java.util.List.class,boolean.class},new Object[]{true,descriptors,!Environment.isAdministrator()}); - job.addSwingRunnable(new JobRunnable("Local: loadDocument"){ //$NON-NLS-1$ - public Object run() throws Exception{ - final Closure setter=new Closure(){ - public void execute(Object obj){ - - } - }; - final Closure getter=new Closure(){ - public void execute(Object obj){ - final Object[] r=(Object[])obj; - if (r!=null){ - DocumentData data=(DocumentData)r[0]; - boolean openAs=(Boolean)r[1]; - loadDocument(data.getUniqueId(),false,openAs); - } - - } - }; - try { - boolean allowMaster = getCurrentFrame() == null && Environment.isAdministrator(); - OpenProjectDialog.getInstance(getFrame(),descriptors,Messages.getString("Text.openProject"),allowMaster, true, null).execute(setter,getter); //$NON-NLS-1$ - } finally { - doingOpenDialog = false; - } - - return null; - } - }); - session.schedule(job); - } - private void doInsertProjectDialog() { - if (doingOpenDialog) - return; - doingOpenDialog = true; - - finishAnyOperations(); - - final Project project; - project= getCurrentFrame().getProject(); - -// List nodes=getCurrentFrame().getSelectedNodes(); -// if (nodes==null||nodes.size()==0) return; -// Node node=(Node)nodes.get(0); -// if (!node.isInSubproject()) project= getCurrentFrame().getProject(); -// else{ -// while (!(node==null) && !(node.getImpl().getClass().getName().equals("com.projectlibre1.pm.task.Subproject"))){ -// node=(Node)node.getParent(); -// } -// if (node==null) return; //shouldn't happen -// try { -// project=(Project)node.getImpl().getClass().getMethod("getSubproject", null).invoke(node.getImpl(), null); -// } catch (Exception e) { -// return; -// } -// } - - final ArrayList descriptors=new ArrayList(); - - Session session=SessionFactory.getInstance().getSession(false); - Job job=(Job)SessionFactory.callNoEx(session,"getLoadProjectDescriptorsJob",new Class[]{boolean.class,java.util.List.class,boolean.class},new Object[]{true,descriptors,true}); - job.addSwingRunnable(new JobRunnable("Local: add"){ //$NON-NLS-1$ - public Object run() throws Exception{ - Closure setter=new Closure(){ - public void execute(Object obj){ - - } - }; - Closure getter=new Closure(){ - public void execute(Object obj){ - final Object[] r=(Object[])obj; - if (r!=null){ - final DocumentData data=(DocumentData)r[0]; - if (data.isMaster()) - return; - insertSubproject(project, data.getUniqueId(), true); -// Project openedAlready = ProjectFactory.getInstance().findFromId(data.getUniqueId()); -// -// if (!project.canInsertProject(data.getUniqueId())) { -// Alert.error("The selected project is already a subproject in this consolidated project."); -// return; -// } -// if (openedAlready != null && openedAlready.isOpenedAsSubproject()) { -// Alert.error("The selected project is already opened as a subproject in another consolidated project."); -// return; -// } -// Subproject subprojectTask = new Subproject(project,data.getUniqueId()); -// Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT); -// ProjectFactory.getInstance().openSubproject(project, subprojectNode, true); - } - } - }; - - try { - OpenProjectDialog dlg = OpenProjectDialog.getInstance(getFrame(),descriptors,Messages.getString("Text.insertProject"),false, false, project); //$NON-NLS-1$ - dlg.execute(setter,getter); - } catch (Exception e) { - Alert.error(Messages.getString("Message.serverUnreachable"),getContainer()); //$NON-NLS-1$ - //TODO need more precise exception - e.printStackTrace(); - } finally { - doingOpenDialog = false; - } - return null; - } - }); - session.schedule(job); - } - - - - public void insertSubproject(final Project project, final long subprojectUniqueId,final boolean undo) { - addHistory("insertSubproject", new Object[]{project.getName(),project.getUniqueId(),subprojectUniqueId}); - Project openedAlready = ProjectFactory.getInstance().findFromId(subprojectUniqueId); - - if (!project.getSubprojectHandler().canInsertProject(subprojectUniqueId)) { - Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadySubproject")); //$NON-NLS-1$ - return; - } - if (openedAlready != null && openedAlready.isOpenedAsSubproject()) { - Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadyOpenedAsSubproject")); //$NON-NLS-1$ - return; - } - SubProj subprojectTask = project.getSubprojectHandler().createSubProj(subprojectUniqueId); - Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT); - ProjectFactory.getInstance().openSubproject(project, subprojectNode, true); - - //Undo - if (undo){ - UndoController undoContoller=project.getUndoController(); - if (undoContoller.getEditSupport()!=null){ - undoContoller.clear(); - //undoContoller.getEditSupport().postEdit(new CreateSubprojectEdit(project,subprojectNode,subprojectUniqueId)); - } - } - - } - - - - protected class CreateSubprojectEdit extends AbstractUndoableEdit{ - protected Project project; - protected final Node subprojectNode; - protected long subprojectUniqueId; - - - public CreateSubprojectEdit(Project project, final Node subprojectNode, long subprojectUniqueId) { - super(); - this.project = project; - this.subprojectNode = subprojectNode; - this.subprojectUniqueId = subprojectUniqueId; - } - public void redo() throws CannotRedoException { - super.redo(); - insertSubproject(project, subprojectUniqueId, false); - } - public void undo() throws CannotUndoException { - super.undo(); - project.getTaskOutline().remove(subprojectNode,NodeModel.EVENT); - -// UndoController undoContoller=project.getUndoController(); -// if (undoContoller.getEditSupport()!=null){ -// undoContoller.clear(); -// } - } - } - - - - private void doProjectInformationDialog() { - if (!getCurrentFrame().isActive()) - return; - - finishAnyOperations(); - - if (projectInformationDialog == null) { - projectInformationDialog = ProjectInformationDialog.getInstance(getFrame(),getCurrentFrame().getProject()); - projectInformationDialog.pack(); - projectInformationDialog.setModal(false); - } else { - projectInformationDialog.setObject(getCurrentFrame().getProject()); - } - projectInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen - projectInformationDialog.setVisible(true); - - } - - public void doInformationDialog(boolean notes) { - - if (!isDocumentActive()) - return; - - finishAnyOperations(); - List nodes=getCurrentFrame().getSelectedNodes(false); - if (nodes == null) - return; - if (nodes.size() > 1) { - Alert.warn(Messages.getString("Message.onlySelectOneElement"),getContainer()); //$NON-NLS-1$ - return; - } - final Node node=(Node)nodes.get(0); - Object impl=node.getImpl(); - if (impl instanceof Task||(impl instanceof Assignment&&taskType)){ - Task task=(Task)((impl instanceof Assignment)?(((Assignment)impl).getTask()):impl); - if (taskInformationDialog == null) { - taskInformationDialog = TaskInformationDialog.getInstance(getFrame(),task, notes); - taskInformationDialog.pack(); - taskInformationDialog.setModal(false); - } else { - taskInformationDialog.setObject(task); - taskInformationDialog.updateAll(); - } - taskInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen - if (notes) - taskInformationDialog.showNotes(); - else if (impl instanceof Assignment) - taskInformationDialog.showResources(); - - taskInformationDialog.setVisible(true); - } else if (impl instanceof Resource||(impl instanceof Assignment&&resourceType)) { - Resource resource=(Resource)((impl instanceof Assignment)?(((Assignment)impl).getResource()):impl);; - if (resourceInformationDialog == null) { - resourceInformationDialog = ResourceInformationDialog.getInstance(getFrame(),resource); - resourceInformationDialog.pack(); - resourceInformationDialog.setModal(false); - } else { - resourceInformationDialog.setObject(resource); - resourceInformationDialog.updateAll(); - } - resourceInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen - if (notes) - resourceInformationDialog.showNotes(); - resourceInformationDialog.setVisible(true); - - } else if (impl instanceof Project) { - doProjectInformationDialog(); - } - - - } - - - public Action getAction(String key) throws MissingListenerException { - if (actionsMap == null) - addHandlers(); - - Action action = actionsMap.getConcreteAction(key); - if (action == null) - throw new MissingListenerException("no listener for mainFrame", getClass().getName(),key); //$NON-NLS-1$ - - return action; - } - - public String getStringFromAction(Action action) throws MissingListenerException { - return actionsMap.getStringFromAction(action); - } - - public Action getRawAction(String s){ - return actionsMap.getActionFromMenuId(s); - } - - - public void addHandlers() { - actionsMap = new MenuActionsMap(this,menuManager); - actionsMap.addHandler(ACTION_NEW_PROJECT, new NewProjectAction()); - actionsMap.addHandler(ACTION_OPEN_PROJECT, new OpenProjectAction()); - actionsMap.addHandler(ACTION_INSERT_PROJECT, new InsertProjectAction()); - actionsMap.addHandler(ACTION_EXIT, new ExitAction()); - actionsMap.addHandler(ACTION_IMPORT_MSPROJECT, new ImportMSProjectAction()); - actionsMap.addHandler(ACTION_EXPORT_MSPROJECT, new ExportMSProjectAction()); - actionsMap.addHandler(ACTION_ABOUT_PROJECTLIBRE, new AboutAction()); - actionsMap.addHandler(ACTION_PROJECTLIBRE, new ProjectLibreAction()); - actionsMap.addHandler(ACTION_PROJECTLIBRE_DOCUMENTATION, new HelpAction()); - actionsMap.addHandler(ACTION_TIP_OF_THE_DAY, new TipOfTheDayAction()); - actionsMap.addHandler(ACTION_PROJECT_INFORMATION, new ProjectInformationAction()); - actionsMap.addHandler(ACTION_PROJECTS_DIALOG, new ProjectsDialogAction()); - actionsMap.addHandler(ACTION_TEAM_FILTER, new TeamFilterAction()); - actionsMap.addHandler(ACTION_DOCUMENTS, new DocumentsAction()); - actionsMap.addHandler(ACTION_INFORMATION, new InformationAction()); - actionsMap.addHandler(ACTION_NOTES, new NotesAction()); - actionsMap.addHandler(ACTION_ASSIGN_RESOURCES, new AssignResourcesAction()); - - actionsMap.addHandler(ACTION_FIND, new FindAction()); - actionsMap.addHandler(ACTION_GOTO, new GoToAction()); - actionsMap.addHandler(ACTION_INSERT_TASK, new InsertTaskAction()); - actionsMap.addHandler(ACTION_INSERT_RESOURCE, new InsertTaskAction()); // will do resource - actionsMap.addHandler(ACTION_SAVE_PROJECT, new SaveProjectAction()); - actionsMap.addHandler(ACTION_SAVE_PROJECT_AS, new SaveProjectAsAction()); - actionsMap.addHandler(ACTION_PRINT, new PrintAction()); - actionsMap.addHandler(ACTION_PRINT_PREVIEW, new PrintPreviewAction()); - actionsMap.addHandler(ACTION_PDF, new PDFAction()); - actionsMap.addHandler(ACTION_CLOSE_PROJECT, new CloseProjectAction()); - actionsMap.addHandler(ACTION_UNDO, new UndoAction()); - actionsMap.addHandler(ACTION_REDO, new RedoAction()); -// actionsMap.addHandler(ACTION_ENTERPRISE_RESOURCES, new EnterpriseResourcesAction()); - actionsMap.addHandler(ACTION_CHANGE_WORKING_TIME, new ChangeWorkingTimeAction()); - actionsMap.addHandler(ACTION_LEVEL_RESOURCES, new LevelResourcesAction()); - actionsMap.addHandler(ACTION_DELEGATE_TASKS, new DelegateTasksAction()); - actionsMap.addHandler(ACTION_UPDATE_TASKS, new UpdateTasksAction()); - actionsMap.addHandler(ACTION_UPDATE_PROJECT, new UpdateProjectAction()); - actionsMap.addHandler(ACTION_BAR, new BarAction()); - actionsMap.addHandler(ACTION_INSERT_RECURRING, new RecurringTaskAction()); - actionsMap.addHandler(ACTION_SORT, new SortAction()); - actionsMap.addHandler(ACTION_GROUP, new GroupAction()); - actionsMap.addHandler(ACTION_CALENDAR_OPTIONS, new CalendarOptionsAction()); - actionsMap.addHandler(ACTION_SAVE_BASELINE, new SaveBaselineAction()); - actionsMap.addHandler(ACTION_CLEAR_BASELINE, new ClearBaselineAction()); - actionsMap.addHandler(ACTION_LINK, new LinkAction()); - actionsMap.addHandler(ACTION_UNLINK, new UnlinkAction()); - actionsMap.addHandler(ACTION_ZOOM_IN, new ZoomInAction()); - actionsMap.addHandler(ACTION_ZOOM_OUT, new ZoomOutAction()); - actionsMap.addHandler(ACTION_SCROLL_TO_TASK, new ScrollToTaskAction()); - actionsMap.addHandler(ACTION_INDENT, new IndentAction()); - actionsMap.addHandler(ACTION_OUTDENT, new OutdentAction()); - actionsMap.addHandler(ACTION_COLLAPSE, new CollapseAction()); - actionsMap.addHandler(ACTION_EXPAND, new ExpandAction()); - - - actionsMap.addHandler(ACTION_CUT, new CutAction()); - actionsMap.addHandler(ACTION_COPY, new CopyAction()); - actionsMap.addHandler(ACTION_PASTE, new PasteAction()); - actionsMap.addHandler(ACTION_DELETE, new DeleteAction()); - - actionsMap.addHandler(ACTION_GANTT, new ViewAction(ACTION_GANTT)); - actionsMap.addHandler(ACTION_TRACKING_GANTT, new ViewAction(ACTION_TRACKING_GANTT)); - actionsMap.addHandler(ACTION_TASK_USAGE_DETAIL, new ViewAction(ACTION_TASK_USAGE_DETAIL)); - actionsMap.addHandler(ACTION_RESOURCE_USAGE_DETAIL, new ViewAction(ACTION_RESOURCE_USAGE_DETAIL)); - actionsMap.addHandler(ACTION_NETWORK, new ViewAction(ACTION_NETWORK)); - actionsMap.addHandler(ACTION_WBS, new ViewAction(ACTION_WBS)); - actionsMap.addHandler(ACTION_RBS, new ViewAction(ACTION_RBS)); - actionsMap.addHandler(ACTION_REPORT, new ViewAction(ACTION_REPORT)); - actionsMap.addHandler(ACTION_PROJECTS, new ViewAction(ACTION_PROJECTS)); - actionsMap.addHandler(ACTION_RESOURCES, resourceAction = new ViewAction(ACTION_RESOURCES)); - actionsMap.addHandler(ACTION_HISTOGRAM, new ViewAction(ACTION_HISTOGRAM)); - actionsMap.addHandler(ACTION_CHARTS, new ViewAction(ACTION_CHARTS)); - actionsMap.addHandler(ACTION_TASK_USAGE, new ViewAction(ACTION_TASK_USAGE)); - actionsMap.addHandler(ACTION_RESOURCE_USAGE, new ViewAction(ACTION_RESOURCE_USAGE)); - actionsMap.addHandler(ACTION_NO_SUB_WINDOW, new ViewAction(ACTION_NO_SUB_WINDOW)); - - actionsMap.addHandler(ACTION_CHOOSE_FILTER, new TransformAction()); - actionsMap.addHandler(ACTION_CHOOSE_SORT, new TransformAction()); - actionsMap.addHandler(ACTION_CHOOSE_GROUP, new TransformAction()); - - actionsMap.addHandler(ACTION_PALETTE, new PaletteAction()); - actionsMap.addHandler(ACTION_LOOK_AND_FEEL, new LookAndFeelAction()); - actionsMap.addHandler(ACTION_FULL_SCREEN, new FullScreenAction()); - actionsMap.addHandler(ACTION_REFRESH, new RefreshAction()); - - - } - - public class NewProjectAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doNewProjectDialog(); - } - protected boolean allowed(boolean enable){ - DocumentFrame dframe = getCurrentFrame(); - return dframe == null || !dframe.isEditingResourcePool(); - } - } - - public class OpenProjectAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - - setMeAsLastGraphicManager(); - if (Environment.getStandAlone()) openLocalProject(); - else doOpenProjectDialog(); - } - protected boolean allowed(boolean enable){ - DocumentFrame dframe = getCurrentFrame(); - return dframe == null || !dframe.isEditingResourcePool(); - } - protected boolean needsDocument() { - return !allowed(true); // force it to be called iff the resource pool is open - } - - - } - - public class InsertProjectAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doInsertProjectDialog(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class ExitAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - closeApplication(); - } - } - - public class ImportMSProjectAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - openLocalProject(); } - } - - public class ExportMSProjectAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - saveLocalProject(true); } - } - - public class AboutAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - showAboutDialog(); } - } - - public class ProjectLibreAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - BrowserControl.displayURL("http://www.projectlibre.com/"); - } - } - - public class HelpAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - showHelpDialog(); } - } - - public class TipOfTheDayAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - TipOfTheDay.showDialog(getFrame(),true); - } - } - public class ProjectInformationAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doProjectInformationDialog(); - } - } - - public class ProjectsDialogAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - ProjectsDialog.show(GraphicManager.this); - } - } - - public class TeamFilterAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - GlobalPreferences preferences=getPreferences();; - //Field field = Configuration.getFieldFromId("Field.showProjectResourcesOnly"); - boolean teamOnly=!preferences.isShowProjectResourcesOnly(); - //field.setValue(preferences,this,teamOnly); - preferences.setShowProjectResourcesOnly(teamOnly); - ArrayList buttons=getMenuManager().getToolBarFactory().getButtonsFromId("TeamFilter"); //$NON-NLS-1$ - if (buttons!=null&&buttons.size()==1){ - JButton b=(JButton)buttons.get(0); - if (Environment.isNewLook()) - b.setIcon(IconManager.getIcon(teamOnly?"menu24.showTeamResources":"menu24.showAllResources")); //$NON-NLS-1$ //$NON-NLS-2$ - else - b.setIcon(IconManager.getIcon(teamOnly?"menu.showTeamResourcesSmall":"menu.showAllResourcesSmall")); //$NON-NLS-1$ //$NON-NLS-2$ - } - menuManager.setActionSelected(ACTION_TEAM_FILTER,teamOnly); - - - } - } - public class DocumentsAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (!isDocumentActive()) - return; - invokeFieldAction(ACTION_DOCUMENTS,getCurrentFrame().getProject()); - } - } - - private boolean isEnabledFieldAction(String action, Object obj) { - Field f = FieldDictionary.getInstance().getActionField(ACTION_DOCUMENTS); - return (obj != null && f != null && f.getValue(obj,null) != null); - - } - private void invokeFieldAction(String action, Object obj) { - Field f = FieldDictionary.getInstance().getActionField(ACTION_DOCUMENTS); - if (f != null) - f.invokeAction(obj); - - } - public class CalendarOptionsAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doCalendarOptionsDialog(); - } - } - - - public class InformationAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doInformationDialog(false); - } - } - public class NotesAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - doInformationDialog(true); - } - } - - public class AssignResourcesAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - showAssignmentDialog(getCurrentFrame()); - } - } - - public class SelectDocumentAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - DocumentFrame frame; - public SelectDocumentAction(DocumentFrame frame) { - this.frame = frame; - } - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - GraphicManager.this.setCurrentFrame(frame); - } - @Override - public Object getValue(String key) { - if (key == Action.NAME) - return frame.getProject().getName(); - return super.getValue(key); - } - } - - // Document actions - public class FindAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - doFind(getCurrentFrame().getTopSpreadSheet(),null); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return (currentFrame.getActiveSpreadSheet() != null); - } - } - - public class GoToAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - doFind(getCurrentFrame().getTopSpreadSheet(),Configuration.getFieldFromId("Field.id")); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return (currentFrame.getActiveSpreadSheet() != null); - } - } - - public class RecalculateAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().getProject().recalculate(); - } - } - - public class InsertTaskAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().addNodeForImpl(null); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class SaveProjectAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (Environment.getStandAlone()) saveLocalProject(false); - else{ - if (isDocumentActive()) { - final DocumentFrame frame=getCurrentFrame(); - final Project project = frame.getProject(); - SaveOptions opt=new SaveOptions(); - opt.setPostSaving(new Closure(){ - public void execute(Object arg0) { - refreshSaveStatus(true); - } - }); - opt.setPreSaving(getSavingClosure()); - addHistory("saveProject", new Object[]{project.getName(),project.getUniqueId()}); - projectFactory.saveProject(project,opt); - } - } - - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - NamedFrame frame=getCurrentFrame(); - if (frame==null) return false; - Project project=getCurrentFrame().getProject(); - if (project==null) return false; - return Environment.isProjectLibre() || (!project.isLocal()&&project.needsSaving()); - } - } - - public class SaveProjectAsAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (Environment.getStandAlone()) saveLocalProject(true); - else{ - if (isDocumentActive()) { - final DocumentFrame frame=getCurrentFrame(); - final Project project = frame.getProject(); - SaveOptions opt=new SaveOptions(); - opt.setPostSaving(new Closure(){ - public void execute(Object arg0) { - frame.setId(project.getUniqueId()+""); //$NON-NLS-1$ - refreshSaveStatus(true); - } - }); - opt.setSaveAs(true); - opt.setPreSaving(getSavingClosure()); - projectFactory.saveProject(project,opt); - } - } - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - NamedFrame frame=getCurrentFrame(); - if (frame==null) return false; - Project project=getCurrentFrame().getProject(); - if (project==null) return false; - if (project.isMaster() && !Environment.getStandAlone() && !Environment.isProjectLibre()) - return false; - - return (project.isSavable()); -// return true;//!project.isLocal()&&!project.isMaster(); - } - } - - public class PrintAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - print(); - } - } - public class PrintPreviewAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) { - Component c = (Component)arg0.getSource(); - Cursor cur = c.getCursor(); - c.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - printPreview(); - c.setCursor(cur); - - } - } - } - public class PDFAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { -//claur - PDF enabled -// if (Environment.isProjectLibre()) { -// PODOnlyFeature.doDialog(getFrame()); -// return; -// } - setMeAsLastGraphicManager(); - if (isDocumentActive()) { - Component c = (Component)arg0.getSource(); - Cursor cur = c.getCursor(); - c.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - savePDF(); - c.setCursor(cur); - } - } - } - - public class CloseProjectAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - closeProject(getCurrentFrame().getProject()); - } - } - - public class UndoAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()){ - doUndoRedo(true); - } - } - } - public class RedoAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()){ - doUndoRedo(false); - } - } - } - - - public void doUndoRedo(boolean isUndo){ - DocumentFrame frame=getCurrentFrame(); - UndoController undoController=getUndoController(); - Object[] args=null; - if (undoController!=null){ - if (isUndo){ - String name=undoController.getUndoName(); - if (name!=null) args=new Object[]{true,name}; - }else{ - String name=undoController.getRedoName(); - if (name!=null) args=new Object[]{false,name}; - } - } - if (args==null) args=new Object[]{isUndo}; - addHistory("doUndoRedo",args); - frame.doUndoRedo(isUndo); - - } - -// public class EnterpriseResourcesAction extends MenuActionsMap.DocumentMenuAction { -// public void actionPerformed(ActionEvent arg0) { -// if (isDocumentActive()) -// getCurrentFrame().doEnterpriseResourcesDialog(); -// } -// } - - public class ChangeWorkingTimeAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - JDialog dlg = AbstractDialog.containedInDialog(arg0.getSource()); - boolean restrict = dlg != null; - if (isDocumentActive()) - getCurrentFrame().doChangeWorkingTimeDialog(restrict); - } - } - - public class LevelResourcesAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doLevelResourcesDialog(); - } - } - public class DelegateTasksAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doDelegateTasksDialog(); - } - } - - public class UpdateTasksAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doUpdateTasksDialog(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - public class UpdateProjectAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doUpdateProjectDialog(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class DefineCodeAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doDefineCodeDialog(); - } - } - - public class BarAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doBarDialog(); - } - } - public class RecurringTaskAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doRecurringTaskDialog(); - } - } - public class SortAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doSortDialog(); - } - } - public class GroupAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doGroupDialog(); - } - } - public class SaveBaselineAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doBaselineDialog(true); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class ClearBaselineAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doBaselineDialog(false); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - public class LinkAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doLinkTasks(); - } - } - public class UnlinkAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doUnlinkTasks(); - } - } - public class ZoomInAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doZoomIn(); - setZoomButtons(); - - } - } - public class ZoomOutAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doZoomOut(); - setZoomButtons(); - } - } - public class ScrollToTaskAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doScrollToTask(); - } - } - public class ExpandAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doExpand(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - public class CollapseAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doCollapse(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class IndentAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doIndent(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - public class OutdentAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doOutdent(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - public class CutAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()){ - addHistory("doCut"); - getCurrentFrame().doCut(); - } - } - } - public class CopyAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()){ - addHistory("doCopy"); - getCurrentFrame().doCopy(); - } - } - } - public class PasteAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()){ - addHistory("doPaste"); - getCurrentFrame().doPaste(); - } - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class DeleteAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - if (isDocumentActive()) - getCurrentFrame().doDelete(); - } - protected boolean allowed(boolean enable) { - if (enable==false) return true; - return isDocumentWritable(); - } - } - - public class ViewAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - private String viewName; - public ViewAction(String viewName) { - this.viewName = viewName; - } - public void actionPerformed(ActionEvent e) { - setMeAsLastGraphicManager(); - if (getCurrentFrame() == null) - return; - setColorTheme(viewName); - getCurrentFrame().activateView(viewName); - setButtonState(null,currentFrame.getProject()); // disable buttons because no selection when first activated - - } - public final String getViewName() { - return viewName; - } - - } - - public class TransformAction extends MenuActionsMap.DocumentMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent e) { - setMeAsLastGraphicManager(); - if (!isDocumentActive()) - return; - CommonSpreadSheet spreadSheet=getCurrentFrame().getTopSpreadSheet(); - if (spreadSheet!=null){ - if (spreadSheet.isEditing()) - spreadSheet.getCellEditor().stopCellEditing();//.cancelCellEditing(); - spreadSheet.clearSelection(); - } - TransformComboBox combo = (TransformComboBox) e.getSource(); - combo.transformBasedOnValue(); - } - } - - - public void closeApplication(){ - addHistory("closeApplication"); -// if (Environment.getStandAlone()) { -// Frame frame=getFrame(); -// if (frame!=null) -// frame.dispose(); -// System.exit(0); -// return; -// } - - (new Thread(){ - public void run(){ - JobRunnable exitRunnable=new JobRunnable("Local: closeProjects"){ - public Object run() throws Exception{ - Frame frame=getFrame(); - if (frame!=null) frame.dispose(); - System.exit(0); - return null; //return not used anyway - } - }; - - - Job job=projectFactory.getPortfolio().getRemoveAllProjectsJob(exitRunnable,true,null); - SessionFactory.getInstance().getLocalSession().schedule(job); - - } - }).start(); - } - - public void initLayout() { - getFrameManager().getWorkspace().setLayout(new BorderLayout()); - } - public void initProject(){ - //projects loaded in doStartupAction -// if (projectUrl == null && !GeneralOption.getInstance().isStartWithBlankProject()) { -// //System.out.println("not opening anything"); -// } else if (projectUrl == null || projectUrl.length==0 || projectUrl[0].startsWith("http")) { //same as in Main //$NON-NLS-1$ -// System.out.println("loading local project:" +projectUrl); //$NON-NLS-1$ -// boolean ok = loadLocalDocument(projectUrl[0],true); //if null then it will create a new project. WebStart will send a file name -// if (!ok) -// return; -// } -//// else { -//// loadDownloadedDocument(); //not used anymore -//// } - if (currentFrame != null) - currentFrame.activateView(ACTION_GANTT); - - } - - void setEnabledDocumentMenuActions(boolean enable) { - if (Environment.isPlugin()) return; - actionsMap.setEnabledDocumentMenuActions(enable); - if (getCurrentFrame() != null) { - getCurrentFrame().getFilterToolBarManager().setEnabled(enable); - } - if (topTabs != null) - topTabs.setTrackingEnabled(enable && isDocumentWritable()); - } - - protected Document loadMasterProject() { - return loadDocument(Session.MASTER,false,false); - } -// protected void loadDownloadedDocument(){ -// //showWaitCursor(true); -// -// projectFactory.openDownloadedProject(); -// //showWaitCursor(false); -// } - public Document loadDocument(long id,boolean sync,boolean openAs){ - return loadDocument(id, sync, openAs, null); - } - protected Document loadDocument(long id,boolean sync,boolean openAs,Closure endSwingClosure){ - addHistory("loadDocument", new Object[]{id,sync,openAs,endSwingClosure==null}); - //showWaitCursor(true); - if (id==-1L) - return null; - ProjectFactory factory = projectFactory; - factory.setServer(server); - LoadOptions opt=new LoadOptions(); - opt.setId(id); - opt.setSync(sync); - opt.setOpenAs(openAs); - opt.setEndSwingClosure(endSwingClosure); - - Document result = factory.openProject(opt); - //showWaitCursor(false); - return result; - } -protected boolean loadLocalDocument(String fileName,boolean merge){ //uses server to merge - addHistory("loadLocalDocument",new Object[]{fileName,merge}); - //showWaitCursor(true); - Project project; - if (fileName==null) { - //System.out.println("creating empty project"); - project = projectFactory.createProject(); - - } else { - LoadOptions opt=new LoadOptions(); - opt.setFileName(fileName); - opt.setLocal(true); - opt.setSync(false); - - if (merge) opt.setResourceMapping(new ResourceMappingForm(){ - public boolean execute(){ - if (getImportedResources().size() == 0) // don't show dialog if no resources were imported - return true; - if (resourceMappingDialog == null) { - resourceMappingDialog = ResourceMappingDialog.getInstance(this); - resourceMappingDialog.pack(); - resourceMappingDialog.setModal(true); - } else resourceMappingDialog.setForm(this); - resourceMappingDialog.bind(true); - resourceMappingDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen - resourceMappingDialog.setVisible(true); - return resourceMappingDialog.getDialogResult()==JOptionPane.OK_OPTION; - } - }); - - if (fileName.endsWith(".pod")){ //$NON-NLS-1$ - opt.setImporter(Environment.getStandAlone()?LocalSession.LOCAL_PROJECT_IMPORTER:LocalSession.SERVER_LOCAL_PROJECT_IMPORTER); - }else opt.setImporter(LocalSession.MICROSOFT_PROJECT_IMPORTER); - project=projectFactory.openProject(opt); - - } - //showWaitCursor(false); - return project != null; - } - protected void saveLocalDocument(String fileName,final boolean saveAs){ - addHistory("saveLocalDocument",new Object[]{fileName,saveAs}); - //showWaitCursor(true); - SaveOptions opt=new SaveOptions(); - opt.setLocal(true); - final Project project=getCurrentFrame().getProject(); - if (project.getFileName()!=fileName){ - final DocumentFrame frame=getCurrentFrame(); - if (saveAs) opt.setSaveAs(true); - opt.setPostSaving(new Closure(){ - public void execute(Object arg0) { - if (saveAs) frame.setId(project.getUniqueId()+""); //$NON-NLS-1$ - refreshSaveStatus(true); - } - }); - } - if (fileName.endsWith(".pod")){ //$NON-NLS-1$ - opt.setFileName(fileName); - opt.setImporter(LocalSession.LOCAL_PROJECT_IMPORTER); - } - else{ - opt.setFileName(fileName/*+((fileName.endsWith(".xml"))?"":".xml")*/); - opt.setImporter(LocalSession.MICROSOFT_PROJECT_IMPORTER); -// if (Environment.isProjectLibre()) { -// if (!Alert.okCancel(Messages.getString("Warn.saveXML"))) -// return; -// } - //claur - - } - opt.setPreSaving(getSavingClosure()); - projectFactory.saveProject(getCurrentFrame().getProject(),opt); - //showWaitCursor(false); - } - - private Closure getSavingClosure() { - return null; -// return new Closure() { -// -// public void execute(Object arg0) { -// Project proj = (Project)arg0; -// SpreadSheetFieldArray fieldArray = (SpreadSheetFieldArray) getCurrentFrame().getGanttView().getSpreadSheet().getFieldArray(); -// proj.getDocumentWorkspace().setSetting("fieldArray", fieldArray); -// } -// -// }; -// - } - - private Closure getLoadClosure() { - return null; -// return new Closure() { -// -// public void execute(Object arg0) { -// Project proj = (Project)arg0; -// SpreadSheetFieldArray fieldArray = (SpreadSheetFieldArray) proj.getDocumentWorkspace().getSetting("fieldArray"); -// if (fieldArray != null) -// getCurrentFrame().getGanttView().getSpreadSheet().setFieldArray(fieldArray); -// } -// -// }; - - } - protected void saveLocalDocument(Project project,String fileName){ - //showWaitCursor(true); - SaveOptions opt=new SaveOptions(); - opt.setFileName(fileName); - opt.setLocal(true); - opt.setPreSaving(getSavingClosure()); - - projectFactory.saveProject(project,opt); - //showWaitCursor(false); - } - - protected void closeProject(Project project){ - projectFactory.removeProject(project,true,true,true); - } - - public void openLocalProject(){ - String fileName=SessionFactory.getInstance().getLocalSession().chooseFileName(false,null); - if (fileName!=null) loadLocalDocument(fileName,!Environment.getStandAlone()); - } - - public void saveLocalProject(boolean saveAs){ - String fileName=null; - Project project=getCurrentFrame().getProject(); - if (!saveAs){ - fileName=project.getFileName(); - } - if (fileName==null) fileName=SessionFactory.getInstance().getLocalSession().chooseFileName(true,project.getGuessedFileName()); - if (fileName!=null) saveLocalDocument(fileName,saveAs); - } - - - public void showAboutDialog() { - if (aboutDialog == null) { - aboutDialog = AboutDialog.getInstance(getFrame()); - aboutDialog.pack(); - aboutDialog.setModal(true); - } - aboutDialog.setLocationRelativeTo(getFrame());//to center on screen - aboutDialog.setVisible(true); - } - - public void showHelpDialog(/*DocumentFrame documentFrame*/) { - if (helpDialog == null) { - helpDialog = HelpDialog.getInstance(getFrame()); - helpDialog.pack(); - helpDialog.setModal(true); - } - helpDialog.setLocationRelativeTo(getFrame());//to center on screen - helpDialog.setVisible(true); - } - - -/** - * Show or focus the assignment dialog. If showing, initilize to project - * @param project - */ - public void showAssignmentDialog(DocumentFrame documentFrame) { - if (currentFrame==null||!getCurrentFrame().isActive()) - return; - - if (assignResourcesDialog == null) { - assignResourcesDialog = new AssignmentDialog(documentFrame); - assignResourcesDialog.pack(); - assignResourcesDialog.setModal(false); - } - assignResourcesDialog.setLocationRelativeTo(documentFrame);//to center on screen - assignResourcesDialog.setVisible(true); - } - - - void doCalendarOptionsDialog() { - finishAnyOperations(); - CalendarDialogBox.getInstance(getFrame(), null).doModal(); - } - - - - void print(){ - GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),true,false); - if (document!=null) document.print(); - } - - - void printPreview(){ - GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),false,false); - if (document!=null) document.preview(); - } - - void savePDF() { - GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),false,false); - try { - Class generator=ClassLoaderUtils.forName("org.projectlibre.export.ImageExport"); //claur - generator.getMethod("export", new Class[]{GraphPageable.class,Component.class}).invoke(null,new Object[]{document,getContainer()}); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - public DocumentFrame getCurrentFrame() { - return currentFrame; - } - - public Frame getFrame(){ - return frame; - } - - public Container getContainer() { - return container; - } - - public JobQueue getJobQueue(){ - if (jobQueue==null){ - jobQueue=new JobQueue("GraphicManager",false); //$NON-NLS-1$ - } - return jobQueue; - } - - - public boolean isDocumentActive() { - return currentFrame != null && currentFrame.isActive(); - } - public boolean isDocumentWritable() { - return currentFrame != null && currentFrame.isActive() && !currentFrame.getProject().isReadOnly(); - } - - - public void namedFrameActivated(NamedFrameEvent evt) { -// System.out.println("Frame activated"); - NamedFrame frame = evt.getNamedFrame(); - if (frame instanceof DocumentFrame){ - DocumentFrame df=(DocumentFrame)frame; - setCurrentFrame(df); - - } - } - public void namedFrameShown(NamedFrameEvent arg0) { - } - public void namedFrameTabShown(NamedFrameEvent evt) { - NamedFrame frame = evt.getNamedFrame(); - if (frame instanceof DocumentFrame){ - DocumentFrame df=(DocumentFrame)frame; - setCurrentFrame(df); - - } - } - public void windowActivated(WindowEvent arg0) { - } - public void windowClosed(WindowEvent evt) { - if (evt.getWindow() == assignResourcesDialog) - assignResourcesDialog = null; - } - - public void windowClosing(WindowEvent arg0) { - } - - public void windowDeactivated(WindowEvent arg0) { - } - - public void windowDeiconified(WindowEvent arg0) { - } - - public void windowIconified(WindowEvent arg0) { - } - - public void windowStateChanged(WindowEvent arg0) { - } - - protected boolean resourceType=false; - protected boolean taskType=false; - public void setTaskInformation(boolean taskType,boolean resourceType){ - this.taskType=taskType; - this.resourceType=resourceType; -// JButton button = null; -// String infoText = "Task Information"; -// String notesText = "Task Notes"; -// String insertText = getMenuManager().getString(ACTION_INSERT_TASK + ButtonFactory.TOOLTIP_SUFFIX); -// if (resourceType&&!taskType){ -// infoText = "Resource Information"; -// notesText = "Resource Notes"; -// insertText = "Insert Resource"; -// } -// getMenuManager().setText(ACTION_INFORMATION,infoText); -// getMenuManager().setText(ACTION_NOTES,notesText); -// getMenuManager().setText(ACTION_INSERT_TASK,insertText); - } - - - public void setConnected(boolean connected){ - getMenuManager().setActionEnabled(ACTION_IMPORT_MSPROJECT,connected); - getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,connected); - getMenuManager().setActionEnabled(ACTION_NEW_PROJECT,connected); - if (connected) refreshSaveStatus(true); - - } - - Set getActionSet(){ - Set actions=null; - DocumentFrame df=getCurrentFrame(); - if (df!=null){ - SpreadSheet sp=df.getActiveSpreadSheet(); - actions=new HashSet(); - if (sp!=null){ - String[] a=sp.getActionList(); - if (a!=null){ - for (int i=0;i ribbonTasks= menuManger.getRibbon(MenuManager.STANDARD_RIBBON, customBandsGenerator); - JRibbon ribbon=frame.getRibbon(); - - for (RibbonTask ribbonTask : ribbonTasks){ - ribbon.addTask(ribbonTask); - } - - - RibbonApplicationMenu applicationMenu=new RibbonApplicationMenu(); - - - ribbon.setApplicationMenu(applicationMenu); - - Collection taskBars=menuManger.getTaskBar(MenuManager.STANDARD_RIBBON); - for (AbstractCommandButton button : taskBars) - ribbon.addTaskbarComponent(button); - - ribbon.configureHelp(IconManager.getRibbonIcon("ribbon.help",26,26), new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - showHelpDialog(); - - } - }); - -// JLabel projectlibreLogo=ribbon.getProjectLibreLogo(); -// projectlibreLogo.setIcon(IconManager.getIcon("logo.ProjectLibre")); -// projectlibreLogo.addMouseListener(new MouseAdapter(){ -// public void mousePressed(MouseEvent me){ -// BrowserControl.displayURL("http://www.projectlibre.com/"); -// } -// }); - - JPanel projectViews=ribbon.getProjectViews(); - projectViews.setBorder(new EmptyBorder(0,0,0,0)); - getMenuManager().initComponent(MenuManager.RIBBON_VIEW_BAR,projectViews); - - JPanel fileSelector=ribbon.getFileSelector(); - fileSelector.setLayout(new BorderLayout()); - fileSelector.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR); - JComponent filesComponent=((DefaultFrameManager)getFrameManager()).getProjectComboPanel(); - filesComponent.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR); - fileSelector.add(filesComponent,BorderLayout.EAST); - projectViews.setBorder(new EmptyBorder(0,0,0,0)); - - - - - } - - -// public void addProjectTab(String projectName){ -// if (!(container instanceof JRibbonFrame)) -// return; -// JRibbonFrame frame=(JRibbonFrame)container; -// JRibbon ribbon=frame.getRibbon(); -// -// ribbon.getFileSelector().addTab("projectName", new JLabel()); -// } -// -// public void removeProjectTab(String projectName){ -// if (!(container instanceof JRibbonFrame)) -// return; -// JRibbonFrame frame=(JRibbonFrame)container; -// JRibbon ribbon=frame.getRibbon(); -// -// ribbon.getFileSelector().removeTabAt(index)("projectName", new JLabel()); -// } -// -// public void selectProjectTab(String projectName){ -// if (!(container instanceof JRibbonFrame)) -// return; -// JRibbonFrame frame=(JRibbonFrame)container; -// JRibbon ribbon=frame.getRibbon(); -// -// ribbon.getFileSelector().addTab("projectName", new JLabel()); -// } - - - - public void setToolBarAndMenus(final Container contentPane) { - JToolBar toolBar; - if (Environment.isRibbonUI()){ - if (Environment.isNeedToRestart()) { - contentPane.add(new JLabel(Messages.getString("Error.restart")),BorderLayout.CENTER); - return; - } - - - setRibbon((JRibbonFrame)container,getMenuManager()); - - - - -// JToolBar viewToolBar = getMenuManager().getToolBar(MenuManager.VIEW_TOOL_BAR_WITH_NO_SUB_VIEW_OPTION); -// topTabs = new TabbedNavigation(); -// JComponent tabs = topTabs.createContentPanel(getMenuManager(),viewToolBar,0,JTabbedPane.TOP,true); -// tabs.setAlignmentX(0.0f); // so it is left justified -// -// -// Box top = new Box(BoxLayout.Y_AXIS); -// JComponent bottom; -// top.add(tabs); -// bottom = new TabbedNavigation().createContentPanel(getMenuManager(),viewToolBar,1,JTabbedPane.BOTTOM,false); -// contentPane.add(top, BorderLayout.BEFORE_FIRST_LINE); -// contentPane.add(bottom,BorderLayout.AFTER_LAST_LINE); -// if (Environment.isNewLaf()) -// contentPane.setBackground(Color.WHITE); - -// if (Environment.isMac()){ -// //System.setProperty("apple.laf.useScreenMenuBar","true"); -// //System.setProperty("com.apple.mrj.application.apple.menu.about.name", Messages.getMetaString("Text.ShortTitle")); -// JMenuBar menu = getMenuManager().getMenu(Environment.getStandAlone()?MenuManager.MAC_STANDARD_MENU:MenuManager.SERVER_STANDARD_MENU); -// //((JComponent)menu).setBorder(BorderFactory.createEmptyBorder()); -// -// ((JFrame)container).setJMenuBar(menu); -// projectListMenu = (JMenu) menu.getComponent(5); -// } - - } else if (Environment.isNewLook()) { - if (Environment.isNeedToRestart()) { - contentPane.add(new JLabel(Messages.getString("Error.restart")),BorderLayout.CENTER); - return; - } - - toolBar = getMenuManager().getToolBar(MenuManager.BIG_TOOL_BAR); - if (!getLafManager().isToolbarOpaque()) - toolBar.setOpaque(false); - if (!isApplet()) - getMenuManager().setActionVisible(ACTION_FULL_SCREEN, false); - - if (Environment.isExternal()) // external users only see project team - getMenuManager().setActionVisible(ACTION_TEAM_FILTER, false); - - toolBar.addSeparator(new Dimension(20, 20)); - toolBar.add(new Box.Filler(new Dimension(0,0),new Dimension(0,0),new Dimension(Integer.MAX_VALUE,Integer.MAX_VALUE))); - toolBar.add(((DefaultFrameManager)getFrameManager()).getProjectComboPanel()); - toolBar.add(Box.createRigidArea(new Dimension(20,20))); - if (Environment.isNewLaf()) - toolBar.setBackground(Color.WHITE); - toolBar.setFloatable(false); - toolBar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - Box top; - JComponent bottom; - - top = new Box(BoxLayout.Y_AXIS); - toolBar.setAlignmentX(0.0f); // so it is left justified - top.add(toolBar); - - JToolBar viewToolBar = getMenuManager().getToolBar(MenuManager.VIEW_TOOL_BAR_WITH_NO_SUB_VIEW_OPTION); - topTabs = new TabbedNavigation(); - JComponent tabs = topTabs.createContentPanel(getMenuManager(),viewToolBar,0,JTabbedPane.TOP,true); - tabs.setAlignmentX(0.0f); // so it is left justified - - - top.add(tabs); - bottom = new TabbedNavigation().createContentPanel(getMenuManager(),viewToolBar,1,JTabbedPane.BOTTOM,false); - contentPane.add(top, BorderLayout.BEFORE_FIRST_LINE); - contentPane.add(bottom,BorderLayout.AFTER_LAST_LINE); - if (Environment.isNewLaf()) - contentPane.setBackground(Color.WHITE); - - if (Environment.isMac()){ - //System.setProperty("apple.laf.useScreenMenuBar","true"); - //System.setProperty("com.apple.mrj.application.apple.menu.about.name", Messages.getMetaString("Text.ShortTitle")); - JMenuBar menu = getMenuManager().getMenu(Environment.getStandAlone()?MenuManager.MAC_STANDARD_MENU:MenuManager.SERVER_STANDARD_MENU); - //((JComponent)menu).setBorder(BorderFactory.createEmptyBorder()); - - ((JFrame)container).setJMenuBar(menu); - projectListMenu = (JMenu) menu.getComponent(5); - } - - - - } else { - - toolBar = getMenuManager().getToolBar(Environment.isMac()?MenuManager.MAC_STANDARD_TOOL_BAR:MenuManager.STANDARD_TOOL_BAR); - filterToolBarManager = FilterToolBarManager.create(getMenuManager()); - filterToolBarManager.addButtons(toolBar); - contentPane.add(toolBar, BorderLayout.BEFORE_FIRST_LINE); - JToolBar viewToolBar = getMenuManager().getToolBar(MenuManager.VIEW_TOOL_BAR); - viewToolBar.setOrientation(JToolBar.VERTICAL); - viewToolBar.setRollover(true); - contentPane.add(viewToolBar, BorderLayout.WEST); - - JMenuBar menu = getMenuManager().getMenu(Environment.getStandAlone()?(Environment.isMac()?MenuManager.MAC_STANDARD_MENU:MenuManager.STANDARD_MENU):MenuManager.SERVER_STANDARD_MENU); - - if (!Environment.isMac()){ - ((JComponent)menu).setBorder(BorderFactory.createEmptyBorder()); - JMenuItem logo = (JMenuItem) menu.getComponent(0); - logo.setBorder(BorderFactory.createEmptyBorder()); - logo.setMaximumSize(new Dimension(124, 52)); - logo.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - } - ((JFrame)container).setJMenuBar(menu); - projectListMenu = (JMenu) menu.getComponent(Environment.isMac()?5:6); - } - - //accelerators - addCtrlAccel(KeyEvent.VK_G, ACTION_GOTO, null); - addCtrlAccel(KeyEvent.VK_L, ACTION_GOTO, null); - addCtrlAccel(KeyEvent.VK_F, ACTION_FIND, null); - addCtrlAccel(KeyEvent.VK_Z, ACTION_UNDO, null); //- Sanhita - addCtrlAccel(KeyEvent.VK_Y, ACTION_REDO, null); - addCtrlAccel(KeyEvent.VK_N, ACTION_NEW_PROJECT, null); - addCtrlAccel(KeyEvent.VK_O, ACTION_OPEN_PROJECT, null); - addCtrlAccel(KeyEvent.VK_S, ACTION_SAVE_PROJECT, null); - addCtrlAccel(KeyEvent.VK_P, ACTION_PRINT, null); //-Sanhita - addCtrlAccel(KeyEvent.VK_I, ACTION_INSERT_TASK, null); - addCtrlAccel(KeyEvent.VK_PERIOD, ACTION_INDENT, null); - addCtrlAccel(KeyEvent.VK_COMMA, ACTION_OUTDENT, null); - addCtrlAccel(KeyEvent.VK_PLUS, ACTION_EXPAND, new ExpandAction()); - addCtrlAccel(KeyEvent.VK_ADD, ACTION_EXPAND, new ExpandAction()); - addCtrlAccel(KeyEvent.VK_EQUALS, ACTION_EXPAND, new ExpandAction()); - addCtrlAccel(KeyEvent.VK_MINUS, ACTION_COLLAPSE, new CollapseAction()); - addCtrlAccel(KeyEvent.VK_SUBTRACT, ACTION_COLLAPSE, new CollapseAction()); - - // To force a recalculation. This normally shouldn't be needed. - addCtrlAccel(KeyEvent.VK_R, ACTION_RECALCULATE, new RecalculateAction()); - } - - private void addCtrlAccel(int vk, String actionConstant, Action action) { - RootPaneContainer root = (RootPaneContainer)container; - InputMap inputMap = root.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); - - KeyStroke key = KeyStroke.getKeyStroke(vk, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()); //claur use getMenuShortcutKeyMask so it work on Mac too. - inputMap.put(key, actionConstant); - if (action == null) - action = menuManager.getActionFromId(actionConstant); - root.getRootPane().getActionMap().put(actionConstant, action); - } - private LookAndFeel getPlaf() { - return getLafManager().getPlaf(); - } - - public void invalidate() { - container.invalidate(); - ((RootPaneContainer)container).getContentPane().invalidate(); - ((RootPaneContainer)container).getContentPane().repaint(); - } - - public void initLookAndFeel() { - getLafManager().initLookAndFeel(); - - } - - - private HashMap colorThemes = null; - public HashMap getColorThemes() { - if (colorThemes == null) { - colorThemes = new HashMap(); - colorThemes.put(ACTION_GANTT,"Bloody Moon"); //$NON-NLS-1$ - colorThemes.put(ACTION_TRACKING_GANTT,"Mahogany"); //$NON-NLS-1$ - colorThemes.put(ACTION_NETWORK,"Emerald Grass"); //$NON-NLS-1$ - colorThemes.put(ACTION_RESOURCES,"Blue Yonder"); //$NON-NLS-1$ - colorThemes.put(ACTION_PROJECTS,"Emerald Grass"); //$NON-NLS-1$ - colorThemes.put(ACTION_WBS,"Sepia"); //$NON-NLS-1$ - colorThemes.put(ACTION_RBS,"Steel Blue"); //$NON-NLS-1$ - colorThemes.put(ACTION_REPORT,"Aqua"); //$NON-NLS-1$ - colorThemes.put(ACTION_TASK_USAGE_DETAIL,"Brown Velvet"); //$NON-NLS-1$ - colorThemes.put(ACTION_RESOURCE_USAGE_DETAIL,"Earth Fresco"); //$NON-NLS-1$ - } - return colorThemes; - } - - public void setPaletteText(String themeName){ - getMenuManager().setText(ACTION_PALETTE,themeName); - } - - void setColorTheme(String viewName){ - getLafManager().setColorTheme(viewName); - } - - public class PaletteAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - - getLafManager().changePalette(); - - } - protected boolean allowed(boolean enable){ - LookAndFeel lookAndFeel = UIManager.getLookAndFeel(); - return getLafManager().isChangePaletteAllowed(lookAndFeel); - } - - } - - public class LookAndFeelAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - - } - } - - public class FullScreenAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - encodeWorkspace(); // so new window takes this one's preferences - // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5029025 - try { - Class cl=Class.forName("netscape.javascript.JSObject"); - Object win=cl.getMethod("getWindow", new Class[]{Applet.class}).invoke(null, new Object[]{container}); - //JSObject win = JSObject.getWindow((Applet) container); - cl.getMethod("call", new Class[]{String.class,(new Object[]{}).getClass()}).invoke(win, new Object[]{"fullScreen",null} ); - //win.call("fullScreen", null); // Call f() in HTML page //$NON-NLS-1$ - - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - public class RefreshAction extends MenuActionsMap.GlobalMenuAction { - private static final long serialVersionUID = 1L; - public void actionPerformed(ActionEvent arg0) { - setMeAsLastGraphicManager(); - getStartupFactory().restart(GraphicManager.this); - } - } - -/** - * Decode the current workspace (currently using XML though could be binary) - * @return workspace object decoded from lastWorkspace static - */ - private Workspace decodeWorkspaceXML() { - ByteArrayInputStream stream = new ByteArrayInputStream(((String)lastWorkspace).getBytes()); - XMLDecoder decoder = new XMLDecoder(new BufferedInputStream(stream)); - Workspace workspace = (Workspace) decoder.readObject(); - decoder.close(); - return workspace; - } - private Workspace decodeWorkspaceBinary() { - ByteArrayInputStream bin=new ByteArrayInputStream((byte[]) lastWorkspace); - ObjectInputStream in; - try { - in = new ObjectInputStream(bin); - return (Workspace) in.readObject(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } - public Workspace decodeWorkspace() { - if (lastWorkspace == null) - return null; - return BINARY_WORKSPACE ? decodeWorkspaceBinary() : decodeWorkspaceXML(); - } - -/** - * Encode the current workspace and store it off in lastWorkspace. - * Currently I use an XML format for easier debugging. It could be serialized as binary as well since - * all objects in the graph implement Serializable - * - */ - private void encodeWorkspaceXML() { - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(stream)); - encoder.writeObject(createWorkspace(SavableToWorkspace.VIEW)); - encoder.close(); - lastWorkspace = stream.toString(); -// System.out.println(lastWorkspace); - } - private void encodeWorkspaceBinary() { - ByteArrayOutputStream bout=new ByteArrayOutputStream(); - ObjectOutputStream out; - try { - out = new ObjectOutputStream(bout); - out.writeObject(createWorkspace(SavableToWorkspace.VIEW)); - out.close(); - bout.close(); - lastWorkspace = bout.toByteArray(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - public void encodeWorkspace() { - if (BINARY_WORKSPACE) - encodeWorkspaceBinary(); - else - encodeWorkspaceXML(); - } - - - public void restoreWorkspace(WorkspaceSetting w, int context) { - Workspace ws = (Workspace) w; - colorThemes = ws.colorThemes; - getFrameManager().restoreWorkspace(ws.frames, context); - } - - public WorkspaceSetting createWorkspace(int context) { - Workspace ws = new Workspace(); - ws.colorThemes = getColorThemes(); - ws.frames = getFrameManager().createWorkspace(context); - //TODO The active states of BarStyles (and other styles) are currently static. This is ok for applets, but not a general restore workspace feature - return ws; - } - - public static class Workspace implements WorkspaceSetting { - private static final long serialVersionUID = -6606344141026658401L; - private HashMap colorThemes; - WorkspaceSetting frames; - public HashMap getColorThemes() { - return colorThemes; - } - public void setColorThemes(HashMap colorThemes) { - this.colorThemes = colorThemes; - } - public WorkspaceSetting getFrames() { - return frames; - } - public void setFrames(WorkspaceSetting frames) { - this.frames = frames; - } - } - - public static final Object getLastWorkspace() { - return lastWorkspace; - } - - - public GraphicManager getGraphicManager() { - return this; - } - - - public void setGraphicManager(GraphicManager manager) { - // TODO Auto-generated method stub - - } - - public FrameManager getFrameManager() { - return frameManager; - } - - public void setFrameManager(FrameManager frameManager) { - this.frameManager = frameManager; - } - - public void initView() { - Container c=container; - if (container!=null && container instanceof RootPaneContainer){ - c=((RootPaneContainer)container).getContentPane(); - } - if (!Environment.isRibbonUI()) c.setLayout(new BorderLayout()); - JPanel panel = new JPanel(); - c.add(panel, "Center"); //$NON-NLS-1$ - setFrameManager(new DefaultFrameManager(container, panel,this)); - - initLayout(); - - if (!Environment.isPlugin()) setToolBarAndMenus(c); - - setEnabledDocumentMenuActions(false); - Workspace workspace = decodeWorkspace(); - if (workspace != null) { - restoreWorkspace(workspace, SavableToWorkspace.VIEW); - - } else - initProject(); -// container.invalidate(); - } - - public BaselineDialog getBaselineDialog() { - return baselineDialog; - } - - public void setBaselineDialog(BaselineDialog baselineDialog) { - this.baselineDialog = baselineDialog; - } - public StartupFactory getStartupFactory() { - return startupFactory; - } - public void setStartupFactory(StartupFactory startupFactory) { - this.startupFactory = startupFactory; - } - - public boolean isEditingMasterProject() { - Project currentProject=currentFrame.getProject(); - if (currentProject == null) - return false; - return currentProject.isMaster() && !currentProject.isReadOnly(); - - } - - public GlobalPreferences getPreferences(){ - if (preferences==null) { - preferences=new GlobalPreferences(); - if (Environment.isExternal()) - preferences.setShowProjectResourcesOnly(true); - } - return preferences; - } - - - //for AssignmentDialog - private ResourceInTeamFilter assignmentDialogTransformerInitializationClosure; - public Closure setAssignmentDialogTransformerInitializationClosure(){ - return new Closure(){ - public void execute(Object arg) { - ViewTransformer transformer=(ViewTransformer)arg; - NodeFilter hiddenFilter=transformer.getHiddenFilter(); - if (hiddenFilter!=null&& hiddenFilter instanceof ResourceInTeamFilter){ - assignmentDialogTransformerInitializationClosure=(ResourceInTeamFilter)hiddenFilter; - assignmentDialogTransformerInitializationClosure.setFilterTeam(getGraphicManager().getPreferences().isShowProjectResourcesOnly()); - }else assignmentDialogTransformerInitializationClosure=null; - } - }; - } - public ResourceInTeamFilter getAssignmentDialogTransformerInitializationClosure() { - return assignmentDialogTransformerInitializationClosure; - } - public FilterToolBarManager getFilterToolBarManager() { - return filterToolBarManager; - } - - boolean initialized=false; - private Mutex initializing=new Mutex(); - public void beginInitialization(){ - showWaitCursor(true); - initializing.lock(); - } - public void finishInitialization(){ - container.setVisible(true); - initialized=true; - initializing.unlock(); - showWaitCursor(false); - } - public void waitInitialization(){ - initializing.waitUntilUnlocked(); - } - - /** - * Methods that are called using reflection to save workspace stuff into project - * @return - */ - public static SpreadSheetFieldArray getCurrentFieldArray() { - return (SpreadSheetFieldArray) getDocumentFrameInstance().getGanttView().getSpreadSheet().getFieldArrayWithWidths(getDocumentFrameInstance().getGanttColumns()); - } - public static void setCurrentFieldArray(Object fieldArray) { - getDocumentFrameInstance().getGanttView().getSpreadSheet().setFieldArrayWithWidths((SpreadSheetFieldArray)fieldArray); - } - - public static UndoController getUndoController(){ - DocumentFrame frame=GraphicManager.getDocumentFrameInstance(); - if (frame==null) return null; - return frame.getUndoController(); - } - public void setAllButResourceDisabled(boolean disable) { - if (topTabs!=null) topTabs.setAllButResourceDisabled(disable); - } - public void doFind(Searchable searchable, Field field) { - if (currentFrame==null||!getCurrentFrame().isActive()) - return; - if (searchable == null) - return; - currentFrame.doFind(searchable, field); - - } - - - public void registerForMacOSXEvents() { - if (Environment.isMac()) { - - -// try { -// //new method to access Mac menu -// java.awt.Desktop desktop = java.awt.Desktop.getDesktop(); -// -// desktop.setAboutHandler(new java.awt.desktop.AboutHandler() { -// -// @Override -// public void handleAbout(java.awt.desktop.AboutEvent e) { -// showAboutDialog(); -// } -// }); -// -// desktop.setQuitHandler(new java.awt.desktop.QuitHandler() { -// -// @Override -// public void handleQuitRequestWith(java.awt.desktop.QuitEvent e, java.awt.desktop.QuitResponse response) { -// try { -// closeApplication(); -// } catch (Exception e1) { -// // TODO Auto-generated catch block -// e1.printStackTrace(); -// } -// } -// }); -// } catch (Exception e1) { -// e1.printStackTrace(); -// } - - - - try { - // Generate and register the OSXAdapter, passing it a hash of all the methods we wish to - // use as delegates for various com.apple.eawt.ApplicationListener methods - OSXAdapter.setQuitHandler(this, getClass().getDeclaredMethod("quitApplication", (Class[])null)); - OSXAdapter.setAboutHandler(this, getClass().getDeclaredMethod("showAboutDialog", (Class[])null)); - //OSXAdapter.setPreferencesHandler(this, getClass().getDeclaredMethod("preferences", (Class[])null)); - if (Environment.getStandAlone()) OSXAdapter.setFileHandler(this, getClass().getDeclaredMethod("openFile", new Class[] { String.class })); - } catch (Exception e) { - System.err.println("Error while loading the OSXAdapter:"); - e.printStackTrace(); - } - - } - } - - protected String lastFileName; - public void openFile(String fileName){ - lastFileName=fileName; - if (fileName!=null&&initialized) loadLocalDocument(fileName,!Environment.getStandAlone()); - } - - public String getLastFileName() { - return lastFileName; - } - - public boolean quitApplication() throws Exception{ - final boolean[] lock=new boolean[]{false}; - - JobRunnable exitRunnable=new JobRunnable("Local: closeProjects"){ - public Object run() throws Exception{ - synchronized (lock) { - lock[0]=true; - lock.notifyAll(); - } - return null; - } - }; - final boolean[] closeStatus=new boolean[]{false}; - final Job job=projectFactory.getPortfolio().getRemoveAllProjectsJob(exitRunnable,false,closeStatus); - SessionFactory.getInstance().getLocalSession().schedule(job); - - synchronized(lock){ - while (!lock[0]){ - try{ - lock.wait(); - }catch (InterruptedException e) {} - } - } - if (closeStatus[0]){ - Frame frame=getFrame(); - if (frame!=null) frame.dispose(); - //System.exit(0); - return true; - }else return false; - } - - - public static Project getProject() { - if (lastGraphicManager == null) - return null; - if (lastGraphicManager.currentFrame==null) - return null; - return lastGraphicManager.currentFrame.getProject(); - } - - public void addHistory(String command,Object[] args){ - history.add(new CommandInfo(command,args)); - } - public void addHistory(String command){ - history.add(new CommandInfo(command,null)); - } - public static List getHistory() { - if (lastGraphicManager == null) - return null; - return lastGraphicManager.history; - } - +/******************************************************************************* + * The contents of this file are subject to the Common Public Attribution License + * Version 1.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.projectlibre.com/license . The License is based on the Mozilla Public + * License Version 1.1 but Sections 14 and 15 have been added to cover use of + * software over a computer network and provide for limited attribution for the + * Original Developer. In addition, Exhibit A has been modified to be consistent + * with Exhibit B. + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the + * specific language governing rights and limitations under the License. The + * Original Code is ProjectLibre. The Original Developer is the Initial Developer + * and is ProjectLibre Inc. All portions of the code written by ProjectLibre are + * Copyright (c) 2012-2019. All Rights Reserved. All portions of the code written by + * ProjectLibre are Copyright (c) 2012-2019. All Rights Reserved. Contributor + * ProjectLibre, Inc. + * + * Alternatively, the contents of this file may be used under the terms of the + * ProjectLibre End-User License Agreement (the ProjectLibre License) in which case + * the provisions of the ProjectLibre License are applicable instead of those above. + * If you wish to allow use of your version of this file only under the terms of the + * ProjectLibre License and not to allow others to use your version of this file + * under the CPAL, indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by the ProjectLibre + * License. If you do not delete the provisions above, a recipient may use your + * version of this file under either the CPAL or the ProjectLibre Licenses. + * + * + * [NOTE: The text of this Exhibit A may differ slightly from the text of the notices + * in the Source Code files of the Original Code. You should use the text of this + * Exhibit A rather than the text found in the Original Code Source Code for Your + * Modifications.] + * + * EXHIBIT B. Attribution Information for ProjectLibre required + * + * Attribution Copyright Notice: Copyright (c) 2012-2019, ProjectLibre, Inc. + * Attribution Phrase (not exceeding 10 words): + * ProjectLibre, open source project management software. + * Attribution URL: http://www.projectlibre.com + * Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with + * alternatives listed on http://www.projectlibre.com/logo + * + * Display of Attribution Information is required in Larger Works which are defined + * in the CPAL as a work which combines Covered Code or portions thereof with code + * not governed by the terms of the CPAL. However, in addition to the other notice + * obligations, all copies of the Covered Code in Executable and Source Code form + * distributed must, as a form of attribution of the original author, include on + * each user interface screen the "ProjectLibre" logo visible to all users. + * The ProjectLibre logo should be located horizontally aligned with the menu bar + * and left justified on the top left of the screen adjacent to the File menu. The + * logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre" + * logo it must direct them back to http://www.projectlibre.com. + *******************************************************************************/ +package com.projectlibre1.pm.graphic.frames; +import java.applet.Applet; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.GridLayout; +import java.awt.HeadlessException; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyEvent; +import java.awt.event.WindowEvent; +import java.awt.event.WindowStateListener; +import java.beans.XMLDecoder; +import java.beans.XMLEncoder; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.prefs.Preferences; + +import javax.swing.Action; +import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.ImageIcon; +import javax.swing.InputMap; +import javax.swing.JApplet; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButtonMenuItem; +import javax.swing.JTabbedPane; +import javax.swing.JToolBar; +import javax.swing.KeyStroke; +import javax.swing.LookAndFeel; +import javax.swing.RootPaneContainer; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.undo.AbstractUndoableEdit; +import javax.swing.undo.CannotRedoException; +import javax.swing.undo.CannotUndoException; + +import org.apache.batik.util.gui.resource.ActionMap; +import org.apache.batik.util.gui.resource.MissingListenerException; +import org.apache.commons.collections.Closure; +import org.projectlibre.strings.Strings; +import org.pushingpixels.flamingo.api.common.AbstractCommandButton; +import org.pushingpixels.flamingo.api.ribbon.JRibbon; +import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame; +import org.pushingpixels.flamingo.api.ribbon.RibbonApplicationMenu; +import org.pushingpixels.flamingo.api.ribbon.RibbonTask; + +import com.projectlibre.ui.ribbon.CustomRibbonBandGenerator; +import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI; +import com.projectlibre1.configuration.Configuration; +import com.projectlibre1.configuration.FieldDictionary; +import com.projectlibre1.configuration.Settings; +import com.projectlibre1.contrib.ClassLoaderUtils; +import com.projectlibre1.dialog.AboutDialog; +import com.projectlibre1.dialog.AbstractDialog; +import com.projectlibre1.dialog.BaselineDialog; +import com.projectlibre1.dialog.FindDialog; +import com.projectlibre1.dialog.HelpDialog; +import com.projectlibre1.dialog.LocaleDialog; +import com.projectlibre1.dialog.OpenProjectDialog; +import com.projectlibre1.dialog.ProjectDialog; +import com.projectlibre1.dialog.ProjectInformationDialog; +import com.projectlibre1.dialog.RenameProjectDialog; +import com.projectlibre1.dialog.ResourceInformationDialog; +import com.projectlibre1.dialog.ResourceMappingDialog; +import com.projectlibre1.dialog.TaskInformationDialog; +import com.projectlibre1.dialog.TipOfTheDay; +import com.projectlibre1.dialog.WelcomeDialog; +import com.projectlibre1.dialog.assignment.AssignmentDialog; +import com.projectlibre1.dialog.options.CalendarDialogBox; +import com.projectlibre1.document.Document; +import com.projectlibre1.document.ObjectEvent; +import com.projectlibre1.exchange.ResourceMappingForm; +import com.projectlibre1.field.Field; +import com.projectlibre1.graphic.configuration.SpreadSheetFieldArray; +import com.projectlibre1.grouping.core.Node; +import com.projectlibre1.grouping.core.VoidNodeImpl; +import com.projectlibre1.grouping.core.model.NodeModel; +import com.projectlibre1.grouping.core.transform.ViewTransformer; +import com.projectlibre1.grouping.core.transform.filtering.NodeFilter; +import com.projectlibre1.grouping.core.transform.filtering.ResourceInTeamFilter; +import com.projectlibre1.job.Job; +import com.projectlibre1.job.JobQueue; +import com.projectlibre1.job.JobRunnable; +import com.projectlibre1.job.Mutex; +import com.projectlibre1.menu.MenuActionConstants; +import com.projectlibre1.menu.MenuActionsMap; +import com.projectlibre1.menu.MenuManager; +import com.projectlibre1.options.CalendarOption; +import com.projectlibre1.pm.assignment.Assignment; +import com.projectlibre1.pm.graphic.IconManager; +import com.projectlibre1.pm.graphic.TabbedNavigation; +import com.projectlibre1.pm.graphic.frames.workspace.DefaultFrameManager; +import com.projectlibre1.pm.graphic.frames.workspace.FrameHolder; +import com.projectlibre1.pm.graphic.frames.workspace.FrameManager; +import com.projectlibre1.pm.graphic.frames.workspace.NamedFrame; +import com.projectlibre1.pm.graphic.frames.workspace.NamedFrameEvent; +import com.projectlibre1.pm.graphic.frames.workspace.NamedFrameListener; +import com.projectlibre1.pm.graphic.laf.LafManager; +import com.projectlibre1.pm.graphic.spreadsheet.SpreadSheet; +import com.projectlibre1.pm.graphic.spreadsheet.common.CommonSpreadSheet; +import com.projectlibre1.pm.graphic.spreadsheet.selection.event.SelectionNodeEvent; +import com.projectlibre1.pm.graphic.spreadsheet.selection.event.SelectionNodeListener; +import com.projectlibre1.pm.graphic.views.BaseView; +import com.projectlibre1.pm.graphic.views.ProjectsDialog; +import com.projectlibre1.pm.graphic.views.Searchable; +import com.projectlibre1.pm.resource.Resource; +import com.projectlibre1.pm.resource.ResourcePool; +import com.projectlibre1.pm.task.Project; +import com.projectlibre1.pm.task.ProjectFactory; +import com.projectlibre1.pm.task.SubProj; +import com.projectlibre1.pm.task.Task; +import com.projectlibre1.pm.time.HasStartAndEnd; +import com.projectlibre1.preference.ConfigurationFile; +import com.projectlibre1.preference.GlobalPreferences; +import com.projectlibre1.print.GraphPageable; +import com.projectlibre1.print.PrintDocumentFactory; +import com.projectlibre1.server.data.DocumentData; +import com.projectlibre1.session.CreateOptions; +import com.projectlibre1.session.LoadOptions; +import com.projectlibre1.session.LocalSession; +import com.projectlibre1.session.SaveOptions; +import com.projectlibre1.session.Session; +import com.projectlibre1.session.SessionFactory; +import com.projectlibre1.strings.Messages; +import com.projectlibre1.toolbar.FilterToolBarManager; +import com.projectlibre1.toolbar.TransformComboBox; +import com.projectlibre1.undo.CommandInfo; +import com.projectlibre1.undo.UndoController; +import com.projectlibre1.util.Alert; +import com.projectlibre1.util.BrowserControl; +import com.projectlibre1.util.ClassUtils; +import com.projectlibre1.util.Environment; +import com.projectlibre1.workspace.SavableToWorkspace; +import com.projectlibre1.workspace.WorkspaceSetting; + +import apple.dts.samplecode.osxadapter.OSXAdapter; + + +/** + * + */ +public class GraphicManager implements FrameHolder, NamedFrameListener, WindowStateListener, SelectionNodeListener, ObjectEvent.Listener, ActionMap, MenuActionConstants, SavableToWorkspace { + private static final boolean BINARY_WORKSPACE = true; + private static GraphicManager lastGraphicManager = null; // used when displaying a popup but the frame isn't known + private DocumentFrame currentFrame = null; + private List frameList=new ArrayList(); + private HashMap frameMap = new HashMap(); +// private JFileChooser fileChooser = null; + + private NamedFrame viewBarFrame; + private FrameManager frameManager; + + private MenuManager menuManager; + MenuActionsMap actionsMap = null; + //private String[] projectUrl; + private static String server = null; + + private AssignmentDialog assignResourcesDialog = null; + private FindDialog findDialog = null; + private ProjectInformationDialog projectInformationDialog = null; + private TaskInformationDialog taskInformationDialog = null; + private ResourceInformationDialog resourceInformationDialog = null; + private AboutDialog aboutDialog = null; + private HelpDialog helpDialog = null; + private BaselineDialog baselineDialog = null; + private ResourceMappingDialog resourceMappingDialog=null; + ProjectFactory projectFactory = null; + protected Container container; + protected Frame frame; + TabbedNavigation topTabs = null; + + private static Object lastWorkspace = null; // static required - used for copying current workspace to new instance + static LinkedList graphicManagers = new LinkedList(); + private static LafManager lafManager; + public static boolean badLAF = false; + private StartupFactory startupFactory = null; + protected JobQueue jobQueue=null; + + protected GlobalPreferences preferences=null; + private FilterToolBarManager filterToolBarManager; + private JMenu projectListMenu = null; + + private ArrayList history=new ArrayList(); + + /** determines the parent graphic manager for a component + * + * @param component + * @return + */ + public static GraphicManager getInstance(Component component){ + Component c = component; + for (c = component; c != null; c = c.getParent()) { + if (c instanceof FrameHolder) + return ((FrameHolder)c).getGraphicManager(); + else if (c.getName() != null && c.getName().endsWith("BootstrapApplet") && c.getClass().getName().endsWith("BootstrapApplet")){ + System.out.println("applet: "+c.getClass().getName()); + try { + FrameHolder holder=(FrameHolder)Class.forName("com.projectlibre1.bootstrap.BootstrapApplet.class").getMethod("getObject", null).invoke(c, null); + return holder.getGraphicManager(); + } catch (Exception e) { + return null; + } + } + } + return lastGraphicManager; // if none found, use last used one + } + public static GraphicManager getInstance(){ +//System.out.println("Graphic manager getInstance = " + lastGraphicManager.hashCode()); + return lastGraphicManager; + } + + public static Frame getFrameInstance(){ + return lastGraphicManager.getFrame(); + } + + public static DocumentFrame getDocumentFrameInstance(){ + return lastGraphicManager==null?null:lastGraphicManager.getCurrentFrame(); + } + + void setMeAsLastGraphicManager() { // makes this the current graphic manager for job queue and dialogs + lastGraphicManager = this; + if (jobQueue != null) + SessionFactory.getInstance().setJobQueue(getJobQueue()); + + } + + + + public static LinkedList getGraphicManagers() { + return graphicManagers; + } + + /** + * @param projectUrl TODO + * @param server TODO + * @throws java.awt.HeadlessException + */ + public GraphicManager(/*String[] projectUrl,*/ String server,Container container) throws HeadlessException { + graphicManagers.add(this); + lastGraphicManager = this; + container.addFocusListener(new FocusListener() { + + public void focusGained(FocusEvent e) { +// System.out.println("GainFocus " + GraphicManager.this.hashCode()); + setMeAsLastGraphicManager(); + } + + public void focusLost(FocusEvent e) { +// System.out.println("LostFocus " + GraphicManager.this.hashCode()); + }}); + + projectFactory = ProjectFactory.getInstance(); + projectFactory.getPortfolio().addObjectListener(this); + + //this.projectUrl = projectUrl; + GraphicManager.server = server; + this.container=container; + if (container instanceof Frame) + frame=(Frame)container; + else if (container instanceof JApplet) + frame = JOptionPane.getFrameForComponent(container); + if (container instanceof FrameHolder) + ((FrameHolder)container).setGraphicManager(this); +// else if (container instanceof BootstrapApplet){ + else{ + try { + FrameHolder holder=(FrameHolder)Class.forName("com.projectlibre1.bootstrap.BootstrapApplet").getMethod("getObject", null).invoke(container, null); + holder.setGraphicManager(this); + } catch (Exception e) { + } + } + registerForMacOSXEvents(); + } + public GraphicManager(Container container) { + this(/*null,*/ server,container); + } + + protected void finalize() throws Throwable { +// System.out.println("~~~~~~~~~~~~~~~~ GraphicManager.finalize()"); + super.finalize(); + } + + public void cleanUp() { + +// On quitting, a sleep interrupted exception (below) is thrown by Substance. Without changing the source +// java.lang.InterruptedException: sleep interrupted +// at java.lang.Thread.sleep(Native Method) +// at org.jvnet.substance.utils.FadeTracker$FadeTrackerThread.run(FadeTracker.java:210) +// I have submitted a bug report: https://substance.dev.java.net/issues/show_bug.cgi?id=155 with a proposed fix + + projectFactory.getPortfolio().removeObjectListener(this); + ((DefaultFrameManager)frameManager).cleanUp(); + graphicManagers.remove(this); + if (graphicManagers.isEmpty()) + getLafManager().clean(); + + if (jobQueue != null) + jobQueue.cancel(); + jobQueue = null; + } + + public LafManager getLafManager(){ + if (lafManager==null){ + try { + String lafName=Messages.getMetaString("LafManager"); + lafManager=(LafManager)Class.forName(lafName).getConstructor(new Class[]{GraphicManager.class}).newInstance(new Object[]{this}); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (NoSuchMethodException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + //lafManager=new LafManager(this); + } + return lafManager; + } + + + + private String fileName = "../projectlibre_exchange/testdata/New Product.mpp"; //$NON-NLS-1$ + private ViewAction resourceAction; + +// private JFileChooser getFileChooser() { +// if (fileChooser == null) +// fileChooser = new JFileChooser(); +// return fileChooser; +// } + + + private static String getTabIdForProject(Project project) { + if (project == null) + return null; + return "" + project.getUniqueId(); //see later //$NON-NLS-1$ + } + + void setTabNameAndTitle(DocumentFrame frame, Project project) { + frame.setTabNameAndTitle(project); + } + + + public void switchToProject(long projectId) { + Project project = ProjectFactory.getInstance().findFromId(projectId); + if (project == null) + return; + DocumentFrame f = (DocumentFrame) frameMap.get(project); + if (f == null) + return; + setCurrentFrame(f); + + } + protected void setCurrentFrame(DocumentFrame frame){ + if (frame instanceof DocumentFrame) { + if (currentFrame != null && projectListMenu != null&&!Environment.isPlugin()) { + currentFrame.getMenuItem().setSelected(false); + } + + if (currentFrame != null&&!Environment.isPlugin()) + currentFrame.refreshViewButtons(false); // disable buttons for old view + + currentFrame = (DocumentFrame)frame; + if (projectListMenu != null&&!Environment.isPlugin()) { + currentFrame.getMenuItem().setSelected(true); + } + if (topTabs != null&&!Environment.isPlugin()) { + topTabs.setCurrentFrame(currentFrame); + } + DocumentSelectedEvent.fire(this,currentFrame); + if (projectInformationDialog != null) + projectInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); + if (taskInformationDialog != null) + taskInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); + if (resourceInformationDialog != null) + resourceInformationDialog.documentSelected(new DocumentSelectedEvent(this,currentFrame)); + + setTitle(false); + if (currentFrame != null) + currentFrame.refreshViewButtons(true); + + getFrameManager().activateFrame(currentFrame); // need to force activation in case being activated by closing another + if(!Environment.isPlugin()){ + setEnabledDocumentMenuActions(currentFrame!=null); + setButtonState(null,currentFrame.getProject()); + } + if (currentFrame != null && currentFrame.getProject() != null) { + if (!Environment.isPlugin()) currentFrame.getFilterToolBarManager().transformBasedOnValue(); + CalendarOption calendarOption = currentFrame.getProject().getCalendarOption(); + + if (calendarOption != null) { + CalendarOption.setInstance(calendarOption); + } + } else { + CalendarOption.setInstance(CalendarOption.getDefaultInstance()); + } + } + } + + void setTitle(boolean isSaving) { + DocumentFrame dframe = getCurrentFrame(); + String title=Messages.getContextString("Text.ApplicationTitle"); //$NON-NLS-1$ + if (dframe != null && dframe.getProject() != null) { + if (Environment.getStandAlone()) title=dframe.getProject().getTitle(); + else title += " - " + dframe.getProject().getName(); //$NON-NLS-1$ + if (!isSaving && dframe.getProject().needsSaving()) + title += " *"; // modified; //$NON-NLS-1$ + } + Frame f=getFrame(); + if (frame!=null) frame.setTitle(title); + + } + /** + * Adds a new document frame and shows it + * @param project + * @return + */ + + public DocumentFrame addProjectFrame(final Project project) { + String tabId = getTabIdForProject(project); + if (project == null) // in case of out of memory error + return null; + final DocumentFrame frame = new DocumentFrame(this,project,tabId); + if (frame == null) // in case of out memory error + return null; + getFrameManager().addFrame(frame); +// DocumentFrame newDocumentFrame = (DocumentFrame)getFrameManager().getFrame(tabId); + + setTabNameAndTitle(frame,project); + frame.setShowTitleBar(false); + getFrameManager().showFrame(frame); // show the frame + frame.addNamedFrameListener(this); // main frame listens to changes in selection + + project.addProjectListener(frame); + + + if (projectListMenu != null) { + JRadioButtonMenuItem mi = new JRadioButtonMenuItem(new SelectDocumentAction(frame)); + mi.setSelected(true); + frame.setMenuItem(mi); + projectListMenu.add(mi); + } + setCurrentFrame(frame); + + frameList.add(frame); + frameMap.put(project, frame); + + // clear filter/grouping/sort for newly opened or created project + if (!Environment.isPlugin()) SwingUtilities.invokeLater( new Runnable() { + public void run() { + frame.getFilterToolBarManager().clear(); + }}); + getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,frame==null || !frame.isEditingResourcePool()); //resource pool can not be opened at same time as another proj + return frame; + } + + private void closeProjectFrame(Project project) { + String tabId = getTabIdForProject(project); + DocumentFrame frame = (DocumentFrame) frameMap.get(project); + if (frame!=null){ //TODO why is it sometimes null? Well, in the case of opening a subproject it can be + + if (currentFrame == frame){ + frame.setVisible(false); + JMenuItem mi = frame.getMenuItem(); + if (mi != null && projectListMenu != null) + projectListMenu.remove(mi); + + if (frameList.size()<=1) { + frame.refreshViewButtons(false); // disable old buttons + currentFrame=null;//TODO open a new one instead + setTitle(false); + setEnabledDocumentMenuActions(false); + } else{ + DocumentFrame current; + int index=0; + for (Iterator i=frameList.iterator();i.hasNext();index++){ + current=(DocumentFrame)i.next(); + if (tabId.equals(getTabIdForProject(current.getProject()))) + break; + } + setCurrentFrame((DocumentFrame)frameList.get((index==0)?1:index-1));//TODO use previous instead + } + } + project.removeProjectListener(frame); // hk uncommented this for applet. don't know why it was commented + frame.removeNamedFrameListener(this); // main frame listens to changes in selection + + getFrameManager().removeFrame(frame); + frame.onClose(); + frameList.remove(frame); + frameMap.remove(project); + + + } + setAllButResourceDisabled(false); + getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,true); // no matter what, you can open a project after closing, since if you closed resource pool you can open after + } + public String doRenameProjectDialog(String name,Set projectNames,boolean saveAs) { + finishAnyOperations(); + RenameProjectDialog renameProjectDialog = RenameProjectDialog.getInstance(getFrame(),null); + renameProjectDialog.getForm().setName(name); + renameProjectDialog.getForm().setProjectNames(projectNames); + renameProjectDialog.getForm().setSaveAs(saveAs); + if (renameProjectDialog.doModal()) + return renameProjectDialog.getForm().getName(); + return null; + } + + public void doWelcomeDialog() { + //claur, for test purpose to preload a project + String preloadProject=ConfigurationFile.getProperty("preLoadProject"); + if (preloadProject!=null){ + loadLocalDocument(preloadProject,false); + return; + } + + WelcomeDialog instance = WelcomeDialog.getInstance(getFrame(),getMenuManager()); + if (instance.doModal()) { + waitInitialization(); + if (instance.getForm().isCreateProject()) + doNewProjectDialog(); + else if (instance.getForm().isOpenProject()){ + if(Environment.getStandAlone()) openLocalProject(); + else doOpenProjectDialog(); + }else if (instance.getForm().isManageResources()) { + loadMasterProject(); + } + } + } + + public boolean doNewProjectDialog() { + ProjectDialog.Form form=doNewProjectDialog1(); + if (form==null) return false; + else return doNewProjectDialog2(form); + } + public boolean doNewProjectNoDialog(HashMap opts) { + ProjectDialog.Form form=doNewProjectNoDialog1(); + if (form==null) return false; + if (opts!=null){ + Closure updateViewClosure=(Closure)opts.get("updateViewClosure"); + if (updateViewClosure!=null) updateViewClosure.execute(form); + } + return doNewProjectDialog2(form); + } + public ProjectDialog.Form doNewProjectDialog1() { + addHistory("doNewProjectDialog"); + finishAnyOperations(); + ProjectDialog projectDialog = ProjectDialog.getInstance(getFrame(),null); + projectDialog.getForm().setManager(Environment.getUser().getName()); + if (!projectDialog.doModal()) + return null; // if cancelled + return projectDialog.getForm(); + } + protected static int project_suffix_count=1; +// protected static ProjectDialog.Form lastNewProjectForm; +// public ProjectDialog.Form getLastNewProjectForm() { +// return lastNewProjectForm; +// } + public ProjectDialog.Form doNewProjectNoDialog1() { + System.out.println("doNewProjectNoDialog1 begin"); + addHistory("doNewProjectNoDialog"); + finishAnyOperations(); + ProjectDialog.Form form=new ProjectDialog.Form(); + form.setName("Project"+(project_suffix_count++)); +// lastNewProjectForm=form; + System.out.println("doNewProjectNoDialog1 end"); + return form; + } + public boolean doNewProjectDialog2(ProjectDialog.Form form) { + showWaitCursor(true); + ResourcePool resourcePool=form.getResourcePool(); + boolean local=form.isLocal(); + if (resourcePool!=null) resourcePool.setLocal(local); + CreateOptions opt=new CreateOptions(); + opt.setResourcePool(form.getResourcePool()); + opt.setLocal(local); + opt.setName(form.getName()); + opt.setAddResources(!local); + Project project = projectFactory.createProject(opt); + try { + //createProject above might make a new resource pool, so make sur it is used when copying properties + //projectDialog.getForm().setResourcePool(project.getResourcePool()); + + project.setManager(form.getManager()); + project.setName(form.getName()); + project.setNotes(form.getNotes()); + project.setForward(form.isForward()); + project.setGroup(form.getGroup()); + project.setDivision(form.getDivision()); + project.setProjectType(form.getProjectType()); + project.setProjectStatus(form.getProjectStatus()); + project.setExpenseType(form.getExpenseType()); + + if (!form.isLocal()){ + project.setAccessControlPolicy(form.getAccessControlType()); + project.resetRoles(form.getAccessControlType()==0); + } + + + if (form.isLocal()) + project.setLocal(true); + else project.setTemporaryLocal(true); + if (form.isForward()) + project.setStartDate(form.getStartDate()); + else + project.setFinishDate(form.getStartDate()); + // copy any extra fields to the project + project.getExtraFields().putAll(form.getExtra().getExtraFields()); + +// PropertyUtils.copyProperties(project, projectDialog.getForm()); + } catch (Exception propertyException) { + propertyException.printStackTrace(); + } + showWaitCursor(false); + + return true; + } + + boolean doingOpenDialog = false; + private void doOpenProjectDialog() { + if (doingOpenDialog) + return; + doingOpenDialog = true; + finishAnyOperations(); + + final ArrayList descriptors=new ArrayList(); + + Session session=SessionFactory.getInstance().getSession(false); + Job job=(Job)SessionFactory.callNoEx(session,"getLoadProjectDescriptorsJob",new Class[]{boolean.class,java.util.List.class,boolean.class},new Object[]{true,descriptors,!Environment.isAdministrator()}); + job.addSwingRunnable(new JobRunnable("Local: loadDocument"){ //$NON-NLS-1$ + public Object run() throws Exception{ + final Closure setter=new Closure(){ + public void execute(Object obj){ + + } + }; + final Closure getter=new Closure(){ + public void execute(Object obj){ + final Object[] r=(Object[])obj; + if (r!=null){ + DocumentData data=(DocumentData)r[0]; + boolean openAs=(Boolean)r[1]; + loadDocument(data.getUniqueId(),false,openAs); + } + + } + }; + try { + boolean allowMaster = getCurrentFrame() == null && Environment.isAdministrator(); + OpenProjectDialog.getInstance(getFrame(),descriptors,Messages.getString("Text.openProject"),allowMaster, true, null).execute(setter,getter); //$NON-NLS-1$ + } finally { + doingOpenDialog = false; + } + + return null; + } + }); + session.schedule(job); + } + private void doInsertProjectDialog() { + if (doingOpenDialog) + return; + doingOpenDialog = true; + + finishAnyOperations(); + + final Project project; + project= getCurrentFrame().getProject(); + +// List nodes=getCurrentFrame().getSelectedNodes(); +// if (nodes==null||nodes.size()==0) return; +// Node node=(Node)nodes.get(0); +// if (!node.isInSubproject()) project= getCurrentFrame().getProject(); +// else{ +// while (!(node==null) && !(node.getImpl().getClass().getName().equals("com.projectlibre1.pm.task.Subproject"))){ +// node=(Node)node.getParent(); +// } +// if (node==null) return; //shouldn't happen +// try { +// project=(Project)node.getImpl().getClass().getMethod("getSubproject", null).invoke(node.getImpl(), null); +// } catch (Exception e) { +// return; +// } +// } + + final ArrayList descriptors=new ArrayList(); + + Session session=SessionFactory.getInstance().getSession(false); + Job job=(Job)SessionFactory.callNoEx(session,"getLoadProjectDescriptorsJob",new Class[]{boolean.class,java.util.List.class,boolean.class},new Object[]{true,descriptors,true}); + job.addSwingRunnable(new JobRunnable("Local: add"){ //$NON-NLS-1$ + public Object run() throws Exception{ + Closure setter=new Closure(){ + public void execute(Object obj){ + + } + }; + Closure getter=new Closure(){ + public void execute(Object obj){ + final Object[] r=(Object[])obj; + if (r!=null){ + final DocumentData data=(DocumentData)r[0]; + if (data.isMaster()) + return; + insertSubproject(project, data.getUniqueId(), true); +// Project openedAlready = ProjectFactory.getInstance().findFromId(data.getUniqueId()); +// +// if (!project.canInsertProject(data.getUniqueId())) { +// Alert.error("The selected project is already a subproject in this consolidated project."); +// return; +// } +// if (openedAlready != null && openedAlready.isOpenedAsSubproject()) { +// Alert.error("The selected project is already opened as a subproject in another consolidated project."); +// return; +// } +// Subproject subprojectTask = new Subproject(project,data.getUniqueId()); +// Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT); +// ProjectFactory.getInstance().openSubproject(project, subprojectNode, true); + } + } + }; + + try { + OpenProjectDialog dlg = OpenProjectDialog.getInstance(getFrame(),descriptors,Messages.getString("Text.insertProject"),false, false, project); //$NON-NLS-1$ + dlg.execute(setter,getter); + } catch (Exception e) { + Alert.error(Messages.getString("Message.serverUnreachable"),getContainer()); //$NON-NLS-1$ + //TODO need more precise exception + e.printStackTrace(); + } finally { + doingOpenDialog = false; + } + return null; + } + }); + session.schedule(job); + } + + + + public void insertSubproject(final Project project, final long subprojectUniqueId,final boolean undo) { + addHistory("insertSubproject", new Object[]{project.getName(),project.getUniqueId(),subprojectUniqueId}); + Project openedAlready = ProjectFactory.getInstance().findFromId(subprojectUniqueId); + + if (!project.getSubprojectHandler().canInsertProject(subprojectUniqueId)) { + Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadySubproject")); //$NON-NLS-1$ + return; + } + if (openedAlready != null && openedAlready.isOpenedAsSubproject()) { + Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadyOpenedAsSubproject")); //$NON-NLS-1$ + return; + } + SubProj subprojectTask = project.getSubprojectHandler().createSubProj(subprojectUniqueId); + Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT); + ProjectFactory.getInstance().openSubproject(project, subprojectNode, true); + + //Undo + if (undo){ + UndoController undoContoller=project.getUndoController(); + if (undoContoller.getEditSupport()!=null){ + undoContoller.clear(); + //undoContoller.getEditSupport().postEdit(new CreateSubprojectEdit(project,subprojectNode,subprojectUniqueId)); + } + } + + } + + + + protected class CreateSubprojectEdit extends AbstractUndoableEdit{ + protected Project project; + protected final Node subprojectNode; + protected long subprojectUniqueId; + + + public CreateSubprojectEdit(Project project, final Node subprojectNode, long subprojectUniqueId) { + super(); + this.project = project; + this.subprojectNode = subprojectNode; + this.subprojectUniqueId = subprojectUniqueId; + } + public void redo() throws CannotRedoException { + super.redo(); + insertSubproject(project, subprojectUniqueId, false); + } + public void undo() throws CannotUndoException { + super.undo(); + project.getTaskOutline().remove(subprojectNode,NodeModel.EVENT); + +// UndoController undoContoller=project.getUndoController(); +// if (undoContoller.getEditSupport()!=null){ +// undoContoller.clear(); +// } + } + } + + + + private void doProjectInformationDialog() { + if (!getCurrentFrame().isActive()) + return; + + finishAnyOperations(); + + if (projectInformationDialog == null) { + projectInformationDialog = ProjectInformationDialog.getInstance(getFrame(),getCurrentFrame().getProject()); + projectInformationDialog.pack(); + projectInformationDialog.setModal(false); + } else { + projectInformationDialog.setObject(getCurrentFrame().getProject()); + } + projectInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen + projectInformationDialog.setVisible(true); + + } + + public void doInformationDialog(boolean notes) { + + if (!isDocumentActive()) + return; + + finishAnyOperations(); + List nodes=getCurrentFrame().getSelectedNodes(false); + if (nodes == null) + return; + if (nodes.size() > 1) { + Alert.warn(Messages.getString("Message.onlySelectOneElement"),getContainer()); //$NON-NLS-1$ + return; + } + final Node node=(Node)nodes.get(0); + Object impl=node.getImpl(); + if (impl instanceof Task||(impl instanceof Assignment&&taskType)){ + Task task=(Task)((impl instanceof Assignment)?(((Assignment)impl).getTask()):impl); + if (taskInformationDialog == null) { + taskInformationDialog = TaskInformationDialog.getInstance(getFrame(),task, notes); + taskInformationDialog.pack(); + taskInformationDialog.setModal(false); + } else { + taskInformationDialog.setObject(task); + taskInformationDialog.updateAll(); + } + taskInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen + if (notes) + taskInformationDialog.showNotes(); + else if (impl instanceof Assignment) + taskInformationDialog.showResources(); + + taskInformationDialog.setVisible(true); + } else if (impl instanceof Resource||(impl instanceof Assignment&&resourceType)) { + Resource resource=(Resource)((impl instanceof Assignment)?(((Assignment)impl).getResource()):impl);; + if (resourceInformationDialog == null) { + resourceInformationDialog = ResourceInformationDialog.getInstance(getFrame(),resource); + resourceInformationDialog.pack(); + resourceInformationDialog.setModal(false); + } else { + resourceInformationDialog.setObject(resource); + resourceInformationDialog.updateAll(); + } + resourceInformationDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen + if (notes) + resourceInformationDialog.showNotes(); + resourceInformationDialog.setVisible(true); + + } else if (impl instanceof Project) { + doProjectInformationDialog(); + } + + + } + + + public Action getAction(String key) throws MissingListenerException { + if (actionsMap == null) + addHandlers(); + + Action action = actionsMap.getConcreteAction(key); + if (action == null) + throw new MissingListenerException("no listener for mainFrame", getClass().getName(),key); //$NON-NLS-1$ + + return action; + } + + public String getStringFromAction(Action action) throws MissingListenerException { + return actionsMap.getStringFromAction(action); + } + + public Action getRawAction(String s){ + return actionsMap.getActionFromMenuId(s); + } + + + public void addHandlers() { + actionsMap = new MenuActionsMap(this,menuManager); + actionsMap.addHandler(ACTION_NEW_PROJECT, new NewProjectAction()); + actionsMap.addHandler(ACTION_OPEN_PROJECT, new OpenProjectAction()); + actionsMap.addHandler(ACTION_INSERT_PROJECT, new InsertProjectAction()); + actionsMap.addHandler(ACTION_EXIT, new ExitAction()); + actionsMap.addHandler(ACTION_IMPORT_MSPROJECT, new ImportMSProjectAction()); + actionsMap.addHandler(ACTION_EXPORT_MSPROJECT, new ExportMSProjectAction()); + actionsMap.addHandler(ACTION_ABOUT_PROJECTLIBRE, new AboutAction()); + actionsMap.addHandler(ACTION_PROJECTLIBRE, new ProjectLibreAction()); + actionsMap.addHandler(ACTION_PROJECTLIBRE_DOCUMENTATION, new HelpAction()); + actionsMap.addHandler(ACTION_TIP_OF_THE_DAY, new TipOfTheDayAction()); + actionsMap.addHandler(ACTION_PROJECT_INFORMATION, new ProjectInformationAction()); + actionsMap.addHandler(ACTION_PROJECTS_DIALOG, new ProjectsDialogAction()); + actionsMap.addHandler(ACTION_TEAM_FILTER, new TeamFilterAction()); + actionsMap.addHandler(ACTION_DOCUMENTS, new DocumentsAction()); + actionsMap.addHandler(ACTION_INFORMATION, new InformationAction()); + actionsMap.addHandler(ACTION_NOTES, new NotesAction()); + actionsMap.addHandler(ACTION_ASSIGN_RESOURCES, new AssignResourcesAction()); + + actionsMap.addHandler(ACTION_FIND, new FindAction()); + actionsMap.addHandler(ACTION_GOTO, new GoToAction()); + actionsMap.addHandler(ACTION_INSERT_TASK, new InsertTaskAction()); + actionsMap.addHandler(ACTION_INSERT_RESOURCE, new InsertTaskAction()); // will do resource + actionsMap.addHandler(ACTION_SAVE_PROJECT, new SaveProjectAction()); + actionsMap.addHandler(ACTION_SAVE_PROJECT_AS, new SaveProjectAsAction()); + actionsMap.addHandler(ACTION_PRINT, new PrintAction()); + actionsMap.addHandler(ACTION_PRINT_PREVIEW, new PrintPreviewAction()); + actionsMap.addHandler(ACTION_PDF, new PDFAction()); + actionsMap.addHandler(ACTION_CLOSE_PROJECT, new CloseProjectAction()); + actionsMap.addHandler(ACTION_UNDO, new UndoAction()); + actionsMap.addHandler(ACTION_REDO, new RedoAction()); +// actionsMap.addHandler(ACTION_ENTERPRISE_RESOURCES, new EnterpriseResourcesAction()); + actionsMap.addHandler(ACTION_CHANGE_WORKING_TIME, new ChangeWorkingTimeAction()); + actionsMap.addHandler(ACTION_LEVEL_RESOURCES, new LevelResourcesAction()); + actionsMap.addHandler(ACTION_DELEGATE_TASKS, new DelegateTasksAction()); + actionsMap.addHandler(ACTION_UPDATE_TASKS, new UpdateTasksAction()); + actionsMap.addHandler(ACTION_UPDATE_PROJECT, new UpdateProjectAction()); + actionsMap.addHandler(ACTION_BAR, new BarAction()); + actionsMap.addHandler(ACTION_INSERT_RECURRING, new RecurringTaskAction()); + actionsMap.addHandler(ACTION_SORT, new SortAction()); + actionsMap.addHandler(ACTION_GROUP, new GroupAction()); + actionsMap.addHandler(ACTION_CALENDAR_OPTIONS, new CalendarOptionsAction()); + actionsMap.addHandler(ACTION_SAVE_BASELINE, new SaveBaselineAction()); + actionsMap.addHandler(ACTION_CLEAR_BASELINE, new ClearBaselineAction()); + actionsMap.addHandler(ACTION_LOCALE, new LocaleAction()); + actionsMap.addHandler(ACTION_LINK, new LinkAction()); + actionsMap.addHandler(ACTION_UNLINK, new UnlinkAction()); + actionsMap.addHandler(ACTION_ZOOM_IN, new ZoomInAction()); + actionsMap.addHandler(ACTION_ZOOM_OUT, new ZoomOutAction()); + actionsMap.addHandler(ACTION_SCROLL_TO_TASK, new ScrollToTaskAction()); + actionsMap.addHandler(ACTION_INDENT, new IndentAction()); + actionsMap.addHandler(ACTION_OUTDENT, new OutdentAction()); + actionsMap.addHandler(ACTION_COLLAPSE, new CollapseAction()); + actionsMap.addHandler(ACTION_EXPAND, new ExpandAction()); + + + actionsMap.addHandler(ACTION_CUT, new CutAction()); + actionsMap.addHandler(ACTION_COPY, new CopyAction()); + actionsMap.addHandler(ACTION_PASTE, new PasteAction()); + actionsMap.addHandler(ACTION_DELETE, new DeleteAction()); + + actionsMap.addHandler(ACTION_GANTT, new ViewAction(ACTION_GANTT)); + actionsMap.addHandler(ACTION_TRACKING_GANTT, new ViewAction(ACTION_TRACKING_GANTT)); + actionsMap.addHandler(ACTION_TASK_USAGE_DETAIL, new ViewAction(ACTION_TASK_USAGE_DETAIL)); + actionsMap.addHandler(ACTION_RESOURCE_USAGE_DETAIL, new ViewAction(ACTION_RESOURCE_USAGE_DETAIL)); + actionsMap.addHandler(ACTION_NETWORK, new ViewAction(ACTION_NETWORK)); + actionsMap.addHandler(ACTION_WBS, new ViewAction(ACTION_WBS)); + actionsMap.addHandler(ACTION_RBS, new ViewAction(ACTION_RBS)); + actionsMap.addHandler(ACTION_REPORT, new ViewAction(ACTION_REPORT)); + actionsMap.addHandler(ACTION_PROJECTS, new ViewAction(ACTION_PROJECTS)); + actionsMap.addHandler(ACTION_RESOURCES, resourceAction = new ViewAction(ACTION_RESOURCES)); + actionsMap.addHandler(ACTION_HISTOGRAM, new ViewAction(ACTION_HISTOGRAM)); + actionsMap.addHandler(ACTION_CHARTS, new ViewAction(ACTION_CHARTS)); + actionsMap.addHandler(ACTION_TASK_USAGE, new ViewAction(ACTION_TASK_USAGE)); + actionsMap.addHandler(ACTION_RESOURCE_USAGE, new ViewAction(ACTION_RESOURCE_USAGE)); + actionsMap.addHandler(ACTION_NO_SUB_WINDOW, new ViewAction(ACTION_NO_SUB_WINDOW)); + + actionsMap.addHandler(ACTION_CHOOSE_FILTER, new TransformAction()); + actionsMap.addHandler(ACTION_CHOOSE_SORT, new TransformAction()); + actionsMap.addHandler(ACTION_CHOOSE_GROUP, new TransformAction()); + + actionsMap.addHandler(ACTION_PALETTE, new PaletteAction()); + actionsMap.addHandler(ACTION_LOOK_AND_FEEL, new LookAndFeelAction()); + actionsMap.addHandler(ACTION_FULL_SCREEN, new FullScreenAction()); + actionsMap.addHandler(ACTION_REFRESH, new RefreshAction()); + + + } + + public class NewProjectAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doNewProjectDialog(); + } + protected boolean allowed(boolean enable){ + DocumentFrame dframe = getCurrentFrame(); + return dframe == null || !dframe.isEditingResourcePool(); + } + } + + public class OpenProjectAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + + setMeAsLastGraphicManager(); + if (Environment.getStandAlone()) openLocalProject(); + else doOpenProjectDialog(); + } + protected boolean allowed(boolean enable){ + DocumentFrame dframe = getCurrentFrame(); + return dframe == null || !dframe.isEditingResourcePool(); + } + protected boolean needsDocument() { + return !allowed(true); // force it to be called iff the resource pool is open + } + + + } + + public class InsertProjectAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doInsertProjectDialog(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class ExitAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + closeApplication(); + } + } + + public class ImportMSProjectAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + openLocalProject(); } + } + + public class ExportMSProjectAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + saveLocalProject(true); } + } + + public class AboutAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + showAboutDialog(); } + } + + public class ProjectLibreAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + BrowserControl.displayURL("http://www.projectlibre.com/"); + } + } + + public class HelpAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + showHelpDialog(); } + } + + public class TipOfTheDayAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + TipOfTheDay.showDialog(getFrame(),true); + } + } + public class ProjectInformationAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doProjectInformationDialog(); + } + } + + public class ProjectsDialogAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + ProjectsDialog.show(GraphicManager.this); + } + } + + public class TeamFilterAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + GlobalPreferences preferences=getPreferences();; + //Field field = Configuration.getFieldFromId("Field.showProjectResourcesOnly"); + boolean teamOnly=!preferences.isShowProjectResourcesOnly(); + //field.setValue(preferences,this,teamOnly); + preferences.setShowProjectResourcesOnly(teamOnly); + ArrayList buttons=getMenuManager().getToolBarFactory().getButtonsFromId("TeamFilter"); //$NON-NLS-1$ + if (buttons!=null&&buttons.size()==1){ + JButton b=(JButton)buttons.get(0); + if (Environment.isNewLook()) + b.setIcon(IconManager.getIcon(teamOnly?"menu24.showTeamResources":"menu24.showAllResources")); //$NON-NLS-1$ //$NON-NLS-2$ + else + b.setIcon(IconManager.getIcon(teamOnly?"menu.showTeamResourcesSmall":"menu.showAllResourcesSmall")); //$NON-NLS-1$ //$NON-NLS-2$ + } + menuManager.setActionSelected(ACTION_TEAM_FILTER,teamOnly); + + + } + } + public class DocumentsAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (!isDocumentActive()) + return; + invokeFieldAction(ACTION_DOCUMENTS,getCurrentFrame().getProject()); + } + } + + private boolean isEnabledFieldAction(String action, Object obj) { + Field f = FieldDictionary.getInstance().getActionField(ACTION_DOCUMENTS); + return (obj != null && f != null && f.getValue(obj,null) != null); + + } + private void invokeFieldAction(String action, Object obj) { + Field f = FieldDictionary.getInstance().getActionField(ACTION_DOCUMENTS); + if (f != null) + f.invokeAction(obj); + + } + public class CalendarOptionsAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doCalendarOptionsDialog(); + } + } + + + public class InformationAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doInformationDialog(false); + } + } + public class NotesAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + doInformationDialog(true); + } + } + + public class AssignResourcesAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + showAssignmentDialog(getCurrentFrame()); + } + } + + public class SelectDocumentAction extends MenuActionsMap.GlobalMenuAction { + private static final long serialVersionUID = 1L; + DocumentFrame frame; + public SelectDocumentAction(DocumentFrame frame) { + this.frame = frame; + } + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + GraphicManager.this.setCurrentFrame(frame); + } + @Override + public Object getValue(String key) { + if (key == Action.NAME) + return frame.getProject().getName(); + return super.getValue(key); + } + } + + // Document actions + public class FindAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + doFind(getCurrentFrame().getTopSpreadSheet(),null); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return (currentFrame.getActiveSpreadSheet() != null); + } + } + + public class GoToAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + doFind(getCurrentFrame().getTopSpreadSheet(),Configuration.getFieldFromId("Field.id")); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return (currentFrame.getActiveSpreadSheet() != null); + } + } + + public class RecalculateAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().getProject().recalculate(); + } + } + + public class InsertTaskAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().addNodeForImpl(null); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class SaveProjectAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (Environment.getStandAlone()) saveLocalProject(false); + else{ + if (isDocumentActive()) { + final DocumentFrame frame=getCurrentFrame(); + final Project project = frame.getProject(); + SaveOptions opt=new SaveOptions(); + opt.setPostSaving(new Closure(){ + public void execute(Object arg0) { + refreshSaveStatus(true); + } + }); + opt.setPreSaving(getSavingClosure()); + addHistory("saveProject", new Object[]{project.getName(),project.getUniqueId()}); + projectFactory.saveProject(project,opt); + } + } + + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + NamedFrame frame=getCurrentFrame(); + if (frame==null) return false; + Project project=getCurrentFrame().getProject(); + if (project==null) return false; + return Environment.isProjectLibre() || (!project.isLocal()&&project.needsSaving()); + } + } + + public class SaveProjectAsAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (Environment.getStandAlone()) saveLocalProject(true); + else{ + if (isDocumentActive()) { + final DocumentFrame frame=getCurrentFrame(); + final Project project = frame.getProject(); + SaveOptions opt=new SaveOptions(); + opt.setPostSaving(new Closure(){ + public void execute(Object arg0) { + frame.setId(project.getUniqueId()+""); //$NON-NLS-1$ + refreshSaveStatus(true); + } + }); + opt.setSaveAs(true); + opt.setPreSaving(getSavingClosure()); + projectFactory.saveProject(project,opt); + } + } + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + NamedFrame frame=getCurrentFrame(); + if (frame==null) return false; + Project project=getCurrentFrame().getProject(); + if (project==null) return false; + if (project.isMaster() && !Environment.getStandAlone() && !Environment.isProjectLibre()) + return false; + + return (project.isSavable()); +// return true;//!project.isLocal()&&!project.isMaster(); + } + } + + public class PrintAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + print(); + } + } + public class PrintPreviewAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) { + Component c = (Component)arg0.getSource(); + Cursor cur = c.getCursor(); + c.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + printPreview(); + c.setCursor(cur); + + } + } + } + public class PDFAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { +//claur - PDF enabled +// if (Environment.isProjectLibre()) { +// PODOnlyFeature.doDialog(getFrame()); +// return; +// } + setMeAsLastGraphicManager(); + if (isDocumentActive()) { + Component c = (Component)arg0.getSource(); + Cursor cur = c.getCursor(); + c.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + savePDF(); + c.setCursor(cur); + } + } + } + + public class CloseProjectAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + closeProject(getCurrentFrame().getProject()); + } + } + + public class UndoAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()){ + doUndoRedo(true); + } + } + } + public class RedoAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()){ + doUndoRedo(false); + } + } + } + + + public void doUndoRedo(boolean isUndo){ + DocumentFrame frame=getCurrentFrame(); + UndoController undoController=getUndoController(); + Object[] args=null; + if (undoController!=null){ + if (isUndo){ + String name=undoController.getUndoName(); + if (name!=null) args=new Object[]{true,name}; + }else{ + String name=undoController.getRedoName(); + if (name!=null) args=new Object[]{false,name}; + } + } + if (args==null) args=new Object[]{isUndo}; + addHistory("doUndoRedo",args); + frame.doUndoRedo(isUndo); + + } + +// public class EnterpriseResourcesAction extends MenuActionsMap.DocumentMenuAction { +// public void actionPerformed(ActionEvent arg0) { +// if (isDocumentActive()) +// getCurrentFrame().doEnterpriseResourcesDialog(); +// } +// } + + public class ChangeWorkingTimeAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + JDialog dlg = AbstractDialog.containedInDialog(arg0.getSource()); + boolean restrict = dlg != null; + if (isDocumentActive()) + getCurrentFrame().doChangeWorkingTimeDialog(restrict); + } + } + + public class LevelResourcesAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doLevelResourcesDialog(); + } + } + public class DelegateTasksAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doDelegateTasksDialog(); + } + } + + public class UpdateTasksAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doUpdateTasksDialog(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + public class UpdateProjectAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doUpdateProjectDialog(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class DefineCodeAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doDefineCodeDialog(); + } + } + + public class BarAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doBarDialog(); + } + } + public class RecurringTaskAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doRecurringTaskDialog(); + } + } + public class SortAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doSortDialog(); + } + } + public class GroupAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doGroupDialog(); + } + } + public class SaveBaselineAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doBaselineDialog(true); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class ClearBaselineAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doBaselineDialog(false); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class LocaleAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + + LocaleDialog localeDialog = LocaleDialog.getInstance(getGraphicManager()); + localeDialog.doModal(); + } + } + + public class LinkAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doLinkTasks(); + } + } + public class UnlinkAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doUnlinkTasks(); + } + } + public class ZoomInAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doZoomIn(); + setZoomButtons(); + + } + } + public class ZoomOutAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doZoomOut(); + setZoomButtons(); + } + } + public class ScrollToTaskAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doScrollToTask(); + } + } + public class ExpandAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doExpand(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + public class CollapseAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doCollapse(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class IndentAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doIndent(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + public class OutdentAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doOutdent(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + public class CutAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()){ + addHistory("doCut"); + getCurrentFrame().doCut(); + } + } + } + public class CopyAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()){ + addHistory("doCopy"); + getCurrentFrame().doCopy(); + } + } + } + public class PasteAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()){ + addHistory("doPaste"); + getCurrentFrame().doPaste(); + } + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class DeleteAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent arg0) { + setMeAsLastGraphicManager(); + if (isDocumentActive()) + getCurrentFrame().doDelete(); + } + protected boolean allowed(boolean enable) { + if (enable==false) return true; + return isDocumentWritable(); + } + } + + public class ViewAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + private String viewName; + public ViewAction(String viewName) { + this.viewName = viewName; + } + public void actionPerformed(ActionEvent e) { + setMeAsLastGraphicManager(); + if (getCurrentFrame() == null) + return; + setColorTheme(viewName); + getCurrentFrame().activateView(viewName); + setButtonState(null,currentFrame.getProject()); // disable buttons because no selection when first activated + + } + public final String getViewName() { + return viewName; + } + + } + + public class TransformAction extends MenuActionsMap.DocumentMenuAction { + private static final long serialVersionUID = 1L; + public void actionPerformed(ActionEvent e) { + setMeAsLastGraphicManager(); + if (!isDocumentActive()) + return; + CommonSpreadSheet spreadSheet=getCurrentFrame().getTopSpreadSheet(); + if (spreadSheet!=null){ + if (spreadSheet.isEditing()) + spreadSheet.getCellEditor().stopCellEditing();//.cancelCellEditing(); + spreadSheet.clearSelection(); + } + TransformComboBox combo = (TransformComboBox) e.getSource(); + combo.transformBasedOnValue(); + } + } + + + public void closeApplication(){ + addHistory("closeApplication"); +// if (Environment.getStandAlone()) { +// Frame frame=getFrame(); +// if (frame!=null) +// frame.dispose(); +// System.exit(0); +// return; +// } + + (new Thread(){ + public void run(){ + JobRunnable exitRunnable=new JobRunnable("Local: closeProjects"){ + public Object run() throws Exception{ + Frame frame=getFrame(); + if (frame!=null) frame.dispose(); + System.exit(0); + return null; //return not used anyway + } + }; + + + Job job=projectFactory.getPortfolio().getRemoveAllProjectsJob(exitRunnable,true,null); + SessionFactory.getInstance().getLocalSession().schedule(job); + + } + }).start(); + } + + public void initLayout() { + getFrameManager().getWorkspace().setLayout(new BorderLayout()); + } + public void initProject(){ + //projects loaded in doStartupAction +// if (projectUrl == null && !GeneralOption.getInstance().isStartWithBlankProject()) { +// //System.out.println("not opening anything"); +// } else if (projectUrl == null || projectUrl.length==0 || projectUrl[0].startsWith("http")) { //same as in Main //$NON-NLS-1$ +// System.out.println("loading local project:" +projectUrl); //$NON-NLS-1$ +// boolean ok = loadLocalDocument(projectUrl[0],true); //if null then it will create a new project. WebStart will send a file name +// if (!ok) +// return; +// } +//// else { +//// loadDownloadedDocument(); //not used anymore +//// } + if (currentFrame != null) + currentFrame.activateView(ACTION_GANTT); + + } + + void setEnabledDocumentMenuActions(boolean enable) { + if (Environment.isPlugin()) return; + actionsMap.setEnabledDocumentMenuActions(enable); + if (getCurrentFrame() != null) { + getCurrentFrame().getFilterToolBarManager().setEnabled(enable); + } + if (topTabs != null) + topTabs.setTrackingEnabled(enable && isDocumentWritable()); + } + + protected Document loadMasterProject() { + return loadDocument(Session.MASTER,false,false); + } +// protected void loadDownloadedDocument(){ +// //showWaitCursor(true); +// +// projectFactory.openDownloadedProject(); +// //showWaitCursor(false); +// } + public Document loadDocument(long id,boolean sync,boolean openAs){ + return loadDocument(id, sync, openAs, null); + } + protected Document loadDocument(long id,boolean sync,boolean openAs,Closure endSwingClosure){ + addHistory("loadDocument", new Object[]{id,sync,openAs,endSwingClosure==null}); + //showWaitCursor(true); + if (id==-1L) + return null; + ProjectFactory factory = projectFactory; + factory.setServer(server); + LoadOptions opt=new LoadOptions(); + opt.setId(id); + opt.setSync(sync); + opt.setOpenAs(openAs); + opt.setEndSwingClosure(endSwingClosure); + + Document result = factory.openProject(opt); + //showWaitCursor(false); + return result; + } +protected boolean loadLocalDocument(String fileName,boolean merge){ //uses server to merge + addHistory("loadLocalDocument",new Object[]{fileName,merge}); + //showWaitCursor(true); + Project project; + if (fileName==null) { + //System.out.println("creating empty project"); + project = projectFactory.createProject(); + + } else { + LoadOptions opt=new LoadOptions(); + opt.setFileName(fileName); + opt.setLocal(true); + opt.setSync(false); + + if (merge) opt.setResourceMapping(new ResourceMappingForm(){ + public boolean execute(){ + if (getImportedResources().size() == 0) // don't show dialog if no resources were imported + return true; + if (resourceMappingDialog == null) { + resourceMappingDialog = ResourceMappingDialog.getInstance(this); + resourceMappingDialog.pack(); + resourceMappingDialog.setModal(true); + } else resourceMappingDialog.setForm(this); + resourceMappingDialog.bind(true); + resourceMappingDialog.setLocationRelativeTo(getCurrentFrame());//to center on screen + resourceMappingDialog.setVisible(true); + return resourceMappingDialog.getDialogResult()==JOptionPane.OK_OPTION; + } + }); + + if (fileName.endsWith(".pod")){ //$NON-NLS-1$ + opt.setImporter(Environment.getStandAlone()?LocalSession.LOCAL_PROJECT_IMPORTER:LocalSession.SERVER_LOCAL_PROJECT_IMPORTER); + }else opt.setImporter(LocalSession.MICROSOFT_PROJECT_IMPORTER); + project=projectFactory.openProject(opt); + + } + //showWaitCursor(false); + return project != null; + } + protected void saveLocalDocument(String fileName,final boolean saveAs){ + addHistory("saveLocalDocument",new Object[]{fileName,saveAs}); + //showWaitCursor(true); + SaveOptions opt=new SaveOptions(); + opt.setLocal(true); + final Project project=getCurrentFrame().getProject(); + if (project.getFileName()!=fileName){ + final DocumentFrame frame=getCurrentFrame(); + if (saveAs) opt.setSaveAs(true); + opt.setPostSaving(new Closure(){ + public void execute(Object arg0) { + if (saveAs) frame.setId(project.getUniqueId()+""); //$NON-NLS-1$ + refreshSaveStatus(true); + } + }); + } + if (fileName.endsWith(".pod")){ //$NON-NLS-1$ + opt.setFileName(fileName); + opt.setImporter(LocalSession.LOCAL_PROJECT_IMPORTER); + } + else{ + opt.setFileName(fileName/*+((fileName.endsWith(".xml"))?"":".xml")*/); + opt.setImporter(LocalSession.MICROSOFT_PROJECT_IMPORTER); +// if (Environment.isProjectLibre()) { +// if (!Alert.okCancel(Messages.getString("Warn.saveXML"))) +// return; +// } + //claur + + } + opt.setPreSaving(getSavingClosure()); + projectFactory.saveProject(getCurrentFrame().getProject(),opt); + //showWaitCursor(false); + } + + private Closure getSavingClosure() { + return null; +// return new Closure() { +// +// public void execute(Object arg0) { +// Project proj = (Project)arg0; +// SpreadSheetFieldArray fieldArray = (SpreadSheetFieldArray) getCurrentFrame().getGanttView().getSpreadSheet().getFieldArray(); +// proj.getDocumentWorkspace().setSetting("fieldArray", fieldArray); +// } +// +// }; +// + } + + private Closure getLoadClosure() { + return null; +// return new Closure() { +// +// public void execute(Object arg0) { +// Project proj = (Project)arg0; +// SpreadSheetFieldArray fieldArray = (SpreadSheetFieldArray) proj.getDocumentWorkspace().getSetting("fieldArray"); +// if (fieldArray != null) +// getCurrentFrame().getGanttView().getSpreadSheet().setFieldArray(fieldArray); +// } +// +// }; + + } + protected void saveLocalDocument(Project project,String fileName){ + //showWaitCursor(true); + SaveOptions opt=new SaveOptions(); + opt.setFileName(fileName); + opt.setLocal(true); + opt.setPreSaving(getSavingClosure()); + + projectFactory.saveProject(project,opt); + //showWaitCursor(false); + } + + protected void closeProject(Project project){ + projectFactory.removeProject(project,true,true,true); + } + + public void openLocalProject(){ + String fileName=SessionFactory.getInstance().getLocalSession().chooseFileName(false,null); + if (fileName!=null) loadLocalDocument(fileName,!Environment.getStandAlone()); + } + + public void saveLocalProject(boolean saveAs){ + String fileName=null; + Project project=getCurrentFrame().getProject(); + if (!saveAs){ + fileName=project.getFileName(); + } + if (fileName==null) fileName=SessionFactory.getInstance().getLocalSession().chooseFileName(true,project.getGuessedFileName()); + if (fileName!=null) saveLocalDocument(fileName,saveAs); + } + + + public void showAboutDialog() { + if (aboutDialog == null) { + aboutDialog = AboutDialog.getInstance(getFrame()); + aboutDialog.pack(); + aboutDialog.setModal(true); + } + aboutDialog.setLocationRelativeTo(getFrame());//to center on screen + aboutDialog.setVisible(true); + } + + public void showHelpDialog(/*DocumentFrame documentFrame*/) { + if (helpDialog == null) { + helpDialog = HelpDialog.getInstance(getFrame()); + helpDialog.pack(); + helpDialog.setModal(true); + } + helpDialog.setLocationRelativeTo(getFrame());//to center on screen + helpDialog.setVisible(true); + } + + +/** + * Show or focus the assignment dialog. If showing, initilize to project + * @param project + */ + public void showAssignmentDialog(DocumentFrame documentFrame) { + if (currentFrame==null||!getCurrentFrame().isActive()) + return; + + if (assignResourcesDialog == null) { + assignResourcesDialog = new AssignmentDialog(documentFrame); + assignResourcesDialog.pack(); + assignResourcesDialog.setModal(false); + } + assignResourcesDialog.setLocationRelativeTo(documentFrame);//to center on screen + assignResourcesDialog.setVisible(true); + } + + + void doCalendarOptionsDialog() { + finishAnyOperations(); + CalendarDialogBox.getInstance(getFrame(), null).doModal(); + } + + + + void print(){ + GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),true,false); + if (document!=null) document.print(); + } + + + void printPreview(){ + GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),false,false); + if (document!=null) document.preview(); + } + + void savePDF() { + GraphPageable document=PrintDocumentFactory.getInstance().createDocument(getCurrentFrame(),false,false); + try { + Class generator=ClassLoaderUtils.forName("org.projectlibre.export.ImageExport"); //claur + generator.getMethod("export", new Class[]{GraphPageable.class,Component.class}).invoke(null,new Object[]{document,getContainer()}); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + public DocumentFrame getCurrentFrame() { + return currentFrame; + } + + public Frame getFrame(){ + return frame; + } + + public Container getContainer() { + return container; + } + + public JobQueue getJobQueue(){ + if (jobQueue==null){ + jobQueue=new JobQueue("GraphicManager",false); //$NON-NLS-1$ + } + return jobQueue; + } + + + public boolean isDocumentActive() { + return currentFrame != null && currentFrame.isActive(); + } + public boolean isDocumentWritable() { + return currentFrame != null && currentFrame.isActive() && !currentFrame.getProject().isReadOnly(); + } + + + public void namedFrameActivated(NamedFrameEvent evt) { +// System.out.println("Frame activated"); + NamedFrame frame = evt.getNamedFrame(); + if (frame instanceof DocumentFrame){ + DocumentFrame df=(DocumentFrame)frame; + setCurrentFrame(df); + + } + } + public void namedFrameShown(NamedFrameEvent arg0) { + } + public void namedFrameTabShown(NamedFrameEvent evt) { + NamedFrame frame = evt.getNamedFrame(); + if (frame instanceof DocumentFrame){ + DocumentFrame df=(DocumentFrame)frame; + setCurrentFrame(df); + + } + } + public void windowActivated(WindowEvent arg0) { + } + public void windowClosed(WindowEvent evt) { + if (evt.getWindow() == assignResourcesDialog) + assignResourcesDialog = null; + } + + public void windowClosing(WindowEvent arg0) { + } + + public void windowDeactivated(WindowEvent arg0) { + } + + public void windowDeiconified(WindowEvent arg0) { + } + + public void windowIconified(WindowEvent arg0) { + } + + public void windowStateChanged(WindowEvent arg0) { + } + + protected boolean resourceType=false; + protected boolean taskType=false; + public void setTaskInformation(boolean taskType,boolean resourceType){ + this.taskType=taskType; + this.resourceType=resourceType; +// JButton button = null; +// String infoText = "Task Information"; +// String notesText = "Task Notes"; +// String insertText = getMenuManager().getString(ACTION_INSERT_TASK + ButtonFactory.TOOLTIP_SUFFIX); +// if (resourceType&&!taskType){ +// infoText = "Resource Information"; +// notesText = "Resource Notes"; +// insertText = "Insert Resource"; +// } +// getMenuManager().setText(ACTION_INFORMATION,infoText); +// getMenuManager().setText(ACTION_NOTES,notesText); +// getMenuManager().setText(ACTION_INSERT_TASK,insertText); + } + + + public void setConnected(boolean connected){ + getMenuManager().setActionEnabled(ACTION_IMPORT_MSPROJECT,connected); + getMenuManager().setActionEnabled(ACTION_OPEN_PROJECT,connected); + getMenuManager().setActionEnabled(ACTION_NEW_PROJECT,connected); + if (connected) refreshSaveStatus(true); + + } + + Set getActionSet(){ + Set actions=null; + DocumentFrame df=getCurrentFrame(); + if (df!=null){ + SpreadSheet sp=df.getActiveSpreadSheet(); + actions=new HashSet(); + if (sp!=null){ + String[] a=sp.getActionList(); + if (a!=null){ + for (int i=0;i ribbonTasks= menuManger.getRibbon(MenuManager.STANDARD_RIBBON, customBandsGenerator); + JRibbon ribbon=frame.getRibbon(); + + for (RibbonTask ribbonTask : ribbonTasks){ + ribbon.addTask(ribbonTask); + } + + + RibbonApplicationMenu applicationMenu=new RibbonApplicationMenu(); + + + ribbon.setApplicationMenu(applicationMenu); + + Collection taskBars=menuManger.getTaskBar(MenuManager.STANDARD_RIBBON); + for (AbstractCommandButton button : taskBars) + ribbon.addTaskbarComponent(button); + + ribbon.configureHelp(IconManager.getRibbonIcon("ribbon.help",26,26), new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + showHelpDialog(); + + } + }); + +// JLabel projectlibreLogo=ribbon.getProjectLibreLogo(); +// projectlibreLogo.setIcon(IconManager.getIcon("logo.ProjectLibre")); +// projectlibreLogo.addMouseListener(new MouseAdapter(){ +// public void mousePressed(MouseEvent me){ +// BrowserControl.displayURL("http://www.projectlibre.com/"); +// } +// }); + + JPanel projectViews=ribbon.getProjectViews(); + projectViews.setBorder(new EmptyBorder(0,0,0,0)); + getMenuManager().initComponent(MenuManager.RIBBON_VIEW_BAR,projectViews); + + JPanel fileSelector=ribbon.getFileSelector(); + fileSelector.setLayout(new BorderLayout()); + fileSelector.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR); + JComponent filesComponent=((DefaultFrameManager)getFrameManager()).getProjectComboPanel(); + filesComponent.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR); + fileSelector.add(filesComponent,BorderLayout.EAST); + + + JPanel languageSelector=ribbon.getLanguageSelector(); + languageSelector.setLayout(new BorderLayout()); + languageSelector.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR); + + JButton localeButton=new JButton(IconManager.getIcon("menu16.locale")); + localeButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + LocaleDialog localeDialog = LocaleDialog.getInstance(getGraphicManager()); + localeDialog.doModal(); + } + }); + localeButton.setBorderPainted(false); + localeButton.setFocusPainted(false); + localeButton.setContentAreaFilled(false); + languageSelector.add(localeButton,BorderLayout.EAST); + +// String[] slocales=Settings.LANGUAGES.split(";"); +// String[] translatedLocales=new String[slocales.length]; +// Map transOri=new HashMap<>(); +// Map oriTrans=new HashMap<>(); +// for (int i=0; i getHistory() { + if (lastGraphicManager == null) + return null; + return lastGraphicManager.history; + } + } diff --git a/projectlibre_ui/src/com/projectlibre1/pm/graphic/images.properties b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images.properties index 136c5bc..244e5e5 100644 --- a/projectlibre_ui/src/com/projectlibre1/pm/graphic/images.properties +++ b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images.properties @@ -226,6 +226,8 @@ menu24.delegateTasks=delegatedTool.gif menu24.scrollToTask=scrollToTask.gif menu24.PDF=pdf.png menu.PDF=pdf16.png +menu24.locale=globe24.png +menu16.locale=globe16.png format.other=otherFormat.gif @@ -266,6 +268,7 @@ ribbon.hint=help-hint.png ribbon.calendar=view-calendar.png ribbon.information=preferences-system-4.png ribbon.help=system-help-3.png +ribbon.locale=globe24.png ribbon.multiproject=document-multiple.png ribbon.notes=text-field.png diff --git a/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe16.png b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe16.png new file mode 100644 index 0000000..da18d0a Binary files /dev/null and b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe16.png differ diff --git a/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe24.png b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe24.png new file mode 100644 index 0000000..f951442 Binary files /dev/null and b/projectlibre_ui/src/com/projectlibre1/pm/graphic/images/big/globe24.png differ diff --git a/projectlibre_ui/src/org/pushingpixels/flamingo/api/ribbon/JRibbon.java b/projectlibre_ui/src/org/pushingpixels/flamingo/api/ribbon/JRibbon.java index d5459ae..cef6e9e 100644 --- a/projectlibre_ui/src/org/pushingpixels/flamingo/api/ribbon/JRibbon.java +++ b/projectlibre_ui/src/org/pushingpixels/flamingo/api/ribbon/JRibbon.java @@ -1,880 +1,887 @@ -/* - * Copyright (c) 2005-2010 Flamingo Kirill Grouchnikov. All Rights Reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * o Neither the name of Flamingo Kirill Grouchnikov nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package org.pushingpixels.flamingo.api.ribbon; - -import java.awt.Color; -import java.awt.Component; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTabbedPane; -import javax.swing.SwingUtilities; -import javax.swing.UIManager; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import org.pushingpixels.flamingo.api.common.AbstractCommandButton; -import org.pushingpixels.flamingo.api.common.CommandButtonDisplayState; -import org.pushingpixels.flamingo.api.common.RichTooltip; -import org.pushingpixels.flamingo.api.common.icon.ResizableIcon; -import org.pushingpixels.flamingo.internal.ui.ribbon.RibbonUI; - -import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI; - - -/** - * The ribbon component. - * - *

- * The ribbon has the following major parts: - *

- *
    - *
  • Ribbon tasks added with {@link #addTask(RibbonTask)}
  • - *
  • Contextual ribbon task groups added with - * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)}
  • - *
  • Application menu button set by - * {@link #setApplicationMenu(RibbonApplicationMenu)}
  • - *
  • Taskbar panel populated by {@link #addTaskbarComponent(Component)}
  • - *
  • Help button set by {@link #configureHelp(ResizableIcon, ActionListener)}
  • - *
- * - *

- * While multiple ribbon tasks can be added to the ribbon, only one is visible - * at any given time. This task is called the selected task. - * Tasks can be switched with the task buttons placed along the top part of the - * ribbon. Once a task has been added to the ribbon, it cannot be removed. - *

- * - *

- * The contextual ribbon task groups allow showing and hiding ribbon tasks based - * on the current selection in the application. For example, Word only shows the - * table tasks when a table is selected in the document. By default, tasks - * belonging to the groups adde by - * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)} are not visible. - * To show the tasks belonging to the specific group, call - * {@link #setVisible(RibbonContextualTaskGroup, boolean)} API. Note that you - * can have multiple task groups visible at the same time. - *

- * - *

- * The application menu button is a big round button shown in the top left - * corner of the ribbon. If the - * {@link #setApplicationMenu(RibbonApplicationMenu)} is not called, or called - * with the null value, the application menu button is not shown, - * and ribbon task buttons are shifted to the left. - *

- * - *

- * The taskbar panel allows showing controls that are visible no matter what - * ribbon task is selected. To add a taskbar component use the - * {@link #addTaskbarComponent(Component)} API. The taskbar panel lives to the - * right of the application menu button. Taskbar components can be removed with - * the {@link #removeTaskbarComponent(Component)} API. - *

- * - *

- * The ribbon can be minimized in one of the following ways: - *

- *
    - *
  • Calling {@link #setMinimized(boolean)} with true.
  • - *
  • User double-clicking on a task button.
  • - *
  • User pressing Ctrl+F1 key combination.
  • - *
- * - *

- * A minimized ribbon shows the application menu button, taskbar panel, task - * buttons and help button, but not the ribbon bands of the selected task. - * Clicking a task button shows the ribbon bands of that task in a popup - * without shifting the application content down. - *

- * - * @author Kirill Grouchnikov - */ -public class JRibbon extends JComponent { - /** - * The general tasks. - * - * @see #addTask(RibbonTask) - * @see #getTaskCount() - * @see #getTask(int) - */ - private ArrayList tasks; - - /** - * The contextual task groups. - * - * @see #addContextualTaskGroup(RibbonContextualTaskGroup) - * @see #setVisible(RibbonContextualTaskGroup, boolean) - * @see #isVisible(RibbonContextualTaskGroup) - * @see #getContextualTaskGroupCount() - * @see #getContextualTaskGroup(int) - */ - private ArrayList contextualTaskGroups; - - /** - * The taskbar components (to the right of the application menu button). - * - * @see #addTaskbarComponent(Component) - * @see #getTaskbarComponents() - * @see #removeTaskbarComponent(Component) - */ - private ArrayList taskbarComponents; - - /** - * Bands of the currently shown task. - */ - private ArrayList bands; - - /** - * Currently selected (shown) task. - */ - private RibbonTask currentlySelectedTask; - - /** - * Help icon. When not null, the ribbon will display a help - * button at the far right of the tab area. - * - * @see #helpActionListener - * @see #configureHelp(ResizableIcon, ActionListener) - * @see #getHelpIcon() - */ - private ResizableIcon helpIcon; - - /** - * When the {@link #helpIcon} is not null, this listener will - * be invoked when the user activates the help button. - * - * @see #configureHelp(ResizableIcon, ActionListener) - * @see #getHelpActionListener() - */ - private ActionListener helpActionListener; - - /** - * Visibility status of the contextual task group. Must contain a value for - * each group in {@link #contextualTaskGroups}. - * - * @see #setVisible(RibbonContextualTaskGroup, boolean) - * @see #isVisible(RibbonContextualTaskGroup) - */ - private Map groupVisibilityMap; - - /** - * The application menu. - * - * @see #setApplicationMenu(RibbonApplicationMenu) - * @see #getApplicationMenu() - */ - private RibbonApplicationMenu applicationMenu; - - /** - * The rich tooltip of {@link #applicationMenu} button. - * - * @see #applicationMenu - * @see #setApplicationMenuRichTooltip(RichTooltip) - * @see #getApplicationMenuRichTooltip() - */ - private RichTooltip applicationMenuRichTooltip; - - /** - * The key tip of {@link #applicationMenu} button. - * - * @see #applicationMenu - * @see #setApplicationMenuKeyTip(String) - * @see #getApplicationMenuKeyTip() - */ - private String applicationMenuKeyTip; - - /** - * Indicates whether the ribbon is currently minimized. - * - * @see #setMinimized(boolean) - * @see #isMinimized() - */ - private boolean isMinimized; - - /** - * The host ribbon frame. Is null when the ribbon is not hosted - * in a {@link JRibbonFrame}. - */ - private JRibbonFrame ribbonFrame; - - /** - * The UI class ID string. - */ - //public static final String uiClassID = "RibbonUI"; - public static final String uiClassID = "ProjectLibreRibbonUI"; - - - - - - - - - //projectlibre - protected JPanel fileSelector; - protected JPanel projectViews; - protected JLabel projectlibreLogo; - - - - - - /** - * Creates a new empty ribbon. Applications are highly encouraged to use - * {@link JRibbonFrame} and access the ribbon with - * {@link JRibbonFrame#getRibbon()} API. - */ - public JRibbon() { - this.tasks = new ArrayList(); - this.contextualTaskGroups = new ArrayList(); - this.taskbarComponents = new ArrayList(); - this.bands = new ArrayList(); - this.currentlySelectedTask = null; - this.groupVisibilityMap = new HashMap(); - - //projectlibre - fileSelector=new JPanel(); - projectViews=new JPanel(); - projectlibreLogo=new JLabel(); - - updateUI(); - } - - - /** - * Creates an empty ribbon for the specified ribbon frame. - * - * @param ribbonFrame - * Host ribbon frame. - */ - JRibbon(JRibbonFrame ribbonFrame) { - this(); - this.ribbonFrame = ribbonFrame; - } - - /** - * Adds the specified taskbar component to this ribbon. - * - * @param comp - * The taskbar component to add. - * @see #removeTaskbarComponent(Component) - * @see #getTaskbarComponents() - */ - public synchronized void addTaskbarComponent(Component comp) { - if (comp instanceof AbstractCommandButton) { - AbstractCommandButton button = (AbstractCommandButton) comp; - button.setDisplayState(CommandButtonDisplayState.SMALL); - button.setGapScaleFactor(0.5); - button.setFocusable(false); - } - this.taskbarComponents.add(comp); - this.fireStateChanged(); - } - - /* - * Added Remove Tasks from patch provided by Jonathan Giles Jan 2009 - * http://markmail.org/message/vzw3hrntr6qsdlu3 - */ - - /** - * Removes the specified taskbar component from this ribbon. - * - * @param comp - * The taskbar component to remove. - * @see #addTaskbarComponent(Component) - * @see #getTaskbarComponents() - */ - public synchronized void removeTaskbarComponent(Component comp) { - this.taskbarComponents.remove(comp); - this.fireStateChanged(); - } - - /** - * Removes all components added to the taskbar of the ribbon. - */ - public void removeAllTaskbarComponents() { - this.taskbarComponents.clear(); - this.fireStateChanged(); - } - - /** - * Adds the specified task to this ribbon. - * - * @param task - * The ribbon task to add. - * @see #addContextualTaskGroup(RibbonContextualTaskGroup) - * @see #getTaskCount() - * @see #getTask(int) - */ - public synchronized void addTask(RibbonTask task) { - task.setRibbon(this); - - this.tasks.add(task); - - if (this.tasks.size() == 1) { - this.setSelectedTask(task); - } - - this.fireStateChanged(); - } - - /** - * Removes the task at the specified position, if it represents a valid task. - * Throws an {@link IndexOutOfBoundsException} if not. - * - * @param pos - * The position of the task to remove. - */ - public void removeTask(int pos) { - if (pos >= getTaskCount()) { - throw new IndexOutOfBoundsException("task position '"+pos+"' exceeds number of tasks in ribbon ('"+getTaskCount()+"')"); - } - - removeTask(getTask(pos)); - } - - /** - * Removes the given task from the ribbon. If this is the currently visible task, the - * ribbon will move to the task to its left, unless the removed task is the left-most, - * in which case it will move to the next task to the right. - * - * @param task The ribbon task to be removed from the panel. - */ - public void removeTask(RibbonTask task) { - if (task == null) { - throw new IllegalArgumentException("RibbonTask can not be null"); - } - - int posOfTask = this.tasks.indexOf(task); - this.tasks.remove(task); - - if (getSelectedTask().equals(task) && tasks.size() > 0) { - RibbonTask newTask = getTask(posOfTask == 0 ? 1 : posOfTask -- 1); - setSelectedTask(newTask); - } - - this.fireStateChanged(); - } - - /** - * Removes all tasks from the ribbon. - */ - public void removeAllTasks() { - this.tasks.clear(); - this.contextualTaskGroups.clear(); - this.fireStateChanged(); - } - - /** - * Configures the help button of this ribbon. - * - * @param helpIcon - * The icon for the help button. - * @param helpActionListener - * The action listener for the help button. - * @see #getHelpIcon() - * @see #getHelpActionListener() - */ - public synchronized void configureHelp(ResizableIcon helpIcon, - ActionListener helpActionListener) { - this.helpIcon = helpIcon; - this.helpActionListener = helpActionListener; - this.fireStateChanged(); - } - - /** - * Returns the icon for the help button. Will return null if - * the help button has not been configured with the - * {@link #configureHelp(ResizableIcon, ActionListener)} API. - * - * @return The icon for the help button. - * @see #configureHelp(ResizableIcon, ActionListener) - * @see #getHelpActionListener() - */ - public ResizableIcon getHelpIcon() { - return this.helpIcon; - } - - /** - * Returns the action listener for the help button. Will return - * null if the help button has not been configured with the - * {@link #configureHelp(ResizableIcon, ActionListener)} API. - * - * @return The action listener for the help button. - * @see #configureHelp(ResizableIcon, ActionListener) - * @see #getHelpIcon() - */ - public ActionListener getHelpActionListener() { - return this.helpActionListener; - } - - /** - * Adds the specified contextual task group to this ribbon. - * - * @param group - * Task group to add. - * @see #addTask(RibbonTask) - * @see #setVisible(RibbonContextualTaskGroup, boolean) - * @see #isVisible(RibbonContextualTaskGroup) - */ - public synchronized void addContextualTaskGroup( - RibbonContextualTaskGroup group) { - group.setRibbon(this); - - this.contextualTaskGroups.add(group); - this.groupVisibilityMap.put(group, false); - - this.fireStateChanged(); - } - - /** - * Returns the number of regular tasks in this ribbon. - * - * @return Number of regular tasks in this ribbon. - * @see #getTask(int) - * @see #addTask(RibbonTask) - */ - public synchronized int getTaskCount() { - return this.tasks.size(); - } - - /** - * Retrieves the regular task at specified index. - * - * @param index - * Task index. - * @return Task that matches the specified index. - * @see #getTaskCount() - * @see #addTask(RibbonTask) - */ - public synchronized RibbonTask getTask(int index) { - return this.tasks.get(index); - } - - /** - * Returns the number of contextual task groups in this ribbon. - * - * @return Number of contextual task groups in this ribbon. - * @see #addContextualTaskGroup(RibbonContextualTaskGroup) - * @see #getContextualTaskGroup(int) - */ - public synchronized int getContextualTaskGroupCount() { - return this.contextualTaskGroups.size(); - } - - /** - * Retrieves contextual task group at specified index. - * - * @param index - * Group index. - * @return Group that matches the specified index. - * @see #addContextualTaskGroup(RibbonContextualTaskGroup) - * @see #getContextualTaskGroupCount() - */ - public synchronized RibbonContextualTaskGroup getContextualTaskGroup( - int index) { - return this.contextualTaskGroups.get(index); - } - - /** - * Selects the specified task. The task can be either regular (added with - * {@link #addTask(RibbonTask)}) or a task in a visible contextual task - * group (added with - * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)}. Fires a - * selectedTask property change event. - * - * @param task - * Task to select. - * @throws IllegalArgumentException - * If the specified task is not in the ribbon or not visible. - * @see #getSelectedTask() - */ - public synchronized void setSelectedTask(RibbonTask task) { - boolean valid = this.tasks.contains(task); - if (!valid) { - for (int i = 0; i < this.getContextualTaskGroupCount(); i++) { - RibbonContextualTaskGroup group = this - .getContextualTaskGroup(i); - if (!this.isVisible(group)) - continue; - for (int j = 0; j < group.getTaskCount(); j++) { - if (group.getTask(j) == task) { - valid = true; - break; - } - } - if (valid) - break; - } - } - if (!valid) { - throw new IllegalArgumentException( - "The specified task to be selected is either not " - + "part of this ribbon or not marked as visible"); - } - - for (AbstractRibbonBand ribbonBand : this.bands) { - ribbonBand.setVisible(false); - } - this.bands.clear(); - - for (int i = 0; i < task.getBandCount(); i++) { - AbstractRibbonBand ribbonBand = task.getBand(i); - ribbonBand.setVisible(true); - this.bands.add(ribbonBand); - } - - RibbonTask old = this.currentlySelectedTask; - this.currentlySelectedTask = task; - - this.revalidate(); - this.repaint(); - - this - .firePropertyChange("selectedTask", old, - this.currentlySelectedTask); - } - - /** - * Returns the currently selected task. - * - * @return The currently selected task. - * @see #setSelectedTask(RibbonTask) - */ - public synchronized RibbonTask getSelectedTask() { - return this.currentlySelectedTask; - } - - /* - * (non-Javadoc) - * - * @see javax.swing.JComponent#updateUI() - */ - @Override - public void updateUI() { - if (UIManager.get(getUIClassID()) != null) { - setUI(UIManager.getUI(this)); - } else { - setUI(new ProjectLibreRibbonUI()); //projectlibre - } - for (Component comp : this.taskbarComponents) { - SwingUtilities.updateComponentTreeUI(comp); - } - } - - /** - * Returns the UI object which implements the L&F for this component. - * - * @return a RibbonUI object - * @see #setUI - */ - public RibbonUI getUI() { - return (RibbonUI) ui; - } - - /* - * (non-Javadoc) - * - * @see javax.swing.JComponent#getUIClassID() - */ - @Override - public String getUIClassID() { - return uiClassID; - } - - /** - * Gets an unmodifiable list of all taskbar components of this - * ribbon. - * - * @return All taskbar components of this ribbon. - * @see #addTaskbarComponent(Component) - * @see #removeTaskbarComponent(Component) - */ - public synchronized List getTaskbarComponents() { - return Collections.unmodifiableList(this.taskbarComponents); - } - - /** - * Adds the specified change listener to track changes to this ribbon. - * - * @param l - * Change listener to add. - * @see #removeChangeListener(ChangeListener) - */ - public void addChangeListener(ChangeListener l) { - this.listenerList.add(ChangeListener.class, l); - } - - /** - * Removes the specified change listener from tracking changes to this - * ribbon. - * - * @param l - * Change listener to remove. - * @see #addChangeListener(ChangeListener) - */ - public void removeChangeListener(ChangeListener l) { - this.listenerList.remove(ChangeListener.class, l); - } - - /** - * Notifies all registered listeners that the state of this ribbon has - * changed. - */ - protected void fireStateChanged() { - // Guaranteed to return a non-null array - Object[] listeners = this.listenerList.getListenerList(); - // Process the listeners last to first, notifying - // those that are interested in this event - ChangeEvent event = new ChangeEvent(this); - for (int i = listeners.length - 2; i >= 0; i -= 2) { - if (listeners[i] == ChangeListener.class) { - ((ChangeListener) listeners[i + 1]).stateChanged(event); - } - } - } - - /** - * Sets the visibility of ribbon tasks in the specified contextual task - * group. Visibility of all ribbon tasks in the specified group is affected. - * Note that the ribbon can show ribbon tasks of multiple groups at the same - * time. - * - * @param group - * Contextual task group. - * @param isVisible - * If true, all ribbon tasks in the specified group - * will be visible. If false, all ribbon tasks in - * the specified group will be hidden. - * @see #isVisible(RibbonContextualTaskGroup) - */ - public synchronized void setVisible(RibbonContextualTaskGroup group, - boolean isVisible) { - this.groupVisibilityMap.put(group, isVisible); - - // special handling of selected tab - if (!isVisible) { - boolean isSelectedBeingHidden = false; - for (int i = 0; i < group.getTaskCount(); i++) { - if (this.getSelectedTask() == group.getTask(i)) { - isSelectedBeingHidden = true; - break; - } - } - if (isSelectedBeingHidden) { - this.setSelectedTask(this.getTask(0)); - } - } - - this.fireStateChanged(); - this.revalidate(); - SwingUtilities.getWindowAncestor(this).repaint(); - } - - /** - * Returns the visibility of ribbon tasks in the specified contextual task - * group. - * - * @param group - * Contextual task group. - * @return true if the ribbon tasks in the specified group are - * visible, false otherwise. - */ - public synchronized boolean isVisible(RibbonContextualTaskGroup group) { - return this.groupVisibilityMap.get(group); - } - - /** - * Sets the application menu for this ribbon. If null is - * passed, the application menu button is hidden. Fires an - * applicationMenu property change event. - * - * @param applicationMenu - * The new application menu. Can be null. - * @see #getApplicationMenu() - */ - public synchronized void setApplicationMenu( - RibbonApplicationMenu applicationMenu) { - RibbonApplicationMenu old = this.applicationMenu; - if (old != applicationMenu) { - this.applicationMenu = applicationMenu; - if (this.applicationMenu != null) { - this.applicationMenu.setFrozen(); - } - this.firePropertyChange("applicationMenu", old, - this.applicationMenu); - } - } - - /** - * Returns the application menu of this ribbon. - * - * @return The application menu of this ribbon. - * @see #setApplicationMenu(RibbonApplicationMenu) - */ - public synchronized RibbonApplicationMenu getApplicationMenu() { - return this.applicationMenu; - } - - /** - * Sets the rich tooltip of the application menu button. Fires an - * applicationMenuRichTooltip property change event. - * - * @param tooltip - * The rich tooltip of the application menu button. - * @see #getApplicationMenuRichTooltip() - * @see #setApplicationMenu(RibbonApplicationMenu) - */ - public synchronized void setApplicationMenuRichTooltip(RichTooltip tooltip) { - RichTooltip old = this.applicationMenuRichTooltip; - this.applicationMenuRichTooltip = tooltip; - this.firePropertyChange("applicationMenuRichTooltip", old, - this.applicationMenuRichTooltip); - } - - /** - * Returns the rich tooltip of the application menu button. - * - * @return The rich tooltip of the application menu button. - * @see #setApplicationMenuRichTooltip(RichTooltip) - * @see #setApplicationMenu(RibbonApplicationMenu) - */ - public synchronized RichTooltip getApplicationMenuRichTooltip() { - return this.applicationMenuRichTooltip; - } - - /** - * Sets the key tip of the application menu button. Fires an - * applicationMenuKeyTip property change event. - * - * @param keyTip - * The new key tip for the application menu button. - * @see #setApplicationMenu(RibbonApplicationMenu) - * @see #getApplicationMenuKeyTip() - */ - public synchronized void setApplicationMenuKeyTip(String keyTip) { - String old = this.applicationMenuKeyTip; - this.applicationMenuKeyTip = keyTip; - this.firePropertyChange("applicationMenuKeyTip", old, - this.applicationMenuKeyTip); - } - - /** - * Returns the key tip of the application menu button. - * - * @return The key tip of the application menu button. - * @see #setApplicationMenuKeyTip(String) - * @see #setApplicationMenu(RibbonApplicationMenu) - */ - public synchronized String getApplicationMenuKeyTip() { - return this.applicationMenuKeyTip; - } - - /** - * Returns the indication whether this ribbon is minimized. - * - * @return true if this ribbon is minimized, false - * otherwise. - * @see #setMinimized(boolean) - */ - public synchronized boolean isMinimized() { - return this.isMinimized; - } - - /** - * Changes the minimized state of this ribbon. Fires a - * minimized property change event. - * - * @param isMinimized - * if true, this ribbon becomes minimized, otherwise - * it is unminimized. - */ - public synchronized void setMinimized(boolean isMinimized) { -//TODO minimizing appears to the user as a bug. Disabling until there is obvious way for the user to re-maximize -// // System.out.println("Ribbon minimized -> " + isMinimized); -// boolean old = this.isMinimized; -// if (old != isMinimized) { -// this.isMinimized = isMinimized; -// this.firePropertyChange("minimized", old, this.isMinimized); -// } - } - - /** - * Returns the ribbon frame that hosts this ribbon. The result can be - * null. - * - * @return The ribbon frame that hosts this ribbon. - */ - public JRibbonFrame getRibbonFrame() { - return this.ribbonFrame; - } - - /* - * (non-Javadoc) - * - * @see javax.swing.JComponent#setVisible(boolean) - */ - @Override - public void setVisible(boolean flag) { - if (!flag && (getRibbonFrame() != null)) - throw new IllegalArgumentException( - "Can't hide ribbon on JRibbonFrame"); - super.setVisible(flag); - } - - - //projectlibre - public JPanel getFileSelector() { - return fileSelector; - } - - - public JPanel getProjectViews() { - return projectViews; - } - - - public JLabel getProjectLibreLogo() { - return projectlibreLogo; - } - - - - -} +/* + * Copyright (c) 2005-2010 Flamingo Kirill Grouchnikov. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * o Neither the name of Flamingo Kirill Grouchnikov nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.pushingpixels.flamingo.api.ribbon; + +import java.awt.Color; +import java.awt.Component; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +import org.pushingpixels.flamingo.api.common.AbstractCommandButton; +import org.pushingpixels.flamingo.api.common.CommandButtonDisplayState; +import org.pushingpixels.flamingo.api.common.RichTooltip; +import org.pushingpixels.flamingo.api.common.icon.ResizableIcon; +import org.pushingpixels.flamingo.internal.ui.ribbon.RibbonUI; + +import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI; + + +/** + * The ribbon component. + * + *

+ * The ribbon has the following major parts: + *

+ *
    + *
  • Ribbon tasks added with {@link #addTask(RibbonTask)}
  • + *
  • Contextual ribbon task groups added with + * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)}
  • + *
  • Application menu button set by + * {@link #setApplicationMenu(RibbonApplicationMenu)}
  • + *
  • Taskbar panel populated by {@link #addTaskbarComponent(Component)}
  • + *
  • Help button set by {@link #configureHelp(ResizableIcon, ActionListener)}
  • + *
+ * + *

+ * While multiple ribbon tasks can be added to the ribbon, only one is visible + * at any given time. This task is called the selected task. + * Tasks can be switched with the task buttons placed along the top part of the + * ribbon. Once a task has been added to the ribbon, it cannot be removed. + *

+ * + *

+ * The contextual ribbon task groups allow showing and hiding ribbon tasks based + * on the current selection in the application. For example, Word only shows the + * table tasks when a table is selected in the document. By default, tasks + * belonging to the groups adde by + * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)} are not visible. + * To show the tasks belonging to the specific group, call + * {@link #setVisible(RibbonContextualTaskGroup, boolean)} API. Note that you + * can have multiple task groups visible at the same time. + *

+ * + *

+ * The application menu button is a big round button shown in the top left + * corner of the ribbon. If the + * {@link #setApplicationMenu(RibbonApplicationMenu)} is not called, or called + * with the null value, the application menu button is not shown, + * and ribbon task buttons are shifted to the left. + *

+ * + *

+ * The taskbar panel allows showing controls that are visible no matter what + * ribbon task is selected. To add a taskbar component use the + * {@link #addTaskbarComponent(Component)} API. The taskbar panel lives to the + * right of the application menu button. Taskbar components can be removed with + * the {@link #removeTaskbarComponent(Component)} API. + *

+ * + *

+ * The ribbon can be minimized in one of the following ways: + *

+ *
    + *
  • Calling {@link #setMinimized(boolean)} with true.
  • + *
  • User double-clicking on a task button.
  • + *
  • User pressing Ctrl+F1 key combination.
  • + *
+ * + *

+ * A minimized ribbon shows the application menu button, taskbar panel, task + * buttons and help button, but not the ribbon bands of the selected task. + * Clicking a task button shows the ribbon bands of that task in a popup + * without shifting the application content down. + *

+ * + * @author Kirill Grouchnikov + */ +public class JRibbon extends JComponent { + /** + * The general tasks. + * + * @see #addTask(RibbonTask) + * @see #getTaskCount() + * @see #getTask(int) + */ + private ArrayList tasks; + + /** + * The contextual task groups. + * + * @see #addContextualTaskGroup(RibbonContextualTaskGroup) + * @see #setVisible(RibbonContextualTaskGroup, boolean) + * @see #isVisible(RibbonContextualTaskGroup) + * @see #getContextualTaskGroupCount() + * @see #getContextualTaskGroup(int) + */ + private ArrayList contextualTaskGroups; + + /** + * The taskbar components (to the right of the application menu button). + * + * @see #addTaskbarComponent(Component) + * @see #getTaskbarComponents() + * @see #removeTaskbarComponent(Component) + */ + private ArrayList taskbarComponents; + + /** + * Bands of the currently shown task. + */ + private ArrayList bands; + + /** + * Currently selected (shown) task. + */ + private RibbonTask currentlySelectedTask; + + /** + * Help icon. When not null, the ribbon will display a help + * button at the far right of the tab area. + * + * @see #helpActionListener + * @see #configureHelp(ResizableIcon, ActionListener) + * @see #getHelpIcon() + */ + private ResizableIcon helpIcon; + + /** + * When the {@link #helpIcon} is not null, this listener will + * be invoked when the user activates the help button. + * + * @see #configureHelp(ResizableIcon, ActionListener) + * @see #getHelpActionListener() + */ + private ActionListener helpActionListener; + + /** + * Visibility status of the contextual task group. Must contain a value for + * each group in {@link #contextualTaskGroups}. + * + * @see #setVisible(RibbonContextualTaskGroup, boolean) + * @see #isVisible(RibbonContextualTaskGroup) + */ + private Map groupVisibilityMap; + + /** + * The application menu. + * + * @see #setApplicationMenu(RibbonApplicationMenu) + * @see #getApplicationMenu() + */ + private RibbonApplicationMenu applicationMenu; + + /** + * The rich tooltip of {@link #applicationMenu} button. + * + * @see #applicationMenu + * @see #setApplicationMenuRichTooltip(RichTooltip) + * @see #getApplicationMenuRichTooltip() + */ + private RichTooltip applicationMenuRichTooltip; + + /** + * The key tip of {@link #applicationMenu} button. + * + * @see #applicationMenu + * @see #setApplicationMenuKeyTip(String) + * @see #getApplicationMenuKeyTip() + */ + private String applicationMenuKeyTip; + + /** + * Indicates whether the ribbon is currently minimized. + * + * @see #setMinimized(boolean) + * @see #isMinimized() + */ + private boolean isMinimized; + + /** + * The host ribbon frame. Is null when the ribbon is not hosted + * in a {@link JRibbonFrame}. + */ + private JRibbonFrame ribbonFrame; + + /** + * The UI class ID string. + */ + //public static final String uiClassID = "RibbonUI"; + public static final String uiClassID = "ProjectLibreRibbonUI"; + + + + + + + + + //projectlibre + protected JPanel fileSelector; + protected JPanel languageSelector; + protected JPanel projectViews; + protected JLabel projectlibreLogo; + + + + + + /** + * Creates a new empty ribbon. Applications are highly encouraged to use + * {@link JRibbonFrame} and access the ribbon with + * {@link JRibbonFrame#getRibbon()} API. + */ + public JRibbon() { + this.tasks = new ArrayList(); + this.contextualTaskGroups = new ArrayList(); + this.taskbarComponents = new ArrayList(); + this.bands = new ArrayList(); + this.currentlySelectedTask = null; + this.groupVisibilityMap = new HashMap(); + + //projectlibre + fileSelector=new JPanel(); + languageSelector=new JPanel(); + projectViews=new JPanel(); + projectlibreLogo=new JLabel(); + + updateUI(); + } + + + /** + * Creates an empty ribbon for the specified ribbon frame. + * + * @param ribbonFrame + * Host ribbon frame. + */ + JRibbon(JRibbonFrame ribbonFrame) { + this(); + this.ribbonFrame = ribbonFrame; + } + + /** + * Adds the specified taskbar component to this ribbon. + * + * @param comp + * The taskbar component to add. + * @see #removeTaskbarComponent(Component) + * @see #getTaskbarComponents() + */ + public synchronized void addTaskbarComponent(Component comp) { + if (comp instanceof AbstractCommandButton) { + AbstractCommandButton button = (AbstractCommandButton) comp; + button.setDisplayState(CommandButtonDisplayState.SMALL); + button.setGapScaleFactor(0.5); + button.setFocusable(false); + } + this.taskbarComponents.add(comp); + this.fireStateChanged(); + } + + /* + * Added Remove Tasks from patch provided by Jonathan Giles Jan 2009 + * http://markmail.org/message/vzw3hrntr6qsdlu3 + */ + + /** + * Removes the specified taskbar component from this ribbon. + * + * @param comp + * The taskbar component to remove. + * @see #addTaskbarComponent(Component) + * @see #getTaskbarComponents() + */ + public synchronized void removeTaskbarComponent(Component comp) { + this.taskbarComponents.remove(comp); + this.fireStateChanged(); + } + + /** + * Removes all components added to the taskbar of the ribbon. + */ + public void removeAllTaskbarComponents() { + this.taskbarComponents.clear(); + this.fireStateChanged(); + } + + /** + * Adds the specified task to this ribbon. + * + * @param task + * The ribbon task to add. + * @see #addContextualTaskGroup(RibbonContextualTaskGroup) + * @see #getTaskCount() + * @see #getTask(int) + */ + public synchronized void addTask(RibbonTask task) { + task.setRibbon(this); + + this.tasks.add(task); + + if (this.tasks.size() == 1) { + this.setSelectedTask(task); + } + + this.fireStateChanged(); + } + + /** + * Removes the task at the specified position, if it represents a valid task. + * Throws an {@link IndexOutOfBoundsException} if not. + * + * @param pos + * The position of the task to remove. + */ + public void removeTask(int pos) { + if (pos >= getTaskCount()) { + throw new IndexOutOfBoundsException("task position '"+pos+"' exceeds number of tasks in ribbon ('"+getTaskCount()+"')"); + } + + removeTask(getTask(pos)); + } + + /** + * Removes the given task from the ribbon. If this is the currently visible task, the + * ribbon will move to the task to its left, unless the removed task is the left-most, + * in which case it will move to the next task to the right. + * + * @param task The ribbon task to be removed from the panel. + */ + public void removeTask(RibbonTask task) { + if (task == null) { + throw new IllegalArgumentException("RibbonTask can not be null"); + } + + int posOfTask = this.tasks.indexOf(task); + this.tasks.remove(task); + + if (getSelectedTask().equals(task) && tasks.size() > 0) { + RibbonTask newTask = getTask(posOfTask == 0 ? 1 : posOfTask +- 1); + setSelectedTask(newTask); + } + + this.fireStateChanged(); + } + + /** + * Removes all tasks from the ribbon. + */ + public void removeAllTasks() { + this.tasks.clear(); + this.contextualTaskGroups.clear(); + this.fireStateChanged(); + } + + /** + * Configures the help button of this ribbon. + * + * @param helpIcon + * The icon for the help button. + * @param helpActionListener + * The action listener for the help button. + * @see #getHelpIcon() + * @see #getHelpActionListener() + */ + public synchronized void configureHelp(ResizableIcon helpIcon, + ActionListener helpActionListener) { + this.helpIcon = helpIcon; + this.helpActionListener = helpActionListener; + this.fireStateChanged(); + } + + /** + * Returns the icon for the help button. Will return null if + * the help button has not been configured with the + * {@link #configureHelp(ResizableIcon, ActionListener)} API. + * + * @return The icon for the help button. + * @see #configureHelp(ResizableIcon, ActionListener) + * @see #getHelpActionListener() + */ + public ResizableIcon getHelpIcon() { + return this.helpIcon; + } + + /** + * Returns the action listener for the help button. Will return + * null if the help button has not been configured with the + * {@link #configureHelp(ResizableIcon, ActionListener)} API. + * + * @return The action listener for the help button. + * @see #configureHelp(ResizableIcon, ActionListener) + * @see #getHelpIcon() + */ + public ActionListener getHelpActionListener() { + return this.helpActionListener; + } + + /** + * Adds the specified contextual task group to this ribbon. + * + * @param group + * Task group to add. + * @see #addTask(RibbonTask) + * @see #setVisible(RibbonContextualTaskGroup, boolean) + * @see #isVisible(RibbonContextualTaskGroup) + */ + public synchronized void addContextualTaskGroup( + RibbonContextualTaskGroup group) { + group.setRibbon(this); + + this.contextualTaskGroups.add(group); + this.groupVisibilityMap.put(group, false); + + this.fireStateChanged(); + } + + /** + * Returns the number of regular tasks in this ribbon. + * + * @return Number of regular tasks in this ribbon. + * @see #getTask(int) + * @see #addTask(RibbonTask) + */ + public synchronized int getTaskCount() { + return this.tasks.size(); + } + + /** + * Retrieves the regular task at specified index. + * + * @param index + * Task index. + * @return Task that matches the specified index. + * @see #getTaskCount() + * @see #addTask(RibbonTask) + */ + public synchronized RibbonTask getTask(int index) { + return this.tasks.get(index); + } + + /** + * Returns the number of contextual task groups in this ribbon. + * + * @return Number of contextual task groups in this ribbon. + * @see #addContextualTaskGroup(RibbonContextualTaskGroup) + * @see #getContextualTaskGroup(int) + */ + public synchronized int getContextualTaskGroupCount() { + return this.contextualTaskGroups.size(); + } + + /** + * Retrieves contextual task group at specified index. + * + * @param index + * Group index. + * @return Group that matches the specified index. + * @see #addContextualTaskGroup(RibbonContextualTaskGroup) + * @see #getContextualTaskGroupCount() + */ + public synchronized RibbonContextualTaskGroup getContextualTaskGroup( + int index) { + return this.contextualTaskGroups.get(index); + } + + /** + * Selects the specified task. The task can be either regular (added with + * {@link #addTask(RibbonTask)}) or a task in a visible contextual task + * group (added with + * {@link #addContextualTaskGroup(RibbonContextualTaskGroup)}. Fires a + * selectedTask property change event. + * + * @param task + * Task to select. + * @throws IllegalArgumentException + * If the specified task is not in the ribbon or not visible. + * @see #getSelectedTask() + */ + public synchronized void setSelectedTask(RibbonTask task) { + boolean valid = this.tasks.contains(task); + if (!valid) { + for (int i = 0; i < this.getContextualTaskGroupCount(); i++) { + RibbonContextualTaskGroup group = this + .getContextualTaskGroup(i); + if (!this.isVisible(group)) + continue; + for (int j = 0; j < group.getTaskCount(); j++) { + if (group.getTask(j) == task) { + valid = true; + break; + } + } + if (valid) + break; + } + } + if (!valid) { + throw new IllegalArgumentException( + "The specified task to be selected is either not " + + "part of this ribbon or not marked as visible"); + } + + for (AbstractRibbonBand ribbonBand : this.bands) { + ribbonBand.setVisible(false); + } + this.bands.clear(); + + for (int i = 0; i < task.getBandCount(); i++) { + AbstractRibbonBand ribbonBand = task.getBand(i); + ribbonBand.setVisible(true); + this.bands.add(ribbonBand); + } + + RibbonTask old = this.currentlySelectedTask; + this.currentlySelectedTask = task; + + this.revalidate(); + this.repaint(); + + this + .firePropertyChange("selectedTask", old, + this.currentlySelectedTask); + } + + /** + * Returns the currently selected task. + * + * @return The currently selected task. + * @see #setSelectedTask(RibbonTask) + */ + public synchronized RibbonTask getSelectedTask() { + return this.currentlySelectedTask; + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#updateUI() + */ + @Override + public void updateUI() { + if (UIManager.get(getUIClassID()) != null) { + setUI(UIManager.getUI(this)); + } else { + setUI(new ProjectLibreRibbonUI()); //projectlibre + } + for (Component comp : this.taskbarComponents) { + SwingUtilities.updateComponentTreeUI(comp); + } + } + + /** + * Returns the UI object which implements the L&F for this component. + * + * @return a RibbonUI object + * @see #setUI + */ + public RibbonUI getUI() { + return (RibbonUI) ui; + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#getUIClassID() + */ + @Override + public String getUIClassID() { + return uiClassID; + } + + /** + * Gets an unmodifiable list of all taskbar components of this + * ribbon. + * + * @return All taskbar components of this ribbon. + * @see #addTaskbarComponent(Component) + * @see #removeTaskbarComponent(Component) + */ + public synchronized List getTaskbarComponents() { + return Collections.unmodifiableList(this.taskbarComponents); + } + + /** + * Adds the specified change listener to track changes to this ribbon. + * + * @param l + * Change listener to add. + * @see #removeChangeListener(ChangeListener) + */ + public void addChangeListener(ChangeListener l) { + this.listenerList.add(ChangeListener.class, l); + } + + /** + * Removes the specified change listener from tracking changes to this + * ribbon. + * + * @param l + * Change listener to remove. + * @see #addChangeListener(ChangeListener) + */ + public void removeChangeListener(ChangeListener l) { + this.listenerList.remove(ChangeListener.class, l); + } + + /** + * Notifies all registered listeners that the state of this ribbon has + * changed. + */ + protected void fireStateChanged() { + // Guaranteed to return a non-null array + Object[] listeners = this.listenerList.getListenerList(); + // Process the listeners last to first, notifying + // those that are interested in this event + ChangeEvent event = new ChangeEvent(this); + for (int i = listeners.length - 2; i >= 0; i -= 2) { + if (listeners[i] == ChangeListener.class) { + ((ChangeListener) listeners[i + 1]).stateChanged(event); + } + } + } + + /** + * Sets the visibility of ribbon tasks in the specified contextual task + * group. Visibility of all ribbon tasks in the specified group is affected. + * Note that the ribbon can show ribbon tasks of multiple groups at the same + * time. + * + * @param group + * Contextual task group. + * @param isVisible + * If true, all ribbon tasks in the specified group + * will be visible. If false, all ribbon tasks in + * the specified group will be hidden. + * @see #isVisible(RibbonContextualTaskGroup) + */ + public synchronized void setVisible(RibbonContextualTaskGroup group, + boolean isVisible) { + this.groupVisibilityMap.put(group, isVisible); + + // special handling of selected tab + if (!isVisible) { + boolean isSelectedBeingHidden = false; + for (int i = 0; i < group.getTaskCount(); i++) { + if (this.getSelectedTask() == group.getTask(i)) { + isSelectedBeingHidden = true; + break; + } + } + if (isSelectedBeingHidden) { + this.setSelectedTask(this.getTask(0)); + } + } + + this.fireStateChanged(); + this.revalidate(); + SwingUtilities.getWindowAncestor(this).repaint(); + } + + /** + * Returns the visibility of ribbon tasks in the specified contextual task + * group. + * + * @param group + * Contextual task group. + * @return true if the ribbon tasks in the specified group are + * visible, false otherwise. + */ + public synchronized boolean isVisible(RibbonContextualTaskGroup group) { + return this.groupVisibilityMap.get(group); + } + + /** + * Sets the application menu for this ribbon. If null is + * passed, the application menu button is hidden. Fires an + * applicationMenu property change event. + * + * @param applicationMenu + * The new application menu. Can be null. + * @see #getApplicationMenu() + */ + public synchronized void setApplicationMenu( + RibbonApplicationMenu applicationMenu) { + RibbonApplicationMenu old = this.applicationMenu; + if (old != applicationMenu) { + this.applicationMenu = applicationMenu; + if (this.applicationMenu != null) { + this.applicationMenu.setFrozen(); + } + this.firePropertyChange("applicationMenu", old, + this.applicationMenu); + } + } + + /** + * Returns the application menu of this ribbon. + * + * @return The application menu of this ribbon. + * @see #setApplicationMenu(RibbonApplicationMenu) + */ + public synchronized RibbonApplicationMenu getApplicationMenu() { + return this.applicationMenu; + } + + /** + * Sets the rich tooltip of the application menu button. Fires an + * applicationMenuRichTooltip property change event. + * + * @param tooltip + * The rich tooltip of the application menu button. + * @see #getApplicationMenuRichTooltip() + * @see #setApplicationMenu(RibbonApplicationMenu) + */ + public synchronized void setApplicationMenuRichTooltip(RichTooltip tooltip) { + RichTooltip old = this.applicationMenuRichTooltip; + this.applicationMenuRichTooltip = tooltip; + this.firePropertyChange("applicationMenuRichTooltip", old, + this.applicationMenuRichTooltip); + } + + /** + * Returns the rich tooltip of the application menu button. + * + * @return The rich tooltip of the application menu button. + * @see #setApplicationMenuRichTooltip(RichTooltip) + * @see #setApplicationMenu(RibbonApplicationMenu) + */ + public synchronized RichTooltip getApplicationMenuRichTooltip() { + return this.applicationMenuRichTooltip; + } + + /** + * Sets the key tip of the application menu button. Fires an + * applicationMenuKeyTip property change event. + * + * @param keyTip + * The new key tip for the application menu button. + * @see #setApplicationMenu(RibbonApplicationMenu) + * @see #getApplicationMenuKeyTip() + */ + public synchronized void setApplicationMenuKeyTip(String keyTip) { + String old = this.applicationMenuKeyTip; + this.applicationMenuKeyTip = keyTip; + this.firePropertyChange("applicationMenuKeyTip", old, + this.applicationMenuKeyTip); + } + + /** + * Returns the key tip of the application menu button. + * + * @return The key tip of the application menu button. + * @see #setApplicationMenuKeyTip(String) + * @see #setApplicationMenu(RibbonApplicationMenu) + */ + public synchronized String getApplicationMenuKeyTip() { + return this.applicationMenuKeyTip; + } + + /** + * Returns the indication whether this ribbon is minimized. + * + * @return true if this ribbon is minimized, false + * otherwise. + * @see #setMinimized(boolean) + */ + public synchronized boolean isMinimized() { + return this.isMinimized; + } + + /** + * Changes the minimized state of this ribbon. Fires a + * minimized property change event. + * + * @param isMinimized + * if true, this ribbon becomes minimized, otherwise + * it is unminimized. + */ + public synchronized void setMinimized(boolean isMinimized) { +//TODO minimizing appears to the user as a bug. Disabling until there is obvious way for the user to re-maximize +// // System.out.println("Ribbon minimized -> " + isMinimized); +// boolean old = this.isMinimized; +// if (old != isMinimized) { +// this.isMinimized = isMinimized; +// this.firePropertyChange("minimized", old, this.isMinimized); +// } + } + + /** + * Returns the ribbon frame that hosts this ribbon. The result can be + * null. + * + * @return The ribbon frame that hosts this ribbon. + */ + public JRibbonFrame getRibbonFrame() { + return this.ribbonFrame; + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#setVisible(boolean) + */ + @Override + public void setVisible(boolean flag) { + if (!flag && (getRibbonFrame() != null)) + throw new IllegalArgumentException( + "Can't hide ribbon on JRibbonFrame"); + super.setVisible(flag); + } + + + //projectlibre + public JPanel getFileSelector() { + return fileSelector; + } + + + public JPanel getLanguageSelector() { + return languageSelector; + } + + + public JPanel getProjectViews() { + return projectViews; + } + + + public JLabel getProjectLibreLogo() { + return projectlibreLogo; + } + + + + +}