[Building Sakai] [EVALUATION SYSTEM] Requesting access to commit translations

Miguel Carro Pellicer farreri.sakai at gmail.com
Thu Nov 8 00:34:01 PST 2012


An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20121108/3de7bcba/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 3022 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20121108/3de7bcba/attachment.jpe 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 3022 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20121108/3de7bcba/attachment-0001.jpe 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 3022 bytes
Desc: not available
Url : http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20121108/3de7bcba/attachment.jpg 
-------------- next part --------------
Index: impl/src/bundle/org/sakaiproject/evaluation/impl/Messages.properties
===================================================================
--- impl/src/bundle/org/sakaiproject/evaluation/impl/Messages.properties	(revision 0)
+++ impl/src/bundle/org/sakaiproject/evaluation/impl/Messages.properties	(working copy)
@@ -0,0 +1,162 @@
+#Category groups
+student.development.title = Student Development
+student.development.description = Determine how student development is perceived
+
+knowledge.0 = Knowledge
+knowledge.1 = I learned a good deal of factual material in this course
+knowledge.2 = I gained a good understanding of principals and concepts in this field
+knowledge.3 = I developed the a working knowledge of this field
+
+participation.0 = Participation
+participation.1 = I participated actively in group discussions
+participation.2 = I developed leadership skills within this group
+participation.3 = I developed new friendships within this group
+
+selfconcept.0 = Self-concept
+selfconcept.1 = I gained a better understanding of myself through this course
+selfconcept.2 = I developed a greater sense of personal responsibility
+selfconcept.3 = I increased my awareness of my own interests and talents
+
+interaction.0 = Interaction
+interaction.1 = Group activities contributed significantly to my learning
+interaction.2 = Collaborative group activities helped me learn the materials
+interaction.3 = Working with others in the group helpded me learn more effectively
+
+
+#instructor effectiveness
+instructor.effectiveness.title = Instructor Effectiveness
+instructor.effectiveness.desc = Determine the perceived effectiveness of the instructor
+
+skill.0 = Skill
+skill.1 = The instructor explained material clearly and understandably
+skill.2 = The instructor handled questions well
+skill.3 = The instructor appeared to have a thorough knowledge of the subject and field
+skill.4 = The instructor taught in a manner that served my needs
+
+climate.0 = Climate
+climate.1 = The instructor was friendly
+climate.2 = The instructor was permissive and flexible
+climate.3 = The instructor treated students with respect
+
+feedback.0 = Feedback
+feedback.1 = The instructor suggested specific ways students could improve
+feedback.2 = The instructor gave positive feedback when students did especially well
+feedback.3 = The instructor kept students informed of their progress
+
+
+exams.title = Exams
+exams.desc = Measure the perception of examinations
+
+exams.0 = Examinations covered the important aspects of the course", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+exams.1 = Exams were creative and required original thought", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+exams.2 = Exams were reasonable in length and difficulty", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+exams.3 = Examination items were clearly worded", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+exams.4 = Exam length was appropriate for the time alloted", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+
+
+asn.title = Assignments
+asn.desc = Measure the perception of out of class assignments
+
+asn.0 = Assignments were interesting and stimulating
+asn.1 = Assignments made students think
+asn.2 = Assignments required a reasonable amount of time and effort
+asn.3 = Assignments were relevant to what was presented
+asn.4 = Assignments were graded fairly
+
+general.title=General
+general.desc=General use items
+
+#Initial expert scales
+
+agree.disagree.scale = Agree disagree scale
+agree.disagree.scale.option.0 = Strongly disagree
+agree.disagree.scale.option.1 = Disagree
+agree.disagree.scale.option.2 = Uncertain
+agree.disagree.scale.option.3 = Agree
+agree.disagree.scale.option.4 = Strongly agree
+
+disagree.agree.scale = Disagree agree scale
+disagree.agree.scale.option.0 = Strongly agree
+disagree.agree.scale.option.1 = Agree
+disagree.agree.scale.option.2 = Uncertain
+disagree.agree.scale.option.3 = Disagree
+disagree.agree.scale.option.4 = Strongly disagree
+                    
+frequency.scale = Frequency scale
+frequency.scale.option.0 = Hardly ever            
+frequency.scale.option.1 = Occasionally
+frequency.scale.option.2 = Sometimes
+frequency.scale.option.3 = Frequently
+frequency.scale.option.4 = Always
+
+relative.rating.scale = Relative rating scale
+relative.rating.scale.option.0 = Poor
+relative.rating.scale.option.1 = Fair
+relative.rating.scale.option.2 = Good
+relative.rating.scale.option.3 = Excellent
+
+averages.scale = Averages scale
+averages.scale.option.0 = Less than Average
+averages.scale.option.1 = Average
+averages.scale.option.2 = More than Average
+
+effectiveness.scale = Effectiveness scale
+effectiveness.scale.option.0 = Not effective
+effectiveness.scale.option.1 = Somewhat effective
+effectiveness.scale.option.2 = Moderately effective
+effectiveness.scale.option.3 = Effective
+effectiveness.scale.option.4 = Very Effective
+
+adequacy.scale = Adequacy scale
+adequacy.scale.option.0 = Unsatisfactory
+adequacy.scale.option.1 = Inadequate
+adequacy.scale.option.2 = Adequate
+adequacy.scale.option.3 = Good
+adequacy.scale.option.4 = Excellent
+
+relationship.scale = Relationships scale
+relationship.scale.option.0 = Much less
+relationship.scale.option.1 = Less
+relationship.scale.option.2 = Some
+relationship.scale.option.3 = More
+relationship.scale.option.4 = Much more
+
+low.high.scale = Low high scale
+low.high.scale.option.0 = Very low
+low.high.scale.option.1 = Low
+low.high.scale.option.2 = Moderately high
+low.high.scale.option.3 = High
+low.high.scale.option.4 = Very high
+
+correctness.scale = Correctness scale
+correctness.scale.option.0 = No
+correctness.scale.option.1 = Somewhat
+correctness.scale.option.2 = Mostly
+correctness.scale.option.3 = Yes
+
+speed.scale = Speed scale
+speed.scale.option.0 = Too slow
+speed.scale.option.1 = Okay
+speed.scale.option.2 = Too fast
+
+size.scale = Size scale
+size.scale.option.0 = Too small
+size.scale.option.1 = Okay
+size.scale.option.2 = Too large
+
+length.scale = Size scale
+length.scale.option.0 = Too short
+length.scale.option.1 = Okay
+length.scale.option.2 = Too long
+
+gender.scale = Size scale
+gender.scale.option.0 = Female
+gender.scale.option.1 = Male
+
+grade.scale = Grade (A-F) scale
+grade.scale.option.0 = F
+grade.scale.option.1 = D
+grade.scale.option.2 = C
+grade.scale.option.3 = B
+grade.scale.option.4 = A
+grade.scale.option.5 = Pass
Index: impl/src/bundle/org/sakaiproject/evaluation/impl/Messages_es.properties
===================================================================
--- impl/src/bundle/org/sakaiproject/evaluation/impl/Messages_es.properties	(revision 0)
+++ impl/src/bundle/org/sakaiproject/evaluation/impl/Messages_es.properties	(working copy)
@@ -0,0 +1,162 @@
+#Category groups
+student.development.title = Desarrollo del estudiante
+student.development.description = Determina como se percibe el desarrollo del estudiante
+
+knowledge.0 = Conocimiento
+knowledge.1 = He acumulado gran cantidad de conocimientos en este curso
+knowledge.2 = He comprendido los principios y conceptos de este campo
+knowledge.3	= He desarrollado un conocimiento trabajando en este campo
+
+participation.0 = Participación
+participation.1 = He participado activamente en las discusiones de grupo
+participation.2 = He desarrollado habilidades de liderazgo en este grupo
+participation.3 = He desarrollado nuevas amistades en este grupo
+
+selfconcept.0 = Concepto de sí mismo
+selfconcept.1 = Me he conocido a mi mismo a lo largo del curso
+selfconcept.2 = He desarrollado un mayor sentido de la responsabilidad
+selfconcept.3 = He incrementado la atención sobre mis propios intereses y talentos.
+
+interaction.0 = Interacción
+interaction.1 = Las actividades de grupo han contribuido significativamente a mi aprendizaje
+interaction.2 = Las actividades de grupo colaborativas me han ayudado a aprender la materia
+interaction.3 = Trabajando con otros en el grupo me ha ayudado a ser más efectivo
+
+
+            // instructor effectiveness
+instructor.effectiveness.title = Efectividad del profesor
+instructor.effectiveness.desc = Determina la efectividad que se percibe del profesor
+
+skill.0 = Habilidad
+skill.1 = El profesor explica el material de manera clara y entendible
+skill.2 = El profesor responde correctamente a las preguntas planteadas
+skill.3 = El profesor aparenta conocer profundamente la materia y el campo
+skill.4 = El profesor imparte de una manera que resuelve mis problemas
+
+climate.0 = Ambiente
+climate.1 = El profesor es amable
+climate.2 = El profesor es permisivo y flexible
+climate.3 = El profesor trata a los alumnos con respeto
+
+feedback.0 = Retroalimentación
+feedback.1 = El profesor sugiere modos en los que el estudiante puede mejorar
+feedback.2 = El profesor felicita a los estudiantes que trabajan bien
+feedback.3 = El profesor mantiene informados a los estudiantes sobre su progreso
+
+
+exams.title = Exámenes
+exams.desc = Mide la percepción de los exámenes Measure the perception of examinations
+
+exams.0 = Los exámenes han cubierto un aspecto importante de los cursos
+exams.1 = Los exámenes fueron creativos y requirían imaginación
+exams.2 = Los exámenes fueron razonables en duración y dificultad
+exams.3 = Las preguntas fueron formuladas correctamente
+exams.4 = La duración del examen fue apropiada para el tiempo asignado
+
+
+asn.title = Tareas
+asn.desc = Medir la percepción de las tareas fuera de clase
+
+asn.0 = Las tareas fueron interesantes y estimulantes
+asn.1 = Las tareas hicieron pensar a los estudiantes
+asn.2 = Las tareas requerían un esfuerzo y tiempo razonable
+asn.3 = Las tareas fueron acordes a lo enseñado
+asn.4 = Las tareas se calificaron justamente
+
+general.title = General
+general.desc = Elementos de uso general
+
+#Initial expert scales
+
+agree.disagree.scale = Escala acuerdo/desacuerdo
+agree.disagree.scale.option.0 = Muy en desacuerdo
+agree.disagree.scale.option.1 = En desacuerdo
+agree.disagree.scale.option.2 = Indeciso
+agree.disagree.scale.option.3 = De acuerdo
+agree.disagree.scale.option.4 = Muy de acuerdo
+
+disagree.agree.scale = Escala desacuerdo/acuerdo
+disagree.agree.scale.option.0 = Muy de acuerdo
+disagree.agree.scale.option.1 = De acuerdo
+disagree.agree.scale.option.2 = Indeciso
+disagree.agree.scale.option.3 = En desacuerdo
+disagree.agree.scale.option.4 = Muy en desacuerdo
+                    
+frequency.scale = Escala de frecuencia
+frequency.scale.option.0 = Rara vez
+frequency.scale.option.1 = Ocasionalmente
+frequency.scale.option.2 = A veces
+frequency.scale.option.3 = Frecuentemente
+frequency.scale.option.4 = Siempre
+
+relative.rating.scale = Escala de calidad
+relative.rating.scale.option.0 = Pobre
+relative.rating.scale.option.1 = Justo
+relative.rating.scale.option.2 = Bueno
+relative.rating.scale.option.3 = Excelente
+
+averages.scale = Escala de medias
+averages.scale.option.0 = Menos que la media
+averages.scale.option.1 = En la media
+averages.scale.option.2 = Más que la media
+
+effectiveness.scale = Escala de efectividad
+effectiveness.scale.option.0 = No efectiva
+effectiveness.scale.option.1 = Algo efectiva
+effectiveness.scale.option.2 = Efectividad moderada
+effectiveness.scale.option.3 = Efectiva
+effectiveness.scale.option.4 = Muy efectiva
+
+adequacy.scale = Escala de adecuación
+adequacy.scale.option.0 = Insatisfecho
+adequacy.scale.option.1 = Inadecuado
+adequacy.scale.option.2 = Adecuado
+adequacy.scale.option.3 = Bueno
+adequacy.scale.option.4 = Excelente
+
+relationship.scale = Escala de relaciones
+relationship.scale.option.0 = Mucho menor
+relationship.scale.option.1 = Menor
+relationship.scale.option.2 = Aproximadamente
+relationship.scale.option.3 = Mayor
+relationship.scale.option.4 = Mucho mayor
+
+low.high.scale = Escala bajo/algo 
+low.high.scale.option.0 = Muy bajo
+low.high.scale.option.1 = Bajo
+low.high.scale.option.2 = Moderadamente alto
+low.high.scale.option.3 = Alto
+low.high.scale.option.4 = Muy alto
+
+correctness.scale = Escala de correctitud
+correctness.scale.option.0 = No
+correctness.scale.option.1 = Algo
+correctness.scale.option.2 = Principalmente
+correctness.scale.option.3 = Sí
+
+speed.scale = Escala de velocidad
+speed.scale.option.0 = Muy lento
+speed.scale.option.1 = Bien	
+speed.scale.option.2 = Muy rápido
+
+size.scale = Escala de tamaño
+size.scale.option.0 = Muy pequeño
+size.scale.option.1 = Bien
+size.scale.option.2 = Muy grande
+
+length.scale = Escala de longitud
+length.scale.option.0 = Muy corto
+length.scale.option.1 = Bien
+length.scale.option.2 = Muy largo
+
+gender.scale = Escala de género
+gender.scale.option.0 = Mujer
+gender.scale.option.1 = Hombre
+
+grade.scale = Escala de calificación (A-F)
+grade.scale.option.0 = F
+grade.scale.option.1 = D
+grade.scale.option.2 = C
+grade.scale.option.3 = B
+grade.scale.option.4 = A
+grade.scale.option.5 = Aprobado
Index: impl/src/java/org/sakaiproject/evaluation/dao/PreloadDataImpl.java
===================================================================
--- impl/src/java/org/sakaiproject/evaluation/dao/PreloadDataImpl.java	(revision 81848)
+++ impl/src/java/org/sakaiproject/evaluation/dao/PreloadDataImpl.java	(working copy)
@@ -36,7 +36,9 @@
 import org.sakaiproject.evaluation.utils.SettingsLogicUtils;
 import org.sakaiproject.genericdao.api.search.Restriction;
 import org.sakaiproject.genericdao.api.search.Search;
+import org.sakaiproject.util.ResourceLoader;
 
+
 /**
  * This checks and preloads any data that is needed for the evaluation app,
  * this should be executed with locks for cluster compatibility
@@ -46,6 +48,8 @@
 public class PreloadDataImpl {
 
     private static Log log = LogFactory.getLog(PreloadDataImpl.class);
+	
+	ResourceLoader rl = new ResourceLoader("org.sakaiproject.evaluation.impl.Messages");
 
     private EvaluationDao dao;
     public void setDao(EvaluationDao evaluationDao) {
@@ -212,41 +216,42 @@
             // you will need to update the test in EvalScalesLogicImplTest also
 
             // initial expert scales
-            agreeDisagree = saveScale("Agree disagree scale", EvalConstants.SCALE_IDEAL_HIGH,
-                    new String[] { "Strongly disagree", "Disagree", "Uncertain", "Agree", "Strongly agree" });
-            saveScale("Disagree agree scale", EvalConstants.SCALE_IDEAL_HIGH,
-                    new String[] { "Strongly agree", "Agree", "Uncertain", "Disagree", "Strongly disagree" });
-            saveScale("Frequency scale", EvalConstants.SCALE_IDEAL_NONE,
-                    new String[] { "Hardly ever", "Occasionally", "Sometimes", "Frequently", "Always" });
-            saveScale("Relative rating scale", EvalConstants.SCALE_IDEAL_HIGH, 
-                    new String[] { "Poor", "Fair", "Good", "Excellent" });
-            saveScale("Averages scale", EvalConstants.SCALE_IDEAL_NONE,
-                    new String[] { "Less than Average", "Average", "More than Average" });
-            saveScale("Effectiveness scale", EvalConstants.SCALE_IDEAL_HIGH,
-                    new String[] { "Not effective", "Somewhat effective", 
-                    "Moderately effective", "Effective", "Very effective" });
-            saveScale("Adequacy scale", EvalConstants.SCALE_IDEAL_HIGH,
-                    new String[] { "Unsatisfactory", "Inadequate", "Adequate", "Good", "Excellent" });
-            saveScale("Relationships scale", EvalConstants.SCALE_IDEAL_NONE,
-                    new String[] { "Much less", "Less", "Some", "More", "Much more" });
-            saveScale("Low high scale", EvalConstants.SCALE_IDEAL_NONE,
-                    new String[] { "Very low", "High", "Moderately high", "High", "Very high" });
-            saveScale("Correctness scale", EvalConstants.SCALE_IDEAL_HIGH,
-                    new String[] { "No", "Somewhat", "Mostly", "Yes" });
+             // initial expert scales
+            agreeDisagree = saveScale(rl.getString("agree.disagree.scale"), EvalConstants.SCALE_IDEAL_HIGH,
+                    new String[] { rl.getString("agree.disagree.scale.option.0"), rl.getString("agree.disagree.scale.option.1"), rl.getString("agree.disagree.scale.option.2"), rl.getString("agree.disagree.scale.option.3"), rl.getString("agree.disagree.scale.option.4") });
+            saveScale(rl.getString("disagree.agree.scale"), EvalConstants.SCALE_IDEAL_HIGH,
+                    new String[] { rl.getString("disagree.agree.scale.option.0"), rl.getString("disagree.agree.scale.option.1"), rl.getString("disagree.agree.scale.option.2"), rl.getString("disagree.agree.scale.option.3"), rl.getString("disagree.agree.scale.option.4") });
+            saveScale(rl.getString("frequency.scale"), EvalConstants.SCALE_IDEAL_NONE,
+                    new String[] { rl.getString("frequency.scale.option.0"), rl.getString("frequency.scale.option.1"), rl.getString("frequency.scale.option.2"), rl.getString("frequency.scale.option.3"), rl.getString("frequency.scale.option.4") });
+            saveScale(rl.getString("relative.rating.scale"), EvalConstants.SCALE_IDEAL_HIGH, 
+                    new String[] { rl.getString("relative.rating.scale.option.0"), rl.getString("relative.rating.scale.option.1"), rl.getString("relative.rating.scale.option.2"), rl.getString("relative.rating.scale.option.3") });
+            saveScale(rl.getString("averages.scale"), EvalConstants.SCALE_IDEAL_NONE,
+                    new String[] { rl.getString("averages.scale.option.0"), rl.getString("averages.scale.option.1"), rl.getString("averages.scale.option.2") });
+            saveScale(rl.getString("effectiveness.scale"), EvalConstants.SCALE_IDEAL_HIGH,
+                    new String[] { rl.getString("effectiveness.scale.option.0"), rl.getString("effectiveness.scale.option.1"), 
+                    rl.getString("effectiveness.scale.option.2"), rl.getString("effectiveness.scale.option.3"), rl.getString("effectiveness.scale.option.4") });
+            saveScale(rl.getString("adequacy.scale"), EvalConstants.SCALE_IDEAL_HIGH,
+                    new String[] { rl.getString("adequacy.scale.option.0"), rl.getString("adequacy.scale.option.1"), rl.getString("adequacy.scale.option.2"), rl.getString("adequacy.scale.option.3"), rl.getString("adequacy.scale.option.4") });
+            saveScale(rl.getString("relationship.scale"), EvalConstants.SCALE_IDEAL_NONE,
+                    new String[] { rl.getString("relationship.scale.option.0"), rl.getString("relationship.scale.option.1"), rl.getString("relationship.scale.option.2"), rl.getString("relationship.scale.option.3"), rl.getString("relationship.scale.option.4") });
+            saveScale(rl.getString("low.high.scale"), EvalConstants.SCALE_IDEAL_NONE,
+                    new String[] { rl.getString("low.high.scale.option.0"), rl.getString("low.high.scale.option.1"), rl.getString("low.high.scale.option.2"), rl.getString("low.high.scale.option.3"), rl.getString("low.high.scale.option.4") });
+            saveScale(rl.getString("correctness.scale"), EvalConstants.SCALE_IDEAL_HIGH,
+                    new String[] { rl.getString("correctness.scale.option.0"), rl.getString("correctness.scale.option.1"), rl.getString("correctness.scale.option.2"), rl.getString("correctness.scale.option.3") });
 
             // measurement scales
-            saveScale("Speed scale", EvalConstants.SCALE_IDEAL_MID,
-                    new String[] { "Too slow", "Okay", "Too fast" });
-            saveScale("Size scale", EvalConstants.SCALE_IDEAL_MID,
-                    new String[] { "Too small", "Okay", "Too large" });
-            saveScale("Length scale", EvalConstants.SCALE_IDEAL_MID,
-                    new String[] { "Too short", "Okay", "Too long" });
+            saveScale(rl.getString("speed.scale"), EvalConstants.SCALE_IDEAL_MID,
+                    new String[] { rl.getString("speed.scale.option.0"), rl.getString("speed.scale.option.1"), rl.getString("speed.scale.option.2") });
+            saveScale(rl.getString("size.scale"), EvalConstants.SCALE_IDEAL_MID,
+                    new String[] { rl.getString("size.scale.option.0"), rl.getString("size.scale.option.1"), rl.getString("size.scale.option.2") });
+            saveScale(rl.getString("length.scale"), EvalConstants.SCALE_IDEAL_MID,
+                    new String[] { rl.getString("length.scale.option.0"), rl.getString("length.scale.option.1"), rl.getString("length.scale.option.2") });
 
             // initial demographic scales
-            saveScale("Gender scale", EvalConstants.SCALE_IDEAL_NONE, 
-                    new String[] { "Female", "Male" });
-            saveScale("Grade (A-F) scale", EvalConstants.SCALE_IDEAL_NONE, 
-                    new String[] { "F", "D", "C", "B", "A", "Pass" });
+            saveScale(rl.getString("gender.scale"), EvalConstants.SCALE_IDEAL_NONE, 
+                    new String[] { rl.getString("gender.scale.option.0"), rl.getString("gender.scale.option.1") });
+            saveScale(rl.getString("grade.scale"), EvalConstants.SCALE_IDEAL_NONE, 
+                    new String[] { rl.getString("grade.scale.option.0"), rl.getString("grade.scale.option.1"), rl.getString("grade.scale.option.2"), rl.getString("grade.scale.option.3"), rl.getString("grade.scale.option.4"), rl.getString("grade.scale.option.5") });
 
             // Commented out VT specific scales -AZ
             //       saveScale("Student year scale", EvalConstants.SCALE_IDEAL_NONE, 
@@ -292,77 +297,78 @@
             // create expert items
             Set<EvalItem> itemSet;
 
-            // student development
-            EvalItemGroup newCategory = saveCategoryGroup("Student Development", "Determine how student development is perceived", null);
+             // student development
+            EvalItemGroup newCategory = saveCategoryGroup(rl.getString("student.development.title"), rl.getString("student.development.description"), null);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("I learned a good deal of factual material in this course", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I gained a good understanding of principals and concepts in this field", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I developed the a working knowledge of this field", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            saveObjectiveGroup("Knowledge", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("knowledge.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("knowledge.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("knowledge.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            saveObjectiveGroup(rl.getString("knowledge.0"), "", itemSet, newCategory);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("I participated actively in group discussions", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I developed leadership skills within this group", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I developed new friendships within this group", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            saveObjectiveGroup("Participation", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("participation.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("participation.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("participation.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            saveObjectiveGroup(rl.getString("participation.0"), "", itemSet, newCategory);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("I gained a better understanding of myself through this course", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I developed a greater sense of personal responsibility", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("I increased my awareness of my own interests and talents", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            saveObjectiveGroup("Self-concept", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("selfconcept.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("selfconcept.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("selfconcept.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            saveObjectiveGroup(rl.getString("selfconcept.0"), "", itemSet, newCategory);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("Group activities contributed significantly to my learning", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Collaborative group activities helped me learn the materials", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Working with others in the group helpded me learn more effectively", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            saveObjectiveGroup("Interaction", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("interaction.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("interaction.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("interaction.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            saveObjectiveGroup(rl.getString("interaction.0"), "", itemSet, newCategory);
 
 
             // instructor effectiveness
-            newCategory = saveCategoryGroup("Instructor Effectiveness", "Determine the perceived effectiveness of the instructor", null);
+            newCategory = saveCategoryGroup(rl.getString("instructor.effectiveness.title"), rl.getString("instructor.effectiveness.desc"), null);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("The instructor explained material clearly and understandably", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor handled questions well", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor appeared to have a thorough knowledge of the subject and field", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor taught in a manner that served my needs", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            saveObjectiveGroup("Skill", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("skill.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("skill.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("skill.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("skill.4"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            saveObjectiveGroup(rl.getString("skill.0"), "", itemSet, newCategory);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("The instructor was friendly", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor was permissive and flexible", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor treated students with respect", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            saveObjectiveGroup("Climate", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("climate.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("climate.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("climate.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            saveObjectiveGroup(rl.getString("climate.0"), "", itemSet, newCategory);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("The instructor suggested specific ways students could improve", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor gave positive feedback when students did especially well", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            itemSet.add( saveScaledExpertItem("The instructor kept students informed of their progress", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
-            saveObjectiveGroup("Feedback", "", itemSet, newCategory);
+            itemSet.add( saveScaledExpertItem(rl.getString("feedback.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("feedback.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            itemSet.add( saveScaledExpertItem(rl.getString("feedback.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_INSTRUCTOR) );
+            saveObjectiveGroup(rl.getString("feedback.0"), "", itemSet, newCategory);
 
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("Examinations covered the important aspects of the course", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Exams were creative and required original thought", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Exams were reasonable in length and difficulty", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Examination items were clearly worded", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Exam length was appropriate for the time alloted", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("exams.0"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("exams.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("exams.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("exams.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("exams.4"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
 
-            saveCategoryGroup("Exams", "Measure the perception of examinations", itemSet);
+            saveCategoryGroup(rl.getString("exams.title"), rl.getString("exams.desc"), itemSet);
 
             itemSet = new HashSet<EvalItem>();
-            itemSet.add( saveScaledExpertItem("Assignments were interesting and stimulating", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Assignments made students think", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Assignments required a reasonable amount of time and effort", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Assignments were relevant to what was presented", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
-            itemSet.add( saveScaledExpertItem("Assignments were graded fairly", null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("asn.0"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("asn.1"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("asn.2"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("asn.3"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
+            itemSet.add( saveScaledExpertItem(rl.getString("asn.4"), null, null, agreeDisagree, EvalConstants.ITEM_CATEGORY_COURSE) );
 
-            saveCategoryGroup("Assignments", "Measure the perception of out of class assignments", itemSet);
+            saveCategoryGroup(rl.getString("asn.title"), rl.getString("asn.desc"), itemSet);
 
             // general catch all
-            saveCategoryGroup(EvalConstants.EXPERT_ITEM_CATEGORY_TITLE, "General use items", null);
+            saveCategoryGroup(rl.getString("general.title"), rl.getString("general.desc"), null);
+
             
             log.info("Preloaded " + dao.countAll(EvalItem.class) + " evaluation items");
             log.info("Preloaded " + dao.countAll(EvalItemGroup.class) + " evaluation item groups");
Index: tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages.properties
===================================================================
--- tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages.properties	(revision 81848)
+++ tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages.properties	(working copy)
@@ -171,6 +171,7 @@
 administrate.false.label=No
 administrate.email.delivery=Control Email Settings is currently set to {0} - this is appropriate to {1}
 administrate.general.enable.ta.category=Enable Teaching Assistant item category
+administrate.email.default.frequency=Set the default reminder frequency to use for new evaluations
 administrate.use.admin.from.email=Use evaluation admin email address to send from for notifications (uses the system help address otherwise) (CAM)
 administrate.job.completion.email=Enable an email to be sent to the evaluation admin when an email job has completed 
 administrate.enable.reminder.status=Enable the job status while reminders are running.
@@ -361,6 +362,13 @@
 starteval.view.preview.link=Preview
 starteval.continue.settings.link=Continue to Settings
 
+# Eval Constants
+evaltoolconstants.multiple.emails=Multiple emails per student - one email per response outstanding.
+evaltoolconstants.single.email=Single email per student - one email if any of a student's responses are outstanding.
+evaltoolconstants.send.email=Send email. This mode should be used in production, when you do want to send email to real users.
+evaltoolconstants.log.email=Log email to the server log. This mode may be used in development to check the content of email messages.
+evaltoolconstants.do.not.send.email=Do not send email. This mode may be used for safer testing, when you don't want to accidentally send email to real users.
+
 # Evaluation Settings view
 evalsettings.page.title=Evaluation Settings
 evalsettings.title.settings=Evaluation title:
Index: tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages_es_ES.properties
===================================================================
--- tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages_es_ES.properties	(revision 81848)
+++ tool/src/java/org/sakaiproject/evaluation/tool/bundle/messages_es_ES.properties	(working copy)
@@ -30,14 +30,16 @@
 sharing.public=Publico - visible para todos, editable por cualquier administrador
 sharing.visible=Visible - visible para cualquier administrador, editable s\u00F3lo por usted
 sharing.shared=Compartido - para cualquier administrador, editable s\u00F3lo por administradores del mismo nivel que el propietario
-item.classification.scaled=Encuesta
+item.classification.scaled=Evaluaci\u00F3n
 item.classification.multichoice=Selecci\u00F3n M\u00FAltiple
 item.classification.multianswer=Respuesta M\u00FAltiple
 item.classification.text=Respuesta Corta/Ensayo
-item.classification.header=Text Header
+item.classification.header=Cabecera de texto
 item.classification.block=Bloque de preguntas
 item.classification.existing=Existente
 item.classification.expert=Experto
+label.process=Procesando...
+placeholder={0}
 
 
 # Messages for the user
@@ -48,7 +50,7 @@
 # Summary view
 summary.page.title=Panel de Evaluaciones
 summary.page.instruction= Enlaces R\u00E1pidos a elementos de evaluaci\u00F3n
-summary.instructor.instruction=tu panel de control contiene enlaces r\u00E1pidos a evaluaciones que estan en curso actualmente, recientemente cerradas o pendientes. Para empezar con estas evaluaciones, primero debe crear una plantilla. Debera usar su plantilla como base para todas las evaluaciones que envie. Cuando haya creado su plantilla, pulse en 'Comenzar evaluaci00F3n'.
+summary.instructor.instruction=Tu panel de control contiene enlaces r\u00E1pidos a evaluaciones que estan en curso actualmente, recientemente cerradas o pendientes. Para empezar con estas evaluaciones, primero debe crear una plantilla. Debera usar su plantilla como base para todas las evaluaciones que envie. Cuando haya creado su plantilla, pulse en 'Comenzar evaluaci\u00F3n'.
 summary.status.completed=Completado
 summary.status.pending=Pendiente
 summary.notifications.title=Notificaciones en curso
@@ -57,13 +59,24 @@
 summary.evaluations.starts.title=Comienza
 summary.evaluations.ends.title=Finaliza
 summary.evaluations.none=No hay evaluaciones a realizar ahora mismo
+summary.be.evaluated.none=Actualmente no tiene evaluaciones activas o pendientes
 summary.evaluations.admin=Evaluaciones que estoy creando o administrando
-summary.sitelisting.title=Listar Sitio/Grupo
+summary.responses.title=Evaluaciones en las cuales puedo ser evaluado
+summary.responses.evaltitle=T\u00EDtulo de la evaluaci\u00F3n
+summary.responses.state=Estado
+summary.responses.date=Fecha
+summary.responses.responses=Respuestas
+# "summary.responses.eval.title" shows the group-title ({0}) and eval-title ({1}) 
+# (in either order, with approp punctuation) for an assigned eval in the instructor widget  
+summary.responses.eval.title={0} [{1}]
+summary.responses.counts = {0} of {1}
+summary.sitelisting.title=Listar Sitios/Grupos
 summary.sitelisting.evaluated=Grupos en los que he evaluado:
 summary.sitelisting.evaluate=Grupos que puedo evaluar:
 summary.sitelisting.maxshown={0} grupos no mostrados
 summary.header.title=T\u00EDtulo
 summary.header.date=Fecha
+summary.header.responses=Responses
 summary.eval.assigned.from.above=Se le ha asignado una evaluaci\u00F3n desde un nivel superior:
 summary.tools.title=Herramientas de Evaluaci\u00F3n
 summary.header.status=Estado
@@ -81,6 +94,11 @@
 summary.label.resultsviewableon=Visible
 summary.label.resultsviewablesince=Visible desde
 summary.label.fallback=Empezada
+summary.label.InQueue=Empieza
+summary.label.Active=Vence
+summary.label.Due=Se cierra
+summary.label.Closed=Visible
+summary.label.Viewable=Visible desde
 
 # Administrate view
 administrate.page.title=Administrar
@@ -92,7 +110,7 @@
 administrate.instructors.view.results.note=Los Profesores pueden ver los resultados
 administrate.instructors.email.students.note=Los Profesores pueden enviar correos electr\u00F3nicos a los estudiantes
 administrate.instructors.hierarchy.note=Los Profesores pueden usar evaluaciones de arriba en la jerarquia
-administrate.instructors.num.questions.note=Los Profesores pueden a\u00F1adir este n\u00FAmero de preguntas a las evaluaciones desde arriba en la jerarqu\u00EDa ant\u00E9s de la fecha de publicaci\u00F3n
+administrate.instructors.num.questions.note=Los Profesores pueden a\u00F1adir este n\u00FAmero de preguntas a las evaluaciones desde arriba en la jerarqu\u00EDa antes de la fecha de publicaci\u00F3n
 administrate.student.settings.header=Ajustes Estudiantes:
 administrate.students.unanswered.note=Los Estudiantes pueden dejar preguntas sin contestar
 administrate.students.modify.responses.note=Los Estudiantes pueden modificar sus respuestas hasta la fecha de vencimiento
@@ -101,9 +119,11 @@
 administrate.admin.hierarchy.num.questions.note=Los Administradores por debajo del nivel de jerarquia del propietario puede a\u00F1adir este n\u00FAmero de preguntas a las evaluaci\u00F3n antes de la fecha de publicaci\u00F3n
 administrate.admin.view.instructor.added.results.note=Los Administradores pueden ver los resultados de las preguntas a\u00F1adidas por los profesores.
 administrate.admin.view.below.results.note=Los Administradores pueden ver los resultados de los elementos a\u00F1adidos por debajo de ellos en la jerarqu\u00EDa
+administrate.admin.enable.provider.sync=Se permite a los administradores programar sincronizaciones de pertenencias a grupos
 administrate.hierarchy.settings.header=Ajustes Jerarqu\u00EDa:
 administrate.hierarchy-display-node-headers-note=Mostrar la jerarqu\u00EDa en las cabeceras del nodo para tener una vista previa de la evaluaci\u00F3n
 administrate.general.show.hierarchy.information=Usar men\u00FAs Jer\u00E1rquicos, opciones, e informaci\u00F3n del sistema
+administrate.general.show.my.toplinks=Mostrar enlaces a Mis Evaluaciones, Mis Plantillas, Mis Items, Mis Escalas y Mis Plantillas de Correo Elect\u00F3nico
 administrate.general.settings.header=Ajustes Generales:
 administrate.general.helpdesk.email.note=Direcci\u00F3n de correo electr\u00F3nico de Ayuda (Los mensajes de correo electr\u00F3nico parecer\u00E1n venir de esta direcci\u00F3n de correo electr\u00F3nico por defecto)
 administrate.general.responses.before.view.note=N\u00FAmero de respuestas requeridas antes de poder ver los resultados
@@ -114,9 +134,13 @@
 administrate.general.enable.eval.close.note=Permitir a las evaluaciones el cierre prematuro
 administrate.general.enable.eval.reopen.note=Permitir a las evaluaciones reabrise despu\u00E9s de haber sido cerradas
 administrate.general.enable.item.comments.note=Habilitar el uso opcional de comentarios de texto o de elementos no textuales
+administrate.general.enable.administrating.box=Mostrar la ventana "Evaluaciones que estoy creando o administrando" (widget) en la pantalla principal
+administrate.general.enable.group.specific.preview.note=Mostrar previsualizaci\u00F3n espec\u00EDfica de grupos cuando sea posible
 administrate.general.enable.sites.summary=Mostrar cuadro de resumen de los sitios en la pantalla principal
 administrate.general.enable.response.removal=Permitir respuestas a las evaluaciones que deben eliminarse
 administrate.general.template.sharing.note=Ajuste de visibilidad y compartici\u00F3n de plantilla
+administrate.general.template.copying.note=Copiar plantillas, elementos y escalas cuando se guarden nuevas evaluaciones
+administrate.general.all.roles.participate.note=Opcionalmente sobrescribir permisos y permitir responder a los miembros del sitio con el permiso eval.be.evaluated
 administrate.general.use.evaluation.category=Habilitar el uso de una categor\u00EDa clave para la agrupaci\u00F3n cuando se creen las evaluaciones
 administrate.general.use.evaluation.term.id=Habilitar el uso de una ID semestre cuando se creen las evaluaciones
 administrate.general.default.question.category.note=Todas las preguntas por defecto s\u00F3lo pertenecen a la categor\u00EDa curso (la categor\u00EDa profesor no est\u00E1 permitida)
@@ -132,10 +156,14 @@
 administrate.general.enable.importing.note=Habilitar importaci\u00F3n de opciones y controles (UM)
 administrate.general.disable.item.bank=Deshabilitar el elemento banco
 administrate.general.disable.question.blocks=Deshabilitar los Bloques de Preguntas
+administrate.general.view.results.ignore.dates.note=Ver los resultados de la encuentra mientras est\u00E1 abierta
 administrate.save.settings.button=Guardar Cambios
+administrate.cancel.settings.button=Cancelar
 administrate.top.import.data=Importar Datos
-administrate.top.control.hierarchy=Control Jerarqu\u00EDa
-administrate.top.control.reporting=Control Informe
+administrate.top.control.hierarchy=Gestionar Jerarqu\u00EDa
+administrate.top.control.reporting=Gestionar informes
+administrate.top.control.evaladmin=Administradores de evaluaciones
+administrate.top.control.search=Buscar
 administrate.general.require.comments.block.note=Requiere la inclusi\u00F3 de un bloque de comentarios en cada evaluaci\u00F3n
 administrate.general.eval.closed.still.recent.note=N\u00FAmero de d\u00EDas que puede una evaluaci\u00F3n permanecer como recientemente cerrada.
 administrate.sharing.owner=Propietario - Visibilidad establecida por el propietario
@@ -143,9 +171,94 @@
 administrate.false.label=No
 administrate.email.delivery=Control de los ajuste de correo electr\u00F3nico este establecido actualmente como {0} - que es apropiado para {1}
 administrate.general.enable.ta.category=Habilitar la categor\u00EDa de Profesor Asistente
+administrate.email.default.frequency=Establecer la frecuencia de recordatorio por defecto a usar en nuevas evaluaciones
 administrate.use.admin.from.email=Usar la direcci\u00F3n de correo electr\u00F3nico del administrador de la evaluaci\u00F3n para enviar desde ellla las notificaciones (usar la direcci\u00F3n de la ayuda del sistema en caso contrario) (CAM)
+administrate.job.completion.email=Habilitar el env\u00EDo de un email al administrador de evaluaciones cuando se complete un trabajo de env\u00EDo de recordatorios
+administrate.enable.reminder.status=Habilitar el estado del trabajo cuando los recordatorios est\u00E9n en ejecuci\u00F3n.
 administrate.email.time.wait.secs=El tiempo en segundos entre la creaci\u00F3n de una evaluaci\u00F3n y el env\u00EDo de la notificaci\u00F3n de disponibilidad, por defecto 300 (5 min.)
+administrate.general.enable.selections=Permitir opciones de selecci\u00F3n avanzadas de Instructor / Teaching Assistant al asignar evaluaciones
+administrate.general.enable.filtered.evalgroups=Mostrar s\u00F3lamente sitios con el mismo tipo y periodo acad\u00E9mico que el sitio actual al asignar evaluaciones
+administrate.email.allow.initial.notification.override=Permitir a los usuarios elegir si mandar una notificaci\u00F3n inicial por correo al crear una evaluaci\u00F3n (por defecto, una notificaci\u00F3n siempre ser\u00E1 enviada al abrir una evaluaci\u00F3n)
+administrate.reset.button=Resetear la Cache de configuraciones
+administrate.reset.cache=Forzar la limpieza inmediata de la cache de configuraciones. Use esto si ha cambiado la configuracion y parece estar desincronizada, la cache se resetea automaticamente cada hora
+administrate.reset.message=La cache de ajustes de configuraci\u00F3n ha sido limpiada y recargada
+administrate.general.enable.evaluatee.box=Mostrar el cuadro resumen del profesor en la pantalla principal
+#Administrative search
+administrate.search.page.title=B\u00FAsqueda Administrativa
+administrate.search.instruction=Busca por t\u00EDtulo de evaluaci\u00F3n. El t\u00E9rmino de b\u00FAsqueda deber\u00EDa ser una subcadena con el t\u00EDtulo de la evaluaci\u00F3n. La b\u00FAsqueda es sensible a may\u00FAsculas.
+administrate.search.breadcrumb.title=B\u00FAsqueda
+administrate.search.submit.title=B\u00FAsqueda
+administrate.search.pager.label=Viendo {0}-{1} de un total de {2} 
+administrate.search.list.title.title=T\u00EDtulo
+administrate.search.list.group.id.title=ID de Grupo
+administrate.search.list.start.date.title=Fecha de inicio
+administrate.search.list.due.date.title=Fecha de vencimiento
+administrate.search.list.status.title=Estado
+administrate.search.list.date.title=Fecha
+administrate.search.list.empty.note=No se encontraron resultados
+administrate.search.list.preview=vista previa
+administrate.search.list.revise=revisar
+administrate.search.list.owner=Propietario
+administrate.general.local.css.path.note=Ruta local de ficheros CSS (incluye la ruta a los CSS para que se configure en todas las p\u00E1ginas, la ruta puede ser: URL/ruta absoluta/ruta relativa)
 
+#Administrative Provider Sync
+administrate.sync.breadcrumb.title=Sincronizar los miembros de los grupos
+administrate.sync.now=Esto empezar\u00E1 inmediatamente el proceso de sincronizar los miembros de los grupos.
+administrate.sync.page.title=Sincronizar los miembros de los grupos
+administrate.sync.by_event.tab=Por lanzamiento de un evento
+administrate.sync.by_event.instruction=Sincronizar los miembros de los grupos cuando ocurran los siguientes eventos
+administrate.sync.on_group_save=Sincronizar los miembros de los grupos cuando se guarde un nuevo grupo
+administrate.sync.on_group_update=Sincronizar los miembros de los grupos cuando se actualice un grupo existente
+administrate.sync.on_state_change=Sincronizar los miembros de los grupos cuando cambie el estado de una evaluaci\u00F3n
+administrate.sync.on_server_startup=Sincronizar los grupos sin asignar al arranque del servidor
+administrate.sync.select.server=Selecciona el servidor para ejecutar todas las sincronizaciones de los miembros de los grupos
+administrate.sync.event.submit=Guardar Cambios
+
+administrate.sync.by_time.tab=Por tiempo y estado
+administrate.sync.by_time.instruction=Programar una sincronizaci\u00F3n para una fecha concreta en evaluaciones con un estado concreto
+administrate.sync.by_time.cronExpression=Expresi\u00F3n del cron:
+administrate.sync.by_time.cronTutorial=http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html
+administrate.sync.by_time.cronTutorial.label=? 
+administrate.sync.by_time.stateList=Estado de la evauaci\u00F3n:
+administrate.sync.by_time.save=Programar sincronizaci\u00F3n
+administrate.sync.by_time.revise=Guardar Cambios
+administrate.sync.by_time.server=Selecciona el servidor para ejecutar todas las sincronizaciones de los miembros de los grupos
+administrate.sync.triggers.none=No hay sincronizaciones programadas por tiempo y estado.
+administrate.sync.triggers.states=Lista de estados
+administrate.sync.triggers.cronExpression=Expresi\u00F3n del cron
+administrate.sync.triggers.actions=Acciones
+administrate.sync.triggers.delete=Eliminar
+administrate.sync.triggers.revise=Editar
+administrate.sync.triggers.delete.confirm=Est\u00E1s eliminando permanentemente la sincronizaci\u00F3n programada con la expresi\u00F3n del cron ''{0}'' que afecta a las evaluaciones con estado(s): {1}
+administrate.sync.quick.tab=Sincronizaci\u00F3n r\u00E1pida
+administrate.sync.quick_sync.states=Ejecutar una sincronizaci\u00F3n r\u00E1pida en evaluaciones que est\u00E1n:
+administrate.sync.quick_sync.save=Sincronizar ahora
+administrate.sync.cronExpression.err=Error en la expresi\u00F3n del cron ({0})
+administrate.sync.cronExpression.null=Por favor especifica una expresi\u00F3n del cron
+administrate.sync.stateList.null=Por favor incluye al menos un valor para ''estado de la evaluaci\u00F3n''
+administrate.sync.job.success=El trabajo se ha programado.
+administrate.sync.delete.null=No se puede eliminar una sincronizaci\u00F3n programada con nombre de disparador nulo.
+administrate.sync.delete.failed=No se puede eliminar una sincronizaci\u00F3n programada con nombre de disparador {0}.
+administrate.sync.delete.succeeded=La sincronizaci\u00F3n programada con expresi\u00F3n del cron ''{0}'' y estado(s) ''{1}'' ha sido eliminada.
+administrate.sync.delete.failure=La sincronizaci\u00F3n programada con expresi\u00F3n del cron ''{0}'' y estado(s) ''{1}'' no se puede eliminar. Int\u00E9ntalo m\u00E1s tarde.
+administrate.sync.update.null=No se puede actualizar una sincronizaci\u00F3n programada con nombre de disparador nulo.
+administrate.sync.update.failed=No se puede actualizar una sincronizaci\u00F3n programada con nombre de disparador {0}.
+administrate.sync.update.succeeded=La sincronizaci\u00F3n programada con expresi\u00F3n del cron ''{0}'' y estado(s) ''{1}'' ha sido actualizada.
+administrate.sync.update.failure=La sincronizaci\u00F3n programada con expresi\u00F3n del cron ''{0}'' y estado(s) ''{1}'' no se puede actualizar. Int\u00E9ntalo m\u00E1s tarde.
+administrate.sync.event.saved=Se han guardado los cambios.
+administrate.sync.event.failed=No se han guardado los cambios. Int\u00E9ntalo m\u00E1s tarde.
+administrate.sync.quick_sync.server=Selecciona el servidor para ejecutar todas las sincronizaciones de los miembros de los grupos
+administrate.sync.quick.success=La sincronizaci\u00F3n de los estados elegidos empezar\u00F3 en {0} minutos. Estados: {1}
+administrate.sync.quick.failure=No se puede programar una sincronizaci\u00F3n r\u00E1pida.  Int\u00E9ntalo m\u00E1s tarde.
+
+# state labels (used in admin provider sync page)
+state.label.partial=Parcial 
+state.label.inqueue=En cola
+state.label.active=Activa 
+state.label.graceperiod=Periodo de gracia
+state.label.closed=Cerrada
+state.label.viewable=Visible
+
 # Control Templates
 controltemplates.page.title=Mis Plantillas
 controltemplates.create.template.link=Nueva Plantilla
@@ -155,7 +268,7 @@
 controltemplates.template.title.header=T\u00EDtulo de Plantilla
 controltemplates.template.owner.header=Propietario
 controltemplates.template.lastupdate.header=\u00DAltima Actualizaci\u00F3n
-controltemplates.template.inuse.note=La plantilla esta actualmente en uso en almenos una evaluaci\u00F3n
+controltemplates.template.inuse.note=La plantilla esta actualmente en uso en al menos una evaluaci\u00F3n
 controltemplates.copy.user.message=Su plantilla ha sido copiada
 controltemplates.remove.user.message=Su plantilla ({0}) ha sido eliminada
 
@@ -186,18 +299,20 @@
 # Control evaluations
 controlevaluations.page.title=Mis Evaluaciones
 controlevaluations.partial.header=Evaluaciones Parcialmente Completas
-controlevaluations.partial.description=Sus Evaluations que ha empezado a crear pero no est\u00E1n completadas (\u00E9stas se eliminan autom\u00E1ticamente despu\u00E9s de un tiempo)
+controlevaluations.partial.description=Evaluaciones suyas que ha empezado a crear pero no est\u00E1n completadas (\u00E9stas se eliminan autom\u00E1ticamente despu\u00E9s de un tiempo)
+controlevaluations.partial.cleanup=(estas ser\u00E1n autom\u00E1ticamente borradas despues de {0} d\u00EDas)
 controlevaluations.partial.created.date.header=Creada el
 controlevaluations.partial.continue=Continuar creando esta evaluaci\u00F3n
-controlevaluations.inqueue.header=Evaluaciones En-Cola
-controlevaluations.inqueue.description=Sus Evaluaciones en cola que a\u00FAn no han empezado todav\u00EDa
-controlevaluations.inqueue.none=No hay evaluaciones in-cola
+controlevaluations.inqueue.header=Evaluaciones En Cola
+controlevaluations.inqueue.description=Evaluaciones suyas en cola que a\u00FAn no han empezado todav\u00EDa
+controlevaluations.inqueue.none=No hay evaluaciones en cola
 controlevaluations.active.header=Evaluaciones Activas
-controlevaluations.active.description=Sus Evaluaciones que est\u00E1n activas y pueden realizarse
+controlevaluations.active.description=Evaluaciones suyas que est\u00E1n activas y pueden realizarse
 controlevaluations.active.none=No hay evaluaciones activas
 controlevaluations.active.close.now=Cerrar Ahora
+controlevaluations.active.report.title=Ver Informe
 controlevaluations.closed.header=Evaluaciones Cerradas
-controlevaluations.closed.description=Sus Evaluaciones las cuales han sido completadas
+controlevaluations.closed.description=Evaluaciones suyas que han sido completadas
 controlevaluations.closed.none=No hay evaluaciones cerradas
 controlevaluations.closed.reopen.now=Reabrir
 controlevaluations.eval.title.header=T\u00EDtulo de la Evaluaci\u00F3n
@@ -205,8 +320,10 @@
 controlevaluations.eval.startdate.header=Fecha Comienzo
 controlevaluations.eval.duedate.header=Fecha Vencimiento
 controlevaluations.eval.settings.header=Ajustes
+controlevaluations.eval.reminders.header= Recordatorios
 controlevaluations.eval.responses.header=Respuestas
-controlevaluations.eval.responserate.header=Ratio de Respuesta
+controlevaluations.eval.report.header=Informe
+controlevaluations.eval.responserate.header=Ratio de respuesta
 controlevaluations.eval.responses.inline={0}
 controlevaluations.eval.report.header=Informe
 controlevaluations.eval.direct.link=Enlace permanente
@@ -220,6 +337,7 @@
 controlevaluations.delete.user.message=Evaluaci\u00F3n ({0}) ha sido borrada
 controlevaluations.closed.user.message=Evaluaci\u00F3n ({0}) ha sido cerrada prematuramente
 controlevaluations.reopen.user.message=Evaluaci\u00F3n ({0}) ha sido reabierta
+controlevaluations.instructions.site.unpublished=Este icono indica una evaluaci\u00F3n que est\u00E1 asignada al menos a un sitio que no ha sido publicado. Publique esos sitios para que los estudiantes sean notificados mediante email de que ya tienen acceso a la evaluaci\u00F3n.
 
 
 # Show Eval Category view
@@ -244,6 +362,13 @@
 starteval.view.preview.link=Previsualizar
 starteval.continue.settings.link=Continuar a Ajustes
 
+# Eval Constants
+evaltoolconstants.multiple.emails=Multiples correos por alumno - un email por cada respuesta destacada.
+evaltoolconstants.single.email=Solamente un correo por alumno - un correo si alguna de las respuestas del alumno es destacada.
+evaltoolconstants.send.email=Enviar correo. Este es el modo a usar en producci\u00F3n, cuando se quiere enviar correos a los usuarios reales.
+evaltoolconstants.log.email=Registrar el correo en el log del servidor. Este es el modo a usar en desarrollo para comprobar el contenido de los correos.
+evaltoolconstants.do.not.send.email=No enviar correos. Este es el modo a usar para realizar pruebas seguras, donde te aseguras que nadie recibe correos accidentalmente.
+
 # Evaluation Settings view
 evalsettings.page.title=Ajustes de Evaluaci\u00F3n
 evalsettings.title.settings=T\u00EDtulo de la Evaluaci\u00F3n:
@@ -263,6 +388,8 @@
 evalsettings.studentViewResults.disabled=Los resultados no podr\u00E1n ser vistos por los participantes de los cursos a los que ha sido asignada esta evaluaci\u00F3n.
 evalsettings.instructorViewResults.label=Los profesores de los cursos, a los que ha sido asignada, podr\u00E1n ver los resultados de esta evaluaci\u00F3n.
 evalsettings.instructorViewResults.disabled=Los resultados no podr\u00E1n ser vistos por los profesores de los cursos a los que ha sido asignada esta evaluaci\u00F3n.
+evalsettings.instructorViewAllResults.label=Los profesores pueden ver las respuestas a las preguntas de otros profesores.
+evalsettings.instructorViewAllResults.disabled=Los profesores no pueden ver las respuestas a las preguntas de otros profesores.
 evalsettings.view.results.date.label=Los resultados ser\u00E1n visibles despu\u00E9s de la fecha de vencimiento/visibilidad de la evaluaci\u00F3n
 evalsettings.blankResponsesAllowed.label=Se permite dejar en blanco preguntas no textuales.
 evalsettings.blankResponsesAllowed.disabled=Todas las preguntas no textuales deben ser respondidas
@@ -270,14 +397,17 @@
 evalsettings.modifyResponsesAllowed.label=Se podr\u00E1n Modificar las respuestas mientras el periodo de evaluaci\u00F3n no est\u00E9 cerrado
 evalsettings.modifyResponsesAllowed.disabled=Las respuestas no pueden ser cambiadas despu\u00E9s de haber sido enviadas
 evalsettings.modify.responses.allowed.note=Los participantes pueden cambiar y reenviar sus respuestas si esto est\u00E1 habilitado
+evalsettings.allRolesParticipate.label=Permitir a los evaluadores responder
+evalsettings.allRolesParticipate.disabled=Solamente los evaluadores deben rellenar la encuesta
+evalsettings.all.roles.participate.note=Si se asigna a un sitio donde a todos los miembros se les permite responder a esta encuesta
 evalsettings.admin.settings.instructions=Este ajuste permite dar al profesor control sobre el uso de la evaluaci\u00F3n (o simplemente se les solicita).
 evalsettings.reminder.settings.header=Notificaciones de la Evaluaci\u00F3n
 evalsettings.instructor.opt.desc=Ajuste de opciones de Profesor
 evalsettings.email.sent.from=Todos los correos electr\u00F3nicos se enviar\u00E1n desde {0} a menos que se reescriban m\u00E1s abajo.
 evalsettings.available.mail.link=(\u00BFVer/Editar la direcci\u00F3n de correo electr\u00F3nico de notificaci\u00F3n?)
 evalsettings.student.completion.settings.header=Configuraci\u00F3n de Complemento de Participante
-evalsettings.emails.instructions=Por favor compruebe todo los detalles de la lista siguiente antes de guardar la configuraci\u00F3n de la encuesta.
-evalsettings.emails.appropriate=La direcci\u00F3n de correo electr\u00F3nico por defecto est\u00E1 dise\u00F1ada para encuestas para evaluar estudiantes de cursosy puede no ser apropiada para otro tipo de encuestas.
+evalsettings.emails.instructions=Por favor compruebe todo los detalles de la lista siguiente antes de guardar la configuraci\u00F3n de la evaluaci\u00F3n.
+evalsettings.emails.appropriate=La direcci\u00F3n de correo electr\u00F3nico por defecto est\u00E1 dise\u00F1ada para evaluaciones para evaluar estudiantes de cursos y puede no ser apropiada para otro tipo de evaluaciones.
 evalsettings.available.mail.desc=Una notificaci\u00F3n de correo electr\u00F3nico ser\u00E1 enviada a todos los participantes asignados una evaluaci\u00F3n el d\u00EDa que esta comience. 
 evalsettings.reminder.mail.desc=Un recordatorio ser\u00E1 enviado por correo electr\u00F3nico a todos los estudiantes queno hayan a\u00FAn completado la evaluaci\u00F3n en el intervalo especificado a continuaci\u00F3n. 
 evalsettings.reminder.noresponders.header=Recordatorio de correo electr\u00F3nico para estudiantes que no han respondido
@@ -304,7 +434,7 @@
 evalsettings.reminder.days.5=Cada 5 d\u00EDas
 evalsettings.reminder.days.6=Cada 6 d\u00EDas
 evalsettings.reminder.days.7=Cada semana
-evalsettings.reminder.days.-1=24 horas antes que se cierre la encuesta
+evalsettings.reminder.days.-1=24 horas antes que se cierre la evaluaci\u00F3n
 evalsettings.admin.settings.header=Ajustes Administrativos
 evalsettings.auth.control.instructions=Este ajuste le permite elegir si se requiere autenticaci\u00F3n para poder realizar esta evaluaci\u00F3n.
 evalsettings.auth.control.header=Control de Ajuste de Autenticaci\u00F3n
@@ -323,6 +453,17 @@
 evalsettings.invalid.eval.category=La categor\u00EDa de una evaluaci\u00F3n contiene caracteres inv\u00E1lidos. Caracteres v\u00E1lidos incluyen caracteres alfanum\u00E9ricos y cualquiera de los siguientes: ()+*.-_=,:;!~@%
 evalsettings.updated.message=La configuraci\u00F3n de la evaluaci\u00F3n ({0}) ha sido actualizada
 evalsettings.invalid.dates=Las fechas para esta evaluaci\u00F3n no son v\u00E1lidas, Las fechas deben estar en orden de arriba a abajo
+evalsettings.selection.header=Selecci\u00F3n de Instructor / Teaching Assistant:
+evalsettings.selection.instruction=Estas opciones controlan como los participantes eval\u00FAan a los profesores y asistentes. Las preguntas con la categor\u00EDa de Instructor o Teaching Assistant son repetidas de acuerdo con los siguientes ajustes.
+evalsettings.selection.header.instructor=Instructors:
+evalsettings.selection.header.ta=Teaching Assistants:
+evalsettings.selection.instructor.all=Los participantes eval\u00FAan a todos los profesores incluidos en la evaluaci\u00F3n
+evalsettings.selection.instructor.one=Los participantes seleccionan un profesor para evaluarlo
+evalsettings.selection.instructor.many=Los participantes pueden seleccionar multiples profesores para evaluarlos
+evalsettings.selection.ta.all=Los participantes eval\u00FAan todos los Teaching Assistants incluidos en la evaluaci\u00F3n
+evalsettings.selection.ta.one=Los participantes seleccionan un Teaching Assistant para evaluarlo
+evalsettings.selection.ta.many=Los participantes pueden seleccionar m\u00FAltiples Teaching Assistants para evaluarlos
+evalsettings.general.enable.email.onbegin=Mandar email de notificaci\u00F3n el d\u00EDa en que la evaluaci\u00F3n se activa.
 
 # Assign Evaluation view
 assigneval.page.title=Asignar Evaluaci\u00F3n
@@ -330,17 +471,40 @@
 assigneval.page.ext.title=Asignar Evaluaci\u00F3n a grupos
 assigneval.assign.page.title=Editar Asignaci\u00F3n de Evaluaci\u00F3n para "{0}"
 assigneval.assign.instructions=Puede asignar esta evaluaci\u00F3n ({0}) a los grupos siguientes
+assigneval.assign.instructions.notpublished=Esto indica un sitio que est\u00E1 actualmente sin publicar. Aseg\u00FArese de que lo publica o los estudiantes no ser\u00E1n notificados sobre la evaluaci\u00F3n ni podr\u00E1n completarla.
 assigneval.name.header=T\u00EDtulo
 assigneval.select.header=Seleccionar
+assigneval.notpublished=Este sitio est\u00E1 sin publicar. Publ\u00EDquelo antes de asignarlo.
+assigneval.cannot.assign=No puede asignarlo a este sitio, no tiene miembros que puedan hacer la evaluaci\u00F3n.
 assigneval.edit.settings.button=Editar Ajustes
 assigneval.save.assigned.button=Guardar Grupos Asignados
 assigneval.page.hier.title=Asignar Evaluaci\u00F3n a Nodos jer\u00E1rquicos
-assigneval.invalid.selection=Debe elegir al menos un grupo o un nodo que contenga almenos un grupo
+assigneval.invalid.selection=Debe elegir al menos un grupo o un nodo que contenga al menos un grupo
 assigneval.page.groups.title=Asignar a los Grupos de Evaluaci\u00F3n
 assigneval.page.adhocgroups.title=Asignar a un Grupo adhoc
 assigneval.page.adhocgroups.newgrouplink=Crear un nuevo grupo Adhoc ahora
 assigneval.page.adhocgroups.editgrouplink=editar
+assigneval.invalid.user=El usuario {0} es an\u00F3nimo y la evaluaci\u00F3n requiere estar autenticado.
 
+# Assign Select Instructors/TAs view
+assignselect.page.group=Grupo:
+assignselect.page.evaluation=Evaluaci\u00F3n:  
+assignselect.page.column.title=Profesores seleccionados
+assignselect.table.numbers=N\u00FAmero de estudiante/empleado
+assignselect.table.names=Nombre
+assignselect.instructions.instructors=\u00BFA cuantos profesores deber\u00EDan los participantes evaluar?
+assignselect.instructions.assistants=\u00BFA cuantos profesores asistentes deber\u00EDan los participantes evaluar?
+assignselect.instructions.assistant=Elija los profesores que ser\u00E1n incluidos en esta evaluaci\u00F3n.
+assignselect.instructions.instructor=Elija a los profesores asistentes que ser\u00E1n incluidos en esta evaluaci\u00F3n.
+assignselect.instructors.page.header=Elija profesores de {0} a {1}
+assignselect.instructors.page.title=Elija profesores
+assignselect.instructors.select=Elija profesores ({0}/{1})
+assignselect.tas.page.header=Elija profesores asistentes de {0} a {1}
+assignselect.tas.page.title=Elija profesores asistentes
+assignselect.tas.select=Elija profesores asistentes ({0}/{1})
+assignselect.form.save=Guardar selecci\u00F3n
+
+
 # Assign Confirm view
 evaluationassignconfirm.page.title=Confirmar Asignaci\u00F3n
 evaluationassignconfirm.eval.assign.info=Ha elegido asignar la evaluaci\u00F3n ({0}) a los grupos mostrados a continuaci\u00F3n.
@@ -363,6 +527,8 @@
 evaluationassignments.add.assigns.link=Modificar grupos asignados para esta evaluaci\u00F3n
 evaluationassignments.groups.header=Grupos Individuales
 evaluationassignments.groups.name.header=Nombre
+evaluationassignments.groups.instructors.header=Profesores
+evaluationassignments.groups.assistants.header=Profesores asistentes
 evaluationassignments.groups.members.header=Miembros
 evaluationassignments.groups.type.header=Tipo de Grupo
 evaluationassignments.no.groups=No hay grupos que mostrar
@@ -395,8 +561,13 @@
 previeweval.instructions.default=Instrucciones de Evaluaci\u00F3n deber\u00EDn ir aqu\u00ED si alguien las ha especificado. Estes bloque ser de hasta 4000 caracteres.
 previeweval.course.questions.header=Elmentos Grupo/Curso:
 previeweval.instructor.questions.header=Elementos Evaluador/Profesor:
+previeweval.instructor.1=Profesor 1
+previeweval.instructor.2=Profesor 2
+previeweval.ta.1=Profesor Asistente 1
+previeweval.ta.2=Profesor Asistente 2
+previeweval.evaluation.note.title=Nota:
+previeweval.evaluation.note=Las preguntas son agrupadas y mostradas por categor\u00EDa, en el siguiente orden: 'Grupo/Curso', Profesor, Asistente. En esta vista previa, los conjuntos repetidos de preguntas para profesores y tutores ser\u00E1n indicados por dos marcadores que son reemplazados por los nombres de los profesores o asistentes seleccionados en la evaluaci\u00F3n del estudiante. Si se ha elegido evaluar s\u00F3lo un profesor o asistente, el segundo grupo de preguntas no se mostrar\u00E1 a los estudiantes.
 
-
 # Control items
 controlitems.page.title=Mis Elementos
 controlitems.items.header=Elementos
@@ -410,13 +581,47 @@
 controlitems.items.owner.title=Propiertario
 controlitems.items.expert.title=Experto
 controlitems.copy.user.message=Elemento copiado ({0}) a un nuevo elemento ({1})
+controlitems.items.classification.title=Clasificaci\u00F3n
 
+# Control Expert Items
+controlexpertitems.page.title=Grupos de elementos de experto
+controlexpertitems.page.category=Categor\u00EDa
+controlexpertitems.page.objective=Objetivo
+controlexpertitems.page.description=Descripci\u00F3n
+controlexpertitems.page.items=Elementos
+controlexpertitems.page.action=Acci\u00F3n
+controlexpertitems.display.items=Mostrar Elementos
+controlexpertitems.page.owner=Propietario
+controlexpertitems.add.button=A\u00F1adir categor\u00EDa
+controlexpertitems.add.objective=A\u00F1adir objetivo
 
+# Modify Expert Item
+modifyexpertitem.page.title=A\u00F1adir / Editar grupo de elementos de experto
+modifyexpertitem.add.location=A\u00F1adiendo elemento de Jerarqu\u00EDa debajo de "{0}"
+modifyexpertitem.modify.location=Modificando nodo de Jerarqu\u00EDa "{0}"
+modifyexpertitem.title.label=T\u00EDtulo
+modifyexpertitem.title.cat.label=Categor\u00EDa
+modifyexpertitem.title.obj.label=Objetivo
+modifyexpertitem.description.label=Descripci\u00F3n
+modifyexpertitem.save=Guardar grupo de elementos
+modifyexpertitem.cancel=Cancelar
+
+# Display Items within an Item Group
+previewexpertitem.page.title=Mostrar elementos dentro del grupo de elementos de experto.
+previewexpertitem.cancel=Cancelar
+
+# Expert Item remove confirmation screen
+removeexpertitem.page.title=Eliminar grupo de elementos de experto
+removeexpertitem.confirm.text=\u00BFEst\u00E1s seguro que quieres eliminar el grupo de elementos de experto "{0}"? El borrado es permanente.
+removeexpertitem.remove.scale.button=Eliminar
+# 0=expert item title
+removeexpertitem.removed.user.message=El grupo de elementos de experto ({0}) ha sido eliminado
+
 # Add/Edit Items
 modifyitem.page.title=A\u00F1adir/Editar Elemento
 modifyitem.item.header=Elemento:
-modifyitem.item.added.by.owner=A\u00E1adido por {0}
-modifyitem.added.by=a\u00E1adido por
+modifyitem.item.added.by.owner=A\u00F1adido por {0}
+modifyitem.added.by=a\u00F1adido por
 modifyitem.question.text.header=Pregunta de Texto :
 modifyitem.item.text.header=Elemento Texto
 modifyitem.item.text.instruction=(Esta es la pregunta o cuesti\u00F3n a las que el evaluador te responder\u00E1)
@@ -429,6 +634,7 @@
 modifyitem.item.expert.instruction=(indica que este elemento ha sido creado por un experto)
 modifyitem.item.expert.desc.header=Descripci\u00F3n de Experto
 modifyitem.item.expert.desc.instruction= (describe el uso apropiado de este elemento para crear plantillas)
+modifyitem.item.expert.itemgroup.header=Grupo de elementos de experto
 modifyitem.display.hint.header=Consejos de ajuste de visualizaci\u00F3n
 modifyitem.display.hint.instruction=Estos ajustes opcionales permiten al autor del elemento proporcionar trucos de como se puede mostrar este elemento.
 modifyitem.display.header=Ajuste de Visualizaci\u00F3n
@@ -444,6 +650,10 @@
 modifyitem.environment.category=Entorno/Habitaci\u00F3n
 modifyitem.remove.link=Eliminar
 modifyitem.results.sharing.header=Compartir los resultados:
+modifyitem.results.sharing.admin=Administrativo
+modifyitem.results.sharing.admin.short=Administrador
+modifyitem.results.sharing.student=Estudiante
+modifyitem.results.sharing.both=Ambos
 modifyitem.hierarchy.assign.header=Asignaci\u00F3n de la jerarqu\u00EDa :
 modifyitem.preview.button=Previsualizar elemento
 modifyitem.save.button=Guardar elemento
@@ -459,6 +669,7 @@
 modifytemplate.preview.eval.link.title=Enlace Directo para previsualizar plantilla como una evaluaci\u00F3n
 modifytemplate.preview.eval.desc=\ de esta plantilla como una evaluaci\u00F3n
 modifytemplate.level.header= Nivel {0} - Elementos existentes{1} 
+modifytemplate.level.header.items=elementos existentes
 modifytemplate.add.item.button=A\u00F1adir
 modifytemplate.begin.eval.link=Nueva evaluaci\u00F3n
 modifytemplate.begin.eval.link.title=Crear una nueva evaluaci\u00F3n usando esta plantilla
@@ -467,12 +678,16 @@
 modifytemplate.modify.title.desc.link=Editar
 modifytemplate.modify.title.desc.link.title=Editar Plantilla T\u00EDtulo/Descripci\u00F3n
 modifytemplate.item.checkbox.title=Marcar elemento para usar en el bloque
+modifytemplate.item.edit=Editar este elemento
+modifytemplate.item.delete=Borrar este elemento
+modifytemplate.item.preview=Vista previa de este elemento
 modifytemplate.item.category.title=Categor\u00EDa:
-modifytemplate.item.owner.title=Propiertario:
+modifytemplate.item.category.tooltip=Categor\u00EDa: {0}
+modifytemplate.item.owner.title=Propietario:
 modifytemplate.item.resultssharing.title=Compartir los resultados:
-modifytemplate.item.owner.title=Propietario:
 modifytemplate.item.scale.type.title=Tipo de Escala:
 modifytemplate.item.options=Opciones:
+
 modifytemplate.item.na.note=NA
 modifytemplate.item.comment.note=Comentario
 modifytemplate.item.hierarchy.level.title=Nivel Jer\u00E1rquico:
@@ -487,7 +702,21 @@
 modifytemplate.button.createblock=Crear Bloque
 modifytemplate.button.createblock.title=Crear un elemento de bloque usando los elementos que han sido seleccionados
 modifytemplate.select.order.title=Elegir un nuevo orden para este elemento
+modifytemplate.group.cannot.add.item=Lo sentimos, este elemento no puede ser agrupado aqu\u00ED. No es del mismo tipo que el resto de elementos agrupados.
+modifytemplate.group.add.newitem=A\u00F1adir nuevo elemento
+modifytemplate.group.add.existingitem=A\u00F1adir elemento existente
+modifytemplate.group.add.existingitem.confirm=\u00BFEst\u00E1 seguro de que quiere a\u00F1adir este elemento a este grupo?
+modifytemplate.group.no.itemstoadd=No hay elementos para a\u00F1adir a este grupo.
+modifytemplate.group.add.selection=Seleccione los elementos existentes que desea a\u00F1adir a un grupo
+modifytemplate.group.add.select.all=Seleccionar todo
+modifytemplate.group.add.select.none=Deseleccionar todo
+modifytemplate.group.show=[Mostrar elementos hijos]
+modifytemplate.group.hide=[Ocultar elementos hijos]
+modifytemplate.group.cannot.delete.item=Lo sentimos, los grupos deben contener por lo menos DOS elementos.
+modifytemplate.group.ungroup=Desagrupar
+modifytemplate.group.warn.minimum=Debe seleccionar por lo menos 2 elementos para crear un grupo.
 
+
 # Template Item display
 templateitem.scale.select.compact=Compacto
 templateitem.scale.select.compactc=Coloreado Compacto
@@ -500,6 +729,9 @@
 templateitem.response.select.size.3=3 l\u00EDneas
 templateitem.response.select.size.4=4 l\u00EDneas
 templateitem.response.select.size.5=5 l\u00EDneas
+templateitem.response.select.size.6=6 l\u00EDneas
+templateitem.response.select.size.7=7 l\u00EDneas
+templateitem.response.select.size.12=12 l\u00EDneas
 
 templateitem.saved.message=Elemento {0} guardado en plantilla
 templateitem.removed.message=Elemento eliminado de plantilla
@@ -539,8 +771,8 @@
 
 # Remove Item/Template Item View
 removeitem.page.title=Eliminar elemento
-removeitem.templateitem.confirmation=\u00BF Est\u00E1 seguro de querer eliminar el elemento {0} (mostrado a continuaci\00F3n) de {1}? El borrado es permanente.
-removeitem.item.confirmation=\u00BF Est\u00E1 seguro de querer eliminar el elemento mostrado a continuaci\00F3n? El borrado es permanente.
+removeitem.templateitem.confirmation=\u00BFEst\u00E1 seguro de querer eliminar el elemento {0} (mostrado a continuaci\00F3n) de {1}? El borrado es permanente.
+removeitem.item.confirmation=\u00BFEst\u00E1 seguro de querer eliminar el elemento mostrado a continuaci\00F3n? El borrado es permanente.
 removeitem.block.text=Los bloques hijo ser\u00E1n repartidos y emplazados dentro de la plantilla en la misma ubicaci\u00F3n que ocupa en el bloque y en el mismo orden
 removeitem.remove.item.button=Eliminar elemento
 removeitem.inuse.warning=Advertencia: este elemento esta actualmente en uso en {0} plantillas, su eliminaci\u00F3n causar\u00EDa que se dejara de mostrar en estas plantillas
@@ -596,7 +828,7 @@
 
 # Scale remove confirmation screen
 removescale.page.title=Eliminar Escala
-removescale.confirm.text=\u00BF Esta seguro de querer eliminar la escala "{0}"? El borrado es permanente.
+removescale.confirm.text=\u00BFEsta seguro de querer eliminar la escala "{0}"? El borrado es permanente.
 removescale.remove.scale.button=Eliminar
 removescale.inuse.warning=Advertencia: Esta escala esta actualmente en uso en {0} elementos, eliminarla causar\u00E1 que queden ocultos
 # 0=item.id, 1=item type, 2=item owner, 3=item text
@@ -612,8 +844,10 @@
 viewreport.view.csv=Exportar como CSV
 viewreport.view.xls=Exportar a Excel
 viewreport.view.pdf=Exportar a PDF
+viewreport.view.listofevaluationtakers=Exportar CSV de participantes de evaluaci\u00F3n
 viewreport.itemlist.course=Elementos de Curso/Grupo:
 viewreport.itemlist.instructor=Elementos de Profesor/Evaluador para {0}:
+viewreport.itemlist.ta=Elementos de Profesor Asistente para {0}:
 viewreport.viewinggroups=Ver Grupos: {0}
 viewreport.responses.count={0} respuestas
 viewreport.answers.percentage={0} ({1}%)
@@ -625,7 +859,9 @@
 viewreport.no.responses=No hay Respuestas
 viewreport.no.comments=No hay Comentarios
 viewreport.not.allowed=No puede ver los resultados de esta evaluaci\u00F3n para ninguno de los grupos a los que ha sido asignada
+viewreport.answers.mean = {0} respuestas, media = {1}
 
+
 #View Essay Responses view
 viewessay.page.title=Ver Respuestas de Ensayo
 
@@ -640,6 +876,8 @@
 reporting.pdf.accountinfo=Cuenta: {0} ( La cuenta de {1} )
 reporting.pdf.replyrate=Tasa de respuesta: {0}
 reporting.pdf.startdatetime=Comenzada: {0}
+reporting.pdf.enddatetime=Finalizada: {0}
+reporting.pdf.informationTitle=Resultados de la evaluaci\u00F3n
 item.classification.scaled=Escala de calificaci\u00F3n
 item.classification.text=Pregunta de texto libre / ensayo
 item.classification.multianswer=Respuesta M\u00FAltiple
@@ -648,9 +886,82 @@
 reporting.xls.sheetname=Resultados
 reporting.spreadsheet.course=Curso/Grupo
 reporting.spreadsheet.instructor=Profesor/Evaluador: {0}
+reporting.spreadsheet.ta=Profesor Asistente: {0}
 reporting.notapplicable.shortlabel=N/A
 reporting.notapplicable.longlabel=No Aplicable
+reporting.respondents.nologin=Lista no disponible: los participantes no tuvieron que validarse
 
+# Control Email
+controlemail.title=Controlar Notificaciones por Email
+controlemail.individual.emails=Enviar un correo por alumno y por evaluaci\u00F3n.
+controlemail.individual.emails.explain=Esto significa que un alumno recibir\u00E1 cinco correos si tiene cinco evaluaciones.
+controlemail.individual.emails.settings=Separar configuraci\u00F3n de los correos
+controlemail.consolidated.emails=Enviar correos de resumen (un email por alumno por plantilla de email).
+controlemail.consolidated.emails.explain=Esto significa que si un alumno tiene cinco evaluaciones del mismo tipo solamente recibir\u00E1 un correo resumen \
+acerca de ellas. Si tiene dos evaluaciones usando la plantilla de correo "Literatura" and cuatro evaluaciones usando la plantilla "Arte" , el alumno recibir\u00E1 dos correos resumen. 
+controlemail.consolidated.emails.settings=Configuraci\u00F3n consolidada del correo
+controlemail.consolidated.available.enabled=Enviar notificaciones cuando las evaluaciones se abran
+controlemail.next-reminder-date=Siguiente fecha de recordatorio
+controlemail.setting-reminder-date=Si esto muestra la fecha y la hora actual, los recordatorios no est\u00E1n programados. En ese caso, puedes seleccionar la primera vez \
+para enviar recordatorios configurando la fecha y la hora aqu\u00ED. La planificaci\u00F3n de los siguientes recordatorios se determinar\u00E1 por la frecuencia seleccionada.
+controlemail.use-admin-from-address=Usar la direcci\u00F3n de correo del administrador de evaluaciones como remitente (se usar\u00E1 la del sistema en otro caso)
+
+controlemail.batch.size=Numero de correos a procesar antes de la pausa
+controlemail.reminder.frequency=Enviar recordatorios
+controlemail.delivery.control=Entrega de correos
+controlemail.header=Opciones de entrega de correo
+controlemail.instructions=La implementaci\u00F3n de correo individual por estudiante (UM) usa una tarea Quartz diaria para procesar el correo. \
+Esta tarea debe estar en ejecuci\u00F3n cuando empieza la evaluaci\u00F3n.
+controlemail.log.progress.every=Registrar en el log el progreso del proceso del correo cada
+controlemail.log.recipients=Registrar en el log del servidor las direcciones de correo de los recipientes
+controlemail.page.title=Ajustes de env\u00EDo de correos
+controlemail.single.email.settings=Correo individual para cada estudiante
+controlemail.single.email=Activar correo individual para cada estudiante, por defecto se env\u00EDa un correo para cada grupo de cada evaluaci\u00F3n
+controlemail.title=Notificaciones de correo
+controlemail.send.submitted=Habilitar confirmaci\u00F3n de la entrega por email
+controlemail.options=Opciones de Correo
+controlemail.wait.interval=Number of seconds to pause before processing more email
+controlemail.reminder.defaults=Set the default reminder frequency to use for new evaluations
+
+controlemail.job-start-time=\u00BFCuando debe comenzar el procesado de los emails? 
+controlemail.start.hour.0=12 medianoche
+controlemail.start.hour.1=1 a.m.
+controlemail.start.hour.2=2 a.m.
+controlemail.start.hour.3=3 a.m.
+controlemail.start.hour.4=4 a.m.
+controlemail.start.hour.5=5 a.m.
+controlemail.start.hour.6=6 a.m.
+controlemail.start.hour.7=7 a.m.
+controlemail.start.hour.8=8 a.m.
+controlemail.start.hour.9=9 a.m.
+controlemail.start.hour.10=10 a.m.
+controlemail.start.hour.11=11 a.m.
+controlemail.start.hour.12=12 tarde
+controlemail.start.hour.13=1 p.m.
+controlemail.start.hour.14=2 p.m.
+controlemail.start.hour.15=3 p.m.
+controlemail.start.hour.16=4 p.m.
+controlemail.start.hour.17=5 p.m.
+controlemail.start.hour.18=6 p.m.
+controlemail.start.hour.19=7 p.m.
+controlemail.start.hour.20=8 p.m.
+controlemail.start.hour.21=9 p.m.
+controlemail.start.hour.22=10 p.m.
+controlemail.start.hour.23=11 p.m.
+
+controlemail.start.minutes.0=:00
+controlemail.start.minutes.5=:05
+controlemail.start.minutes.10=:10
+controlemail.start.minutes.15=:15
+controlemail.start.minutes.20=:20
+controlemail.start.minutes.25=:25
+controlemail.start.minutes.30=:30
+controlemail.start.minutes.35=:35
+controlemail.start.minutes.40=:40
+controlemail.start.minutes.45=:45
+controlemail.start.minutes.50=:50
+controlemail.start.minutes.55=:55
+
 # Control Email Templates
 controlemailtemplates.page.title=Mis Plantillas de Correo Electr\u00F3nico
 controlemailtemplates.show.defaults.link=Mostrar Plantillas por defecto
@@ -668,32 +979,10 @@
 modifyemail.modify.template.header=Editar plantilla de correo electr\u00F3nico {0}
 modifyemail.modify.text.instructions=Editar el texto sugerido para la plantilla de correo electr\u00F3nico. Por favor tenga en cuenta que al enviar el correo electr\u00F3nico los valores clave se sustituir\u00E1n con los valores reales. Usted puede usar estos valores en su plantilla de correo electr\u00F3nico.
 # this set of keys will be shown to the user so they know what replacements can be made in templates
-email.templates.field.names=\
-${CMSTitle} - El t\u00EDtulo local del Sistema de Gesti\u00F3n del Curso (e.g., CamTools, CTools) <br/>\
-${EarliestDueDate} - la fecha de vencimiento m\u00E1s temprana de las evaluaciones disponibles para un usuario <br/>\
-${EvalTitle} - el t\u00EDtulo de esta evaluaci\u00F3n <br/>\
-${EvalStartDate} - la fecha de comienzo de esta evaluaci\u00F3n <br/>\
-${EvalDueDate} - la fehca de vencimiento de esta evaluaci\u00F3n <br/>\
-${EvalResultsDate} - la fecha de visualizaci\u00F3n de resultados de esta evaluaci\u00F3n <br/>\
-${EvalGroupTitle} - el t\u00EDtulo del site/course/group/evalGroup al cual se ha asignado esta evaluaci\u00F3n para este usuario <br/>\
-${HelpdeskEmail} - la direcci\u00F3n de correo electr\u00F3nico para el centro de ayuda (o el contacto de soporte) <br/>\
-${ToolTitle} - el t\u00EDtulo de esta instancia de la herramienta de evaluaci\u00F3n (e.g., Cuestionarios de Aprendizaje, Evaluaciones de Curso) <br/>\
-${ToolSite}  - el sitio contiene la herramiento de evaluaci\u00F3n (e.g., Mi sitio de trabajo) <br/>\
-${URLtoAddItems} - La URL directa para que los evaluadores a\u00F1adan elementos evaluaciones asignadas desde abajo <br/>\
-${URLtoTakeEval} - La URL directa para que los evaluadores realicen esta evaluaci\u00F3n <br/>\
-${URLtoViewResults} - La URL directa para ver los resultado de esta evaluaci\u00F3n <br/>\
-${URLtoSystem} - La URL principal del sistema sobre el que est\u00E1 corriendo la evaluaci\u00F3n <br/>\
-${URLtoAddItems} - La URL directa para a\u00F1adir elementos a una evaluaci\u00F3n <br/>\
-${URLtoOptOut} - La URL directa para que los evaluadores puedan entrar para usar esta evaluaci\u00F3n <br/>\
-${URLtoMyWorkspaceDashboard} - La URL directa para acceder al panel de control de la Evaluaci\u00F3n en el sitio Mi sitio de trabajo del usuario <br/>\
-Special &lt;#if Var == "true"&gt; &lt;/#if&gt; variables:<br/>\
-ShowAddItemsText - ser\u00E1 "true" si el a\u00F1adir elementos de texto deber\u00EDa ser mostrado <br/>\
-ShowOptInText -  ser\u00E1 "true" si esta evaluaci\u00F3n es opt-in (exclusive with opt-in) <br/>\
-ShowOptOutText - ser\u00E1 "true" si esta evaluaci\u00F3n es opt-out (exclusive with opt-out) <br/>\
-
-modifyemail.template.subject=Asunto:
+email.templates.field.names=${EarliestEvalDueDate} - para cada email individual de un usuario, la fecha de entrega m\u00E1s temprana entre las evaluaciones disponibles para ese usuario <br/>${EvalCLE} - el nombre local de la plataforma donde se usa la herramienta de evaluaciones (p.ej., MiAulario) <br/>${EvalTitle} - el t\u00EDtulo de esta evaluaci\u00F3n <br/>${EvalStartDate} - la fecha de comienzo de esta evaluaci\u00F3n <br/>${EvalDueDate} - la fehca de vencimiento de esta evaluaci\u00F3n <br/>${EvalResultsDate} - la fecha de visualizaci\u00F3n de resultados de esta evaluaci\u00F3n <br/>${EvalGroupTitle} - el t\u00EDtulo del site/course/group/evalGroup al cual se ha asignado esta evaluaci\u00F3n para este usuario <br/>${EvalToolTitle} - el t\u00EDtulo de esta instancia de la herramienta de evaluaci\u00F3n (e.g., Cuestionarios de Aprendizaje, Evaluaciones de Curso) <br/>${EvalSite} - el sitio que contiene la herramienta de evaluaci\u00F3n (e.g., Mi sitio de trabajo) <br/>${HelpdeskEmail} - la direcci\u00F3n de correo electr\u00F3nico para el centro de ayuda (o el contacto de soporte) <br/>${MyWorkspaceDashboard} - La URL directa para acceder al panel de control de la Evaluaci\u00F3n en el sitio Mi sitio de trabajo del usuario <br/>${URLtoAddItems} - La URL directa para que los evaluadores a\u00F1adan elementos evaluaciones asignadas desde abajo <br/>${URLtoTakeEval} - La URL directa para que los evaluadores realicen esta evaluaci\u00F3n <br/>${URLtoViewResults} - La URL directa para ver los resultado de esta evaluaci\u00F3n <br/>${URLtoSystem} - La URL principal del sistema sobre el que est\u00E1 corriendo la evaluaci\u00F3n <br/>${URLtoAddItems} - La URL directa para a\u00F1adir elementos a una evaluaci\u00F3n <br/>${URLtoOptOut} - La URL directa para que los evaluadores puedan entrar para usar esta evaluaci\u00F3n <br/>Special &lt;#if Var == "true"&gt; &lt;/#if&gt; variables:<br/>ShowAddItemsText - ser\u00E1 "true" si el a\u00F1adir elementos de texto deber\u00EDa ser mostrado <br/>ShowOptInText -  ser\u00E1 "true" si esta evaluaci\u00F3n es opt-in (exclusive with opt-in) <br/>ShowOptOutText - ser\u00E1 "true" si esta evaluaci\u00F3n es opt-out (exclusive with opt-out) <br/>
 modifyemail.save.changes.link=Guardar Cambios
 modifyemail.reset.to.default.link=Resetear a la plantilla por defecto
+modifyemail.template.subject=Asunto:
 
 # Preview Email view
 previewemail.page.title=Previsualizar Correo Electr\u00F3nico
@@ -708,16 +997,26 @@
 takeeval.instructions.header=Instrucciones:
 takeeval.group.questions.header=Elementos de Grupo/Curso: 
 takeeval.instructor.questions.header=Elementos Evaluador/Profesor: {0}
+takeeval.assistant.questions.header=Elementos Profesor Asistente: {0}
 takeeval.submit.button=Enviar Evaluaci\u00F3n
 takeeval.user.cannot.take=No tiene permiso para realizar esta evaluaci\u00F3n ahora mismo
 takeeval.switch.group.header=Cambiar de grupo:
 takeeval.switch.group.button=Cambiar
 takeeval.eval.not.open=La evaluaci\u00F3n comienza el {0} y finaliza en {1}, por favor vuelva entre esas fechas
 takeeval.eval.closed=Evaluaci\u00F3n cerrada en {0} y no podr\u00E1 ser realizada
+takeeval.eval.site.notpublished=Esta evaluaci\u00F3n no est\u00E1 activa para ser completada o bien el sitio donde est\u00E1 la misma est\u00E1 actualmente sin publicarse. Si piensa que es lo segundo, por favor consulte con el responsable del sitio.
 takeeval.user.must.answer.all.note=Debe responder todos las preguntas de respuesta no-textual en esta evaluaci\u00F3n
-takeeval.user.blank.response.exception=You left all response items blank, you must fill in at least one to submit the evaluation
-takeeval.user.must.answer.all.exception= Puede dejar en blanco algunas preguntas de respuesta no-textual, todos los elementos de respuesta no-textual (indicados a continuaci\u00F3n) en esta evaluaci\u00F3n deben ser respondidos antes de poder enviar la evaluaci\u00F3n
+takeeval.user.must.answer.all.exception= Las preguntas se\u00F1aladas en rojo son de respuesta obligatoria. Deben ser completadas antes de enviar la evaluaci\u00F3n
+takeeval.user.blank.response.exception=Ha dejado todas las respuestas en blanco, debe rellenar por lo menos una para enviar la evaluaci\u00F3n
 takeeval.user.cannot.take.now.exception=No puede enviar respuestas para esta evaluaci\u00F3n ahora
+takeeval.user.cannot.save.reponse=No puede guardar esta respuesta ahora mismo, esto normalmente pasa al intentar guardar una respuesta que ya ha sido guardada antes.
+# Take Evaluation selection controls
+takeeval.selection.instructor.header.one=Seleccione un Profesor para evaluar:
+takeeval.selection.instructor.header.multiple=Seleccione Profesores para evaluar:
+takeeval.selection.assistant.header.one=Seleccione un Profesor Asistente para evaluar:
+takeeval.selection.assistant.header.multiple=Seleccione Profesores Asistentes para evaluar:
+takeeval.selection.warn=\u00BFEst\u00E1 seguro de que finalmente no quiere evaluar a XXX?
+takeeval.selection.dropdown=--- Seleccionar ---
 
 
 # Special RSF code for rendering exception
@@ -729,7 +1028,12 @@
    con el administrador de este sitio con los detalles del enlace sobre el que intent\u00F3 acceder y \
    cuando ocurri\u00F3 este error.
 
+GeneralAjaxChannelError=Lo sentimos, un error sucedi\u00F3 mientras se comunicaba con el servidor.\
+Sus cambios no fueron grabados. \n\n Error al mostrar p\u00E1gina desde: {0}.
 
+rsf.invalid.date=Por favor, introduzca una fecha v\u00E1lida.
+
+
 # Admin test page for providers
 admintesteg.page.title=Test EvalGroupProvider
 admintesteg.current.test.header=Actualmente
@@ -751,6 +1055,7 @@
 controlreporting.enable.csv.label=Habilitar Exportar CSV
 controlreporting.enable.xls.label=Habilitar Exportar XLS
 controlreporting.enable.pdf.label=Habilitar Exportar PDF
+controlreporting.enable.list.of.takers.label=Permitir Exportar la Lista de Participantes
 controlreporting.enable.pdfbanner.label=Incluir Im\u00E1gen del Banner en el PDF
 controlreporting.pdfbanner.location.label=Ruta de Recursos de la imagen. (Aseg\u00FArese que la imagen es p\u00fablicable)
 controlreporting.save=Guardar configuraci\u00F3n
@@ -761,15 +1066,14 @@
 controlhierarchy.page.title=Control de la Jerarqu\u00EDa
 controlhierarchy.table.selectnode.header=Seleccionar
 controlhierarchy.table.heirarchy.header=Nivel Jer\u00e1rquico
-controlhierarchy.table.additem.header=A\u00F1adir Elemento
-controlhierarchy.table.modifyitem.header=Modificar elemento
-controlhierarchy.table.itemslevel.header=Elementos en este nivel
-controlhierarchy.table.assigngroups.header=Asignar Grupos
-controlhierarchy.table.groupcount.header=N\u00FAm.Grupos
+controlhierarchy.table.nodes.header=Nodos
+controlhierarchy.table.groups.header=Grupos Asignados
+controlhierarchy.table.users.header=Usuarios Asignados
 controlhierarchy.add=A\u00F1adir
 controlhierarchy.modify=Modificar
+controlhierarchy.remove=Eliminar
 controlhierarchy.assigngroups=Asignar Grupos
-controlhierarchy.remove=Eliminar
+controlhierarchy.assignusers=Asignar Usuarios
 controlhierarchy.done=Hecho
 
 # Admin page for Adding and Modifying Hierarchy Nodes
@@ -789,6 +1093,33 @@
 hierarchynode.groups.save=Guardar Grupos Asignados
 hierarchynode.groups.cancel=Cancelar
 
+# Admin pages for hierarchy permissions
+modifynodeperms.breadcrumb.title=Modificar permisos de nodos
+modifynodeperms.page.title=Modificar los permisos de los nodos de la Jerarqu\u00EDa
+modifynodeperms.instructions=Introduce los nombres de usuario o los correos electr\u00F3nicos en la caja y selecciona los permisos a aplicar
+modifynodeperms.node.info={0} ({1})
+modifynodeperms.user.info.header=Informaci\u00F3n de usuario
+modifynodeperms.perms.header=Permisos
+modifynodeperms.actions.header=Acciones
+modifynodeperms.user.info={0} ({1})
+modifynodeperms.save.changes.button=Guardar
+modifynodeperms.cancel.changes.button=Cancelar
+modifynodeperms.remove.user.button=Eliminar usuario
+modifynodeperms.add.user.button=A\u00F1adir usuario
+modifynodeperms.error.no.user.eid=Tienes que introducir un nombre de usuario o correo v\u00E1lidos.
+modifynodeperms.error.no.perms.selected=Tienes que seleccionar al menos un permiso.
+modifynodeperms.error.user.has.perm=El usuario ({0}) ya tiene permisos para este nodo.
+modifynodeperms.success.user.added=El usuario ({0}) ha sido a\u00F1adido.
+modifynodeperms.success.user.removed=El usuario ({0}) ha sido eliminado.
+modifynodeperms.success.perms.saved=Permisos guardados para el usuario ({0}).
+
+# actual permissions
+modifynodeperms.perm.view.node=Ver nodo
+modifynodeperms.perm.view.tree=Ver \u00E1rbol
+modifynodeperms.perm.control.node=Controlar nodo
+modifynodeperms.perm.control.tree=Controlar \u00E1rbol
+modifynodeperms.perm.assign.eval=asignar Evaluaci\u00F3n
+
 # Page for creating and modifying Adhoc Groups
 modifyadhocgroup.page.title.new=Creando un nuevo grupo Adhoc
 modifyadhocgroup.page.title.existing=Modificando el grupo Adhoc {0}
@@ -803,3 +1134,74 @@
 usuario v\u00E1lidas o direcciones de correo electr\u00F3nico.
 modifyadhocgroup.message.badusers.noadhocusers=No se pudo agregar usuarios (0). Las entradas deben ser cuentas de \
 usuario v\u00E1lidas.
+modifyadhocgroup.message.existingusers={0} ya est\u00E1 en el grupo adhoc.
+modifyadhocgroup.message.notitle=El t\u00EDtulo para el grupo adhoc no puede estar en blanco
+modifyadhocgroup.message.emptygroup=No hay actualmente usuarios en este grupo adhoc.
+modifyadhocgroup.message.instructions=Por favor, introduzca un nombre del grupo y una lista de participantes.
+modifyadhocgroup.message.members=Por favor, introduzca en la caja inferior los nombres de usuarios o los correos electr\u00F3nicos de la gente que quiere a\u00F1adir (uno por l\u00EDnea).
+modifyadhocgroup.group.deleted = Grupo adhoc borrado
+
+# Page for evaluation notifications
+evalnotify.page.title=Mandar Notificaciones de las Evaluaciones
+# 0=eval title, 1=start date, 2=due date
+evalnotify.eval.info={0} ({1} - {2})
+# 0=group title
+evalnotify.group.info=Grupo: {0}
+evalnotify.send.to.list=Mandar mensaje a:
+evalnotify.send.to.non-respond=Participantes sin responder
+evalnotify.send.to.responded=Participantes que han respondido
+evalnotify.send.to.all=Todos los participantes
+evalnotify.send.emails=Enviar Emails
+evalnotify.all.required=Debe rellenar todos los campos antes de enviar el email
+# 0=number of emails sent
+evalnotify.sent.mails=Emails enviados a {0} usuarios
+
+# Page for evaluation responders
+evalresponders.page.title=Participantes de la Evaluaci\u00F3n
+# 0=eval title, 1=start date, 2=due date
+evalresponders.eval.info=Respuestas para {0} ({1} - {2})
+evalresponders.no.responses=Sin respuestas todav\u00EDa
+# 0=num responses, 1=num participants
+evalresponders.stats=({0} respuestas de {1} participantes)
+# 0=title of eval or group
+evalresponders.notifications.link=Enviar mensaje por email a {0} participantes
+# 0=group title
+evalresponders.group.title=Grupo: {0}
+evalresponders.user.name=Nombre de Usuario
+evalresponders.status=Status
+evalresponders.status.complete=Completado
+evalresponders.status.incomplete=Sin completar
+evalresponders.status.untaken=Sin empezar
+
+
+# Comment strings for the views that show items with a comment option
+comment.hide=Esconder este comentario
+comment.show=A\u00F1adir un comentario
+comment.edit=Editar mi comentario
+comment.label=Mi comentario:
+comment.warn=Su comentario no ser\u00E1 guardado si no contesta a esta pregunta (mostrada abajo)
+comment.show.tooltip=Por favor, responda a esta pregunta antes de escribir un comentario.
+
+# control eval admin
+controlevaladmin.page.title=Controlar Administradores de evaluaciones
+controlevaladmin.page.note=Nota: Los usuarios no pueden quitar sus propios privilegios de administrador. Los administradores de evaluaciones no pueden desasignarse, y los administradores de Sakai no pueden quitarse el acceso de administrador a Sakai.
+controlevaladmin.user.info.header=Informaci\u00F3n de usuario
+controlevaladmin.assignor.info.header=Informaci\u00F3n de asignador
+controlevaladmin.actions.header=Acciones
+controlevaladmin.sakai.admins.header=Administradores de Sakai
+controlevaladmin.user.info={0} ({1})
+controlevaladmin.assignor.info=Asignado por {0} en {1}
+controlevaladmin.unassign.button=Desasignar
+controlevaladmin.assign.button=Asignar
+controlevaladmin.user.eid.label=Asignar nuevo administrador de evaluaciones:
+controlevaladmin.message.success.assigning=El usuario ({0}) ha sido asignado como administrador de evaluaciones.
+controlevaladmin.message.success.unassigning=El usuario ({0}) ya no es administrador de evaluaciones.
+controlevaladmin.message.error.not.found=El usuario ({0}) no ha sido encontrado.
+controlevaladmin.message.error.unassigning=Ha habido un error al desasignar al usuario ({0}).
+controlevaladmin.message.error.already.assigned=El usuario ({0}) ya es administrador de evaluaciones.
+controlevaladmin.sakai.admin.access.status.enabled=El acceso del administrador de Sakai est\u00E1 habilitado.
+controlevaladmin.message.sakai.admin.access.enabled=El acceso del administrador de Sakai ha sido habilitado.
+controlevaladmin.sakai.admin.access.status.disabled=El acceso del administrador de Sakai est\u00E1 deshabilitado.
+controlevaladmin.message.sakai.admin.access.disabled=El acceso del administrador de Sakai ha sido deshabilitado.
+controlevaladmin.enable.sakai.admin.button=Habilitar
+controlevaladmin.disable.sakai.admin.button=Deshabilitar
Index: tool/src/java/org/sakaiproject/evaluation/tool/EvalToolConstants.java
===================================================================
--- tool/src/java/org/sakaiproject/evaluation/tool/EvalToolConstants.java	(revision 81848)
+++ tool/src/java/org/sakaiproject/evaluation/tool/EvalToolConstants.java	(working copy)
@@ -15,6 +15,7 @@
 package org.sakaiproject.evaluation.tool;
 
 import  org.sakaiproject.evaluation.constant.EvalConstants;
+import org.sakaiproject.util.ResourceLoader;
 
 /**
  * This class holds the tool constants only, application data constants come from
@@ -25,10 +26,10 @@
  * @author Aaron Zeckoski (aaronz at vt.edu)
  */
 public class EvalToolConstants {
-
+	private static ResourceLoader rl = new ResourceLoader("org.sakaiproject.evaluation.tool.bundle.messages");
     /**
      * This is the key which represents an unknown item
-     */
+     */
     public static String UNKNOWN_KEY = "unknown.caps";
 
     /**
@@ -133,8 +134,8 @@
     public static String[] EMAIL_TYPE_VALUES = new String[] {
         "multiple", "single"};
     public static String[] EMAIL_TYPE_LABELS = new String[] {
-        "Multiple emails per student - one email per response outstanding.",
-        "Single email per student - one email if any of a student's responses are outstanding."
+		rl.getString("evaltoolconstants.multiple.emails"),
+        rl.getString("evaltoolconstants.single.email")
     };
     public static final String SINGLE_EMAIL = "single";
     public static final String MULTIPLE_EMAILS = "multiple";
@@ -153,9 +154,10 @@
 
     // FIXME this should not be done this way, UM should put this in the messages file -AZ
     public static String[] EMAIL_DELIVERY_LABELS = new String[] {
-        "Send email. This mode should be used in production, when you do want to send email to real users.",
-        "Log email to the server log. This mode may be used in development to check the content of email messages.", 
-    "Do not send email. This mode may be used for safer testing, when you don't want to accidentally send email to real users."};
+		rl.getString("evaltoolconstants.send.email"),
+		rl.getString("evaltoolconstants.log.email"),
+		rl.getString("evaltoolconstants.do.not.send.email")
+		};
 
 	public static final String[] PULLDOWN_HOUR_VALUES = new String[] {
 		"0","1","2","3","4","5","6","7",
Index: tool/src/webapp/content/templates/administrate_email.html
===================================================================
--- tool/src/webapp/content/templates/administrate_email.html	(revision 81848)
+++ tool/src/webapp/content/templates/administrate_email.html	(working copy)
@@ -43,7 +43,7 @@
                         <span rsf:id="msg=controlemail.individual.emails.settings">One email per student per evaluation options</span>
                     </legend>
                 <p class=   "longtext indnt1">
-                            <label for="default-reminders-frequency-selection" class="block"> Set
+                            <label for="default-reminders-frequency-selection" class="block" rsf:id="msg=administrate.email.default.frequency"> Set
                                 the default reminder frequency to use for new evaluations </label>
                             <select rsf:id="default-reminders-frequency-selection" id="default-reminders-frequency-selection"
                                 name="default-reminders-frequency-selection">
@@ -61,17 +61,17 @@
                 <p class=   "checkbox indnt1">
                         <input rsf:id="enable-job-completion-email" name="enable-job-completion-email"
                             id="enable-job-completion-email" value="true" type="checkbox" />
-                        <label for="enable-job-completion-email"> Enable an email to be sent to
+                        <label for="enable-job-completion-email" rsf:id="msg=administrate.job.completion.email"> Enable an email to be sent to
                             the evaluation admin when an email job has completed </label>
 				</p>
                 <p class=   "checkbox indnt1">
                         <input rsf:id="enable-reminder-status" name="enable-reminder-status" id="enable-reminder-status"
                             value="true" type="checkbox" />
-                        <label for="enable-reminder-status"> Enable the job status while
+                        <label for="enable-reminder-status" rsf:id="msg=administrate.enable.reminder.status"> Enable the job status while
                             reminders are running. </label>
                 </p>
                 <p class=   "longtext indnt1">
-                        <label for="eval-time-to-wait-secs" class="block"> The time in seconds
+                        <label for="eval-time-to-wait-secs" class="block" rsf:id="msg=administrate.email.time.wait.secs"> The time in seconds
                             between the creation of an evaluation and the send of the available
                             notification, default 300 (5 mins) </label>
                         <input rsf:id="eval-time-to-wait-secs" id="eval-time-to-wait-secs" maxlength="5"
@@ -81,7 +81,7 @@
                  <p class="checkbox indnt1">
                         <input rsf:id="allow-eval-begin-email" name="allow-eval-begin-email" id="allow-eval-begin-email"
                             value="true" type="checkbox" />
-                        <label for="allow-eval-begin-email"> Allow users to choose whether to
+                        <label for="allow-eval-begin-email" rsf:id="msg=administrate.email.allow.initial.notification.override"> Allow users to choose whether to
                             send an initial email notification when creating an evaluation
                             (otherwise an email notification will always be sent when the
                             evaluation opens) </label>
Index: tool/src/webapp/content/templates/summary.html
===================================================================
--- tool/src/webapp/content/templates/summary.html	(revision 81848)
+++ tool/src/webapp/content/templates/summary.html	(working copy)
@@ -167,13 +167,12 @@
 	      						<table cellspacing="0" cellpadding="0" width="99%" class="listHier  lines nolines" border="0">
 	      							<thead>
 	      								<tr>
-	      									<th>Title</th>
-	      									<th>Status</th>
-	      									<th>Date</th>
+	      									<th rsf:id="evaladmin-header-title">Title</th>
+	      									<th rsf:id="evaladmin-header-status">Status</th>
+	      									<th rsf:id="evaladmin-header-date">Date</th>
 	      								</tr>
 	      							</thead>
-	      							<tbody>
-	      								<tr rsf:id="evalAdminList:">
+	      							<tbody>	      								<tr rsf:id="evalAdminList:">
 	      									<td align="left" width="50%">
 	      									<a rsf:id="evalAdminTitleLink_edit" href="evaluation_settings.html">Evaluation Title</a>
 	      									<a rsf:id="evalAdminTitleLink_preview" href="preview_eval.html">Title (preview)</a>


More information about the sakai-dev mailing list