asker-tool 2.1.5 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -17
  3. data/bin/asker +2 -1
  4. data/lib/asker/ai/ai.rb +10 -3
  5. data/lib/asker/ai/ai_calculate.rb +20 -6
  6. data/lib/asker/ai/code/base_code_ai.rb +104 -0
  7. data/lib/asker/{code/ai → ai/code}/code_ai_factory.rb +11 -1
  8. data/lib/asker/{code/ai → ai/code}/javascript_code_ai.rb +2 -5
  9. data/lib/asker/ai/code/problem_code_ai.rb +176 -0
  10. data/lib/asker/{code/ai → ai/code}/python_code_ai.rb +2 -5
  11. data/lib/asker/{code/ai → ai/code}/ruby_code_ai.rb +14 -7
  12. data/lib/asker/{code/ai → ai/code}/sql_code_ai.rb +2 -5
  13. data/lib/asker/ai/concept_ai.rb +13 -3
  14. data/lib/asker/ai/question.rb +28 -6
  15. data/lib/asker/ai/stages/base_stage.rb +45 -6
  16. data/lib/asker/ai/stages/stage_b.rb +100 -50
  17. data/lib/asker/ai/stages/stage_d.rb +75 -90
  18. data/lib/asker/ai/stages/stage_f.rb +64 -36
  19. data/lib/asker/ai/stages/stage_i.rb +79 -92
  20. data/lib/asker/ai/stages/stage_s.rb +41 -36
  21. data/lib/asker/ai/stages/stage_t.rb +149 -108
  22. data/lib/asker/application.rb +19 -11
  23. data/lib/asker/cli.rb +31 -44
  24. data/lib/asker/data/code.rb +62 -0
  25. data/lib/asker/data/column.rb +31 -21
  26. data/lib/asker/data/concept.rb +109 -65
  27. data/lib/asker/data/data_field.rb +14 -0
  28. data/lib/asker/data/project_data.rb +63 -0
  29. data/lib/asker/data/row.rb +75 -52
  30. data/lib/asker/data/table.rb +91 -42
  31. data/lib/asker/data/template.rb +3 -1
  32. data/lib/asker/data/world.rb +51 -35
  33. data/lib/asker/displayer/code_displayer.rb +7 -0
  34. data/lib/asker/displayer/concept_ai_displayer.erb +10 -0
  35. data/lib/asker/displayer/concept_ai_displayer.rb +74 -53
  36. data/lib/asker/displayer/concept_displayer.rb +16 -9
  37. data/lib/asker/displayer/stats_displayer.rb +12 -3
  38. data/lib/asker/exporter/concept_ai_gift_exporter.rb +19 -11
  39. data/lib/asker/exporter/concept_ai_moodle_exporter.rb +44 -0
  40. data/lib/asker/exporter/concept_ai_yaml_exporter.rb +13 -6
  41. data/lib/asker/exporter/concept_doc_exporter.rb +14 -1
  42. data/lib/asker/exporter/data_gift_exporter.rb +29 -0
  43. data/lib/asker/exporter/output_file_exporter.rb +9 -6
  44. data/lib/asker/files/{config.ini → asker.ini} +48 -1
  45. data/lib/asker/files/example-concept.haml +0 -1
  46. data/lib/asker/files/language/du/connectors.yaml +81 -0
  47. data/lib/asker/{lang/locales/fr → files/language/du}/mistakes.yaml +1 -1
  48. data/lib/asker/files/language/du/templates.yaml +29 -0
  49. data/lib/asker/{lang/locales → files/language}/en/connectors.yaml +0 -0
  50. data/lib/asker/{lang/locales → files/language}/en/mistakes.yaml +0 -0
  51. data/lib/asker/files/language/en/templates.yaml +29 -0
  52. data/lib/asker/{lang/locales → files/language}/es/connectors.yaml +0 -0
  53. data/lib/asker/files/language/es/mistakes.yaml +84 -0
  54. data/lib/asker/files/language/es/templates.yaml +29 -0
  55. data/lib/asker/files/language/fr/connectors.yaml +76 -0
  56. data/lib/asker/{lang/locales/es → files/language/fr}/mistakes.yaml +0 -0
  57. data/lib/asker/files/language/fr/templates.yaml +29 -0
  58. data/lib/asker/{lang/locales → files/language}/javascript/connectors.yaml +0 -0
  59. data/lib/asker/{lang/locales → files/language}/javascript/mistakes.yaml +0 -0
  60. data/lib/asker/{lang/locales → files/language}/javascript/templates.yaml +0 -0
  61. data/lib/asker/{lang/locales → files/language}/math/connectors.yaml +0 -0
  62. data/lib/asker/{lang/locales → files/language}/math/mistakes.yaml +0 -0
  63. data/lib/asker/{lang/locales → files/language}/math/templates.yaml +0 -0
  64. data/lib/asker/{lang/locales → files/language}/python/connectors.yaml +0 -0
  65. data/lib/asker/{lang/locales → files/language}/python/mistakes.yaml +0 -0
  66. data/lib/asker/{lang/locales → files/language}/python/templates.yaml +0 -0
  67. data/lib/asker/{lang/locales → files/language}/ruby/connectors.yaml +0 -0
  68. data/lib/asker/{lang/locales → files/language}/ruby/mistakes.yaml +0 -0
  69. data/lib/asker/{lang/locales → files/language}/ruby/templates.yaml +0 -0
  70. data/lib/asker/{lang/locales → files/language}/sql/connectors.yaml +0 -0
  71. data/lib/asker/{lang/locales → files/language}/sql/mistakes.yaml +0 -0
  72. data/lib/asker/{lang/locales → files/language}/sql/templates.yaml +0 -0
  73. data/lib/asker/formatter/concept_doc_formatter.rb +0 -4
  74. data/lib/asker/formatter/concept_string_formatter.rb +7 -4
  75. data/lib/asker/formatter/moodle/matching.erb +38 -0
  76. data/lib/asker/formatter/moodle/multichoice.erb +49 -0
  77. data/lib/asker/formatter/moodle/shortanswer.erb +30 -0
  78. data/lib/asker/formatter/moodle/truefalse.erb +47 -0
  79. data/lib/asker/formatter/question_gift_formatter.rb +30 -20
  80. data/lib/asker/formatter/question_moodle_formatter.rb +27 -0
  81. data/lib/asker/{checker.rb → input_checker.rb} +126 -49
  82. data/lib/asker/lang/lang.rb +17 -10
  83. data/lib/asker/lang/lang_factory.rb +32 -5
  84. data/lib/asker/lang/text_actions.rb +87 -69
  85. data/lib/asker/loader/code_loader.rb +4 -4
  86. data/lib/asker/loader/content_loader.rb +21 -19
  87. data/lib/asker/loader/directory_loader.rb +1 -8
  88. data/lib/asker/loader/embedded_file.rb +42 -0
  89. data/lib/asker/loader/file_loader.rb +3 -14
  90. data/lib/asker/loader/haml_loader.rb +15 -0
  91. data/lib/asker/loader/image_url_loader.rb +8 -12
  92. data/lib/asker/loader/input_loader.rb +13 -15
  93. data/lib/asker/loader/project_loader.rb +25 -15
  94. data/lib/asker/logger.rb +36 -9
  95. data/lib/asker/skeleton.rb +23 -13
  96. data/lib/asker.rb +76 -42
  97. metadata +53 -54
  98. data/lib/asker/code/ai/base_code_ai.rb +0 -48
  99. data/lib/asker/code/code.rb +0 -53
  100. data/lib/asker/lang/locales/du/templates.yaml +0 -50
  101. data/lib/asker/lang/locales/en/templates.yaml +0 -29
  102. data/lib/asker/lang/locales/es/templates.yaml +0 -29
  103. data/lib/asker/lang/locales/fr/connectors.yaml +0 -92
  104. data/lib/asker/lang/locales/fr/templates.yaml +0 -29
  105. data/lib/asker/project.rb +0 -172
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../formatter/question_moodle_formatter'
4
+
5
+ # Export ConceptIA data to gift to moodlefile
6
+ module ConceptAIMoodleExporter
7
+ ##
8
+ # Export an array of ConceptAI objects from Project into Moodle format file
9
+ # @param concepts_ai (Array)
10
+ # @param project (Project)
11
+ def self.export_all(concepts_ai, project)
12
+ file = File.open(project.get(:moodlepath), 'w')
13
+ file.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
14
+ file.write("<quiz>\n")
15
+ file.write("<!--\n#{('=' * 50)}\n")
16
+ file.write(" Created by : #{Application::NAME}")
17
+ file.write(" (version #{Application::VERSION})\n")
18
+ file.write(" File : #{project.get(:moodlename)}\n")
19
+ file.write(" Time : #{Time.new}\n")
20
+ file.write(" Author : David Vargas Ruiz\n")
21
+ file.write("#{('=' * 50)}\n-->\n\n")
22
+
23
+ concepts_ai.each { |concept_ai| export(concept_ai, file) }
24
+
25
+ file.write("</quiz>\n")
26
+ file.close
27
+ end
28
+
29
+ ##
30
+ # Export 1 concept_ai from project
31
+ # @param concept_ai (ConceptAI)
32
+ # @param file (File)
33
+ # rubocop:disable Metrics/AbcSize
34
+ private_class_method def self.export(concept_ai, file)
35
+ return unless concept_ai.concept.process?
36
+
37
+ Application.instance.config['questions']['stages'].each do |stage|
38
+ concept_ai.questions[stage].each do |question|
39
+ file.write(QuestionMoodleFormatter.to_s(question))
40
+ end
41
+ end
42
+ end
43
+ # rubocop:enable Metrics/AbcSize
44
+ end
@@ -5,6 +5,10 @@ require_relative '../formatter/question_hash_formatter'
5
5
 
6
6
  # Use to export data from ConceptIA to YAML format
7
7
  module ConceptAIYAMLExporter
8
+ ##
9
+ # Export array of ConceptAI objects from Project to YAML output file
10
+ # @param concepts_ai (Array)
11
+ # @param project (Project)
8
12
  def self.export_all(concepts_ai, project)
9
13
  questions = []
10
14
  concepts_ai.each do |concept_ai|
@@ -13,16 +17,19 @@ module ConceptAIYAMLExporter
13
17
  params = { lang: project.get(:lang) ,
14
18
  projectname: project.get(:projectname) }
15
19
  output = { params: params, questions: questions }
16
- project.get(:yamlfile).write(output.to_yaml)
20
+
21
+ yamlfile = File.open(project.get(:yamlpath), 'w')
22
+ yamlfile.write(output.to_yaml)
23
+ yamlfile.close
17
24
  end
18
25
 
19
- def self.get_questions_from(concept_ai)
26
+ private_class_method def self.get_questions_from(concept_ai)
20
27
  data = []
21
- return data unless concept_ai.process?
22
- stages = Project.instance.stages
23
- stages.each_key do |stage|
28
+ return data unless concept_ai.concept.process?
29
+
30
+ Application.instance.config['questions']['stages'].each do |stage|
24
31
  concept_ai.questions[stage].each do |question|
25
- question.lang = concept_ai.lang
32
+ question.lang = concept_ai.concept.lang
26
33
  data << QuestionHashFormatter.to_hash(question)
27
34
  end
28
35
  end
@@ -7,9 +7,22 @@ require_relative '../formatter/concept_doc_formatter'
7
7
  module ConceptDocExporter
8
8
  ##
9
9
  # Export arrya of concepts to doc
10
- def self.export_all(concepts, file)
10
+ # rubocop:disable Metrics/AbcSize
11
+ # rubocop:disable Metrics/MethodLength
12
+ def self.export_all(concepts, project)
13
+ file = File.new(project.get(:lessonpath), 'w')
14
+ file.write('=' * 50 + "\n")
15
+ file.write("Created by : #{Application::NAME} (version #{Application::VERSION})\n")
16
+ file.write("File : #{project.get(:lessonname)}\n")
17
+ file.write("Time : #{Time.new}\n")
18
+ file.write("Author : David Vargas Ruiz\n")
19
+ file.write('=' * 50 + "\n")
20
+
11
21
  concepts.each do |concept|
12
22
  file.write(ConceptDocFormatter.to_s(concept)) if concept.process
13
23
  end
24
+ file.close
14
25
  end
26
+ # rubocop:enable Metrics/AbcSize
27
+ # rubocop:enable Metrics/MethodLength
15
28
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'concept_ai_gift_exporter'
4
+ require_relative 'code_gift_exporter'
5
+
6
+ # Export Data (ConceptIA and Code) to gift to outputfile
7
+ module DataGiftExporter
8
+ ##
9
+ # Export an array of Data (ConceptAI and Code objects) into GIFT outpufile
10
+ # @param data (Hash)
11
+ # @param project (Project)
12
+ def self.export_all(data, project)
13
+ file = File.open(project.get(:outputpath), 'w')
14
+ file.write('// ' + ('=' * 50) + "\n")
15
+ file.write("// Created by : #{Application::NAME}")
16
+ file.write(" (version #{Application::VERSION})\n")
17
+ file.write("// File : #{project.get(:outputname)}\n")
18
+ file.write("// Time : #{Time.new}\n")
19
+ file.write("// Author : David Vargas Ruiz\n")
20
+ file.write('// ' + ('=' * 50) + "\n\n")
21
+ category = Application.instance.config['questions']['category']
22
+ file.write("$CATEGORY: $course$/#{category}\n") unless category.nil?
23
+
24
+ ConceptAIGiftExporter.export_all(data[:concepts_ai], file)
25
+ CodeGiftExporter.export_all(data[:codes_ai], file)
26
+
27
+ file.close
28
+ end
29
+ end
@@ -1,7 +1,7 @@
1
- require_relative 'concept_ai_gift_exporter'
2
- require_relative 'code_gift_exporter'
1
+ require_relative 'concept_ai_moodle_exporter'
3
2
  require_relative 'concept_ai_yaml_exporter'
4
3
  require_relative 'concept_doc_exporter'
4
+ require_relative 'data_gift_exporter'
5
5
 
6
6
  # Export Output data:
7
7
  # * Gift (ConceptAI, Code)
@@ -9,10 +9,13 @@ require_relative 'concept_doc_exporter'
9
9
  # * Doc (txt)
10
10
  module OutputFileExporter
11
11
  def self.export(data, project)
12
- ConceptAIGiftExporter.export_all(data[:concepts_ai], project)
12
+ config = Application.instance.config
13
+ DataGiftExporter.export_all(data, project) if config['output']['gift'] == 'yes'
14
+ ConceptAIYAMLExporter.export_all(data[:concepts_ai], project) if config['output']['yaml'] == 'yes'
15
+ ConceptDocExporter.export_all(data[:concepts], project) if config['output']['doc'] == 'yes'
16
+ # ConceptAIGiftExporter.export_all(data[:concepts_ai], project) if config['output']['gift'] == 'yes'
17
+ # CodeGiftExporter.export_all(data[:codes_ai], project.get(:outputfile)) if config['output']['gift'] == 'yes'
13
18
  # UNDER DEVELOPMENT
14
- CodeGiftExporter.export_all(data[:codes], project.get(:outputfile))
15
- ConceptAIYAMLExporter.export_all(data[:concepts_ai], project)
16
- ConceptDocExporter.export_all(data[:concepts], project.get(:lessonfile))
19
+ ConceptAIMoodleExporter.export_all(data[:concepts_ai], project) if config['output']['moodle'] == 'yes'
17
20
  end
18
21
  end
@@ -1,9 +1,56 @@
1
1
  [global]
2
2
  ; Connect Google and download find images URLs
3
3
  ; Accept yes|no
4
- internet = no
4
+ internet = yes
5
+
6
+ ; Display on screen messages about program progress
7
+ ; Accept yes|no
8
+ verbose = yes
9
+ color = yes
10
+
11
+ ; Accept resume|default
12
+ show_mode = default
13
+
14
+ [output]
15
+ ; Output files will be save into output folder.
16
+ folder = output
17
+
18
+ ; List of output files
19
+ ; Accept yes|no
20
+ gift = yes
21
+ doc = yes
22
+ yaml = yes
23
+ moodle = yes
24
+
25
+ [languages]
26
+ ; Default code language
27
+ default = en
28
+
29
+ ; List of code languages to be loaded
30
+ ; Accept yes|no
31
+ en = yes
32
+ es = yes
33
+ fr = yes
34
+ du = yes
35
+ javascript = yes
36
+ math = no
37
+ python = yes
38
+ ruby = yes
39
+ sql = yes
40
+
41
+ [ai]
42
+
43
+ ; Concept formula weights to find neighbors: context, tags, tables
44
+ formula_weights = 1, 1, 1
5
45
 
6
46
  [questions]
47
+
48
+ ; List of values d,b,f,i,s,t
49
+ stages = d,b,f,i,s,t
50
+
51
+ ; Questions category
52
+ category =
53
+
7
54
  ; Exclude questions with this texts into their names.
8
55
  ; Accept Comma separated strings.
9
56
  exclude =
@@ -2,7 +2,6 @@
2
2
 
3
3
  %concept
4
4
  %names AC/DC, ACDC
5
- %tags single, seat, leg, backrest
6
5
  %tags rock, band, australia
7
6
  %def Australian rock band formed by Scottish-born brothers Malcolm and Angus Young
8
7
  %table{ :fields => 'members'}
@@ -0,0 +1,81 @@
1
+ ---
2
+ - '[*]'
3
+ - zu
4
+ - Wildleder
5
+ - niedrig
6
+ - jeden
7
+ - wie
8
+ - Wie
9
+ - mit
10
+ - gegen
11
+ - wann
12
+ - wie viel
13
+ - welcher
14
+ - von
15
+ - des
16
+ - schon
17
+ - seit
18
+ - e
19
+ - im
20
+ - zwischen
21
+ - er
22
+ - er
23
+ - sie
24
+ - Sie
25
+ - es
26
+ - ist
27
+ - Das
28
+ - Das
29
+ - jene
30
+ - Osten
31
+ - Dies
32
+ - ist
33
+ - diese
34
+ - Richtung
35
+ - bis
36
+ - um
37
+ - das
38
+ - was
39
+ - ihm
40
+ - Sie
41
+ - Mehr
42
+ - Plus
43
+ - mich
44
+ - ICH
45
+ - sehr
46
+ - Viele
47
+ - viel
48
+ - Nein
49
+ - wir
50
+ - USA
51
+ - oder
52
+ - zum
53
+ - aber
54
+ - durch
55
+ - Warum
56
+ - als
57
+ - WHO
58
+ - Ja
59
+ - ohne
60
+ - auf
61
+ - alles
62
+ - jeder
63
+ - nach dem
64
+ - Sie
65
+ - Ich
66
+ - weiß
67
+ - ihr
68
+ - deine
69
+ - Besitzen
70
+ - Bergwerk
71
+ - oder
72
+ - ein
73
+ - einer
74
+ - etwas
75
+ - ein
76
+ - Nagel
77
+ - Sie
78
+ - deine
79
+ - unsere
80
+ - und
81
+ - mich
@@ -23,7 +23,7 @@
23
23
  :hi: 'i'
24
24
  :ho: 'o'
25
25
  :hu: 'u'
26
- :i: 'í,y'
26
+ :i: 'y,l'
27
27
  :í: 'i,y'
28
28
  :j: 'g'
29
29
  :k: 'q'
@@ -0,0 +1,29 @@
1
+ ---
2
+ :none: 'keine Antwort ist richtig'
3
+ :error: 'Fehler'
4
+ :misspelling: 'Rechtschreibfehler'
5
+ :true: 'richtig'
6
+ :false: 'falsch'
7
+ :d1: 'Bedeutung: <i><%=text1%></i><br/> Wählen Sie die dazu passende Option aus, die am besten zu der vorstehenden Bedeutung passt.<br/>'
8
+ :d2: 'Bedeutung des Begriffs <b><%=text1%></b>:<br/> <i><%=text2%></i><br/>'
9
+ :d3: 'Bedeutung des Begriffs <b><%=text1%></b>:<br/> <i><%=text2%></i><br/></br><p>Bemerkung: Ein Fragezeichnen stellt einen Buchstaben dar, und ein Sternchen steht für ein Wort oder mehrere Wörter.</p>'
10
+ :d4: 'Bedeutung des Begriffs <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><br/>(Setzen Sie die Wörter in die Lücken ein)'
11
+ :b1: 'In Bezug auf den Begriff <b><%=text1%></b>, verbinden Sie "<%=text2%>" die passenden Begriffe "<%=text3%>".<br/>'
12
+ :f1: 'Die folgenden Elemente sind "<%=text2%>" des Begriffs <b><%=text1%></b>:<ul><li><%=text3%></li></ul>'
13
+ :f2: 'Die folgenden Elemente sind "<%=text2%>".<br/>Wählen Sie die Antwortmöglichkeit aus, die nicht zum Begriff <b><%=text1%></b> passt.'
14
+ :f3: 'Die folgenden Elemente sind "<%=text2%>" des Begriffs <b><%=text1%></b>:<br><p><%=text3%></p>(Setzen Sie die Wörter in die Lücken ein)'
15
+ :i1: '<%=text1%><br/>EWählen Sie die Antwortmöglichkeit, die am besten zu dem gezeigten Bild passt.<br/>'
16
+ :i2: '<%=text1%><br/>Das gezeigte Bild gehört zu <b><%=text2%></b>.'
17
+ :i3: '<%=text1%><br/>Setzen Sie die Antwort ein <%=text2%>, qdie am besten zu dem gezeigten Bild passt.<br/>'
18
+ :i4: '<%=text1%><br/>Bedeutung: <i><%=text2%></i><br/><br/>(Setzen Sie die Wörter in die Lücken ein)'
19
+ :s1: 'Beziehen Sie sich auf den Begriff <b><%=text1%></b>, und ordnen Sie die "<%=text2%>" richtigen Lösungen zu "<%=text3%>".<br/>'
20
+ :t1table: 'Begriff <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>Wählen Sie die richtige Lösung aus.<br/>'
21
+ :t2table: 'Begriff <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>EWählen Sie die richtige Lösung aus.<br/>'
22
+ :t3table: 'Begriff <b><%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>Wählen Sie die richtige Lösung aus.<br/>'
23
+ :t4table: 'Begriff <b><%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>EWählen Sie die richtige Lösung aus.<br/>'
24
+ :t5table: 'Begriff <b><%=text1%></b><br/>Die Lösung ist richtig:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
25
+ :t6table: 'Begriff <b><%=text1%></b><br/>Die Lösung ist richtig:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
26
+ :t7table: 'Begriff <b><%=text1%></b><br/>Die Lösung ist richtig:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
27
+ :t8table: 'Begriff <b><%=text1%></b><br/>Vervollständigen Sie / Schreiben Sie einen Begriff:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: [*]</li></ul>Escribir una palabra.<br/>'
28
+ :t9table: 'Begriff <b><%=text1%></b><br/>Verbinden Sie / Schreiben Sie fogende Begriffe:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: <%=text5%></li></ul>Escribir <%=text6%> palabras.<br/>'
29
+ :code1: '<pre><%=text1%></pre><br/><p>Nennen Sie die Nummer der Zeile, in der sich der erste Fehler befindet / Wenn es keinen Fehler gibt, setzen Sie 0 ein.</p>'
@@ -0,0 +1,29 @@
1
+ ---
2
+ :none: 'No correct'
3
+ :error: 'Error'
4
+ :misspelling: 'Misspelling'
5
+ :true: 'True'
6
+ :false: 'False'
7
+ :d1: 'Definition: <i><%=text1%></i><br/>Choose the best association for the previous definition.<br/>'
8
+ :d2: 'Definition of <b><%=text1%></b>:<br/> <i><%=text2%></i><br/>'
9
+ :d3: 'Definition of <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><p>Note: Every ? symbol represents one letter, and * severals.</p>'
10
+ :d4: 'Definition of <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><br/>(Put every word into the right position)'
11
+ :b1: 'Related with concept <b><%=text1%></b>, associate every "<%=text2%>" with their "<%=text3%>".<br/>'
12
+ :f1: 'The next items are "<%=text2%>" from <b><%=text1%></b> concept:<br/><ul><li><%=text3%></li></ul>'
13
+ :f2: 'The next items are "<%=text2%>".<br/>Choose the option that not belongs concept <b><%=text1%></b>.'
14
+ :f3: 'The next items are "<%=text2%>" from <b><%=text1%></b> concept:<br><p><%=text3%></p>(Put every word into the right position)'
15
+ :i1: '<%=text1%><br/>Choose the best association for the previous image.<br/>'
16
+ :i2: '<%=text1%><br/>The previous image/text corresponds to <b><%=text2%></b>.'
17
+ :i3: '<%=text1%><br/>Write the best answer <%=text2%>, for the previous image.<br/>'
18
+ :i4: '<%=text1%><br/>Definition:<br/> <i><%=text2%></i><br/><br/>(Put every word in the right text position)'
19
+ :s1: "About <b><%=text1%></b> concept, sort every \"<%=text2%>\", so It is true that \"<%=text3%>\".<br/>"
20
+ :t1table: '<b>Concept <%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>Choose the right answer.<br/>'
21
+ :t2table: '<b>Concept <%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>Choose the right answer.<br/>'
22
+ :t3table: '<b>Concept <%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>Choose the right answer.<br/>'
23
+ :t4table: '<b>Concept <%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>Choose the right answer.<br/>'
24
+ :t5table: '<b>Concept <%=text1%></b><br/>The next association is right:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
25
+ :t6table: '<b>Concept <%=text1%></b><br/>The next association is right:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
26
+ :t7table: '<b>Concept <%=text1%></b><br/>The next association is right:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
27
+ :t8table: '<b>Concept <%=text1%></b><br/>Complete the next association:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: [*]</li></ul>Write only one word.<br/>'
28
+ :t9table: '<b>Concept <%=text1%></b><br/>Complete the next association:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: <%=text5%></li></ul>Write <%=text6%> words.<br/>'
29
+ :code1: '<pre><%=text1%></pre><br/><p>Write the number of the first wrong line. Write 0 if there is no fail.</p>'
@@ -0,0 +1,84 @@
1
+ ---
2
+ :a: 'á,e,o,ha'
3
+ :"a ": 'as '
4
+ :"as ": 'a ,os '
5
+ :á: 'a,é,há'
6
+ :al: 'ar,la'
7
+ :ar: 'al'
8
+ :b: 'v'
9
+ :c: 's,k'
10
+ :ca: 'ka'
11
+ :ce: 'se,que'
12
+ :ci: 'si,qui'
13
+ :co: 'ko'
14
+ :cu: 'ku,qu'
15
+ :e: 'é'
16
+ :" e": 'he'
17
+ :é: 'e'
18
+ :" é": 'hé'
19
+ :"el ": 'er '
20
+ :"er ": 'el '
21
+ :g: 'j'
22
+ :h: ' '
23
+ :ha: 'a'
24
+ :he: 'e'
25
+ :hi: 'i'
26
+ :ho: 'o'
27
+ :hu: 'u'
28
+ :i: 'y'
29
+ :í: 'i,y'
30
+ :j: 'g'
31
+ :k: 'q,c'
32
+ :l: 'r'
33
+ :lla: 'ya'
34
+ :lle: 'ye'
35
+ :lli: 'yi'
36
+ :llo: 'yo'
37
+ :llu: 'yu'
38
+ :n: 'm,ñ'
39
+ :ñ: 'n'
40
+ :m: 'n'
41
+ :mb: 'nb'
42
+ :mp: 'np'
43
+ :o: 'ó,e'
44
+ :"o ": 'os '
45
+ :ó: 'o'
46
+ :ol: 'or'
47
+ :or: 'ol'
48
+ :os : 'o ,as '
49
+ :oha: 'oa'
50
+ :p: 'q,o'
51
+ :que: 'ke'
52
+ :qui: 'ki'
53
+ :s: 'z,a'
54
+ :sa: 'za'
55
+ :se: 'ce,ze'
56
+ :si: 'ci,zi'
57
+ :so: 'zo'
58
+ :su: 'zu'
59
+ :st: 'ts'
60
+ :t: 'f,p'
61
+ :u: 'ú'
62
+ :ú: 'u'
63
+ :ul: 'ur'
64
+ :ur: 'ul'
65
+ :v: 'b,w'
66
+ :w: 'v, gu'
67
+ :wa: 'gua'
68
+ :we: 'gue'
69
+ :wi: 'gui'
70
+ :wo: 'guo'
71
+ :x: 'ks,k,s'
72
+ :y: 'i,v'
73
+ :" y ": ' e '
74
+ :ya: 'lla'
75
+ :ye: 'lle'
76
+ :yi: 'lli'
77
+ :yo: 'llo'
78
+ :yu: 'llu'
79
+ :z: 's'
80
+ :za: 'sa'
81
+ :ze: 'se'
82
+ :zi: 'si'
83
+ :zo: 'so'
84
+ :zu: 'su'
@@ -0,0 +1,29 @@
1
+ ---
2
+ :none: 'Ninguna es correcta'
3
+ :error: 'Error'
4
+ :misspelling: 'Error ortográfico'
5
+ :true: 'Verdadero'
6
+ :false: 'Falso'
7
+ :d1: 'Definición: <i><%=text1%></i><br/>Elige la opción que mejor se corresponda con la definición anterior.<br/>'
8
+ :d2: 'Definición de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/>'
9
+ :d3: 'Definición de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/></br><p>Nota: Cada símbolo ? representa una letra, y * a una o varias palabras.</p>'
10
+ :d4: 'Definición de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><br/>(Coloca cada palabra en su posición correcta dentro del texto)'
11
+ :b1: 'En relación al concepto <b><%=text1%></b>, asocia cada "<%=text2%>" con su "<%=text3%>".<br/>'
12
+ :f1: 'Los siguientes elementos son "<%=text2%>" del concepto <b><%=text1%></b>:<ul><li><%=text3%></li></ul>'
13
+ :f2: 'Los siguientes elementos son "<%=text2%>".<br/>Selecciona la opción que no pertenezca al concepto <b><%=text1%></b>.'
14
+ :f3: 'Los siguientes elementos son "<%=text2%>" del concepto <b><%=text1%></b>:<br><p><%=text3%></p>(Coloca cada palabra en su posición correcta dentro del texto)'
15
+ :i1: '<%=text1%><br/>Elige la opción que mejor se corresponda con la imagen anterior.<br/>'
16
+ :i2: '<%=text1%><br/>La imagen/texto anterior corresponde a <b><%=text2%></b>.'
17
+ :i3: '<%=text1%><br/>Escribe la opción <%=text2%>, que mejor corresponda con la imagen anterior.<br/>'
18
+ :i4: '<%=text1%><br/>Definición: <i><%=text2%></i><br/><br/>(Coloca cada palabra en su posición correcta dentro del texto)'
19
+ :s1: 'En relación al concepto <b><%=text1%></b>, ordena cada/las/los "<%=text2%>" de modo que se cumpla el criterio "<%=text3%>".<br/>'
20
+ :t1table: 'Concepto <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>Elige la opción correcta.<br/>'
21
+ :t2table: 'Concepto <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: "<%=text4%>"<br/>Elige la opción correcta.<br/>'
22
+ :t3table: 'Concepto <b><%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>Elige la opción correcta.<br/>'
23
+ :t4table: 'Concepto <b><%=text1%></b><br/><%=text2%>: "<%=text3%>"<br/><%=text4%>: [*]<br/>Elige la opción correcta.<br/>'
24
+ :t5table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
25
+ :t6table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
26
+ :t7table: 'Concepto <b><%=text1%></b><br/>La asociación siguiente es correcta:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: "<%=text5%>"</li></ul>'
27
+ :t8table: 'Concepto <b><%=text1%></b><br/>Completa la siguiente asociación:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: [*]</li></ul>Escribir una palabra.<br/>'
28
+ :t9table: 'Concepto <b><%=text1%></b><br/>Completa la siguiente asociación:<br/><ul><li><%=text2%>: "<%=text3%>"</li><li><%=text4%>: <%=text5%></li></ul>Escribir <%=text6%> palabras.<br/>'
29
+ :code1: '<pre><%=text1%></pre><br/><p>Escribir el número de línea donde está el primer error. Escribir 0 si no hay ningún error.</p>'
@@ -0,0 +1,76 @@
1
+ ---
2
+ - '[*]'
3
+ - à
4
+ - au
5
+ - suède
6
+ - bas
7
+ - chaque
8
+ - comme
9
+ - comment
10
+ - avec
11
+ - contre
12
+ - quand
13
+ - combien
14
+ - qui
15
+ - de
16
+ - du
17
+ - depuis
18
+ - e
19
+ - dans
20
+ - entre
21
+ - il
22
+ - il
23
+ - elle
24
+ - ils
25
+ - "c'est"
26
+ - cette
27
+ - ceux
28
+ - est
29
+ - ce
30
+ - est
31
+ - celles-ci
32
+ - celles-ci
33
+ - vers
34
+ - la
35
+ - les
36
+ - quelle
37
+ - lui
38
+ - leur
39
+ - plus
40
+ - moi
41
+ - JE
42
+ - très
43
+ - beaucoup
44
+ - non
45
+ - nous
46
+ - États-Unis
47
+ - ou
48
+ - pour
49
+ - mais
50
+ - pour
51
+ - parce
52
+ - que
53
+ - quoi
54
+ - qui
55
+ - oui
56
+ - sur
57
+ - tout
58
+ - toutes
59
+ - après
60
+ - toi
61
+ - toi
62
+ - sa
63
+ - leur
64
+ - posséder
65
+ - mien
66
+ - ou
67
+ - une
68
+ - une
69
+ - certains
70
+ - ongle
71
+ - clou
72
+ - toi
73
+ - le
74
+ - notre
75
+ - et
76
+ - je
@@ -0,0 +1,29 @@
1
+ ---
2
+ :none: "Aucune réponse n'est correcte"
3
+ :error: 'Erreur'
4
+ :misspelling: 'Erreur ortographique'
5
+ :true: 'Vrai'
6
+ :false: 'Faux'
7
+ :d1: "Définition: <i><%=text1%></i><br/>Choisissez l'option qui correspond le mieux à la définition précédente.<br/>"
8
+ :d2: 'Définition de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/>'
9
+ :d3: 'Définition de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/></br><p>Note: Chaque symbole ? représente une lettre, et * un ou plusieurs mots.</p>'
10
+ :d4: 'Définition de <b><%=text1%></b>:<br/> <i><%=text2%></i><br/><br/>(Mettez chaque mot à la bonne position dans le texte)'
11
+ :b1: 'Par rapport au concept <b><%=text1%></b>, associez chaque "<%=text2%>" avec son,sa "<%=text3%>".<br/>'
12
+ :f1: 'Les éléments suivants sont "<%=text2%>" du concept <b><%=text1%></b>:<ul><li><%=text3%></li></ul>'
13
+ :f2: "Les éléments suivants sont \"<%=text2%>\".<br/>Sélectionnez l'option qui n'appartient pas au concept <b><%=text1%></b>."
14
+ :f3: 'Les éléments suivants sont "<%=text2%>" du concept <b><%=text1%></b>:<br><p><%=text3%></p>(Mettez chaque mot à la bonne position dans le texte)'
15
+ :i1: "<%=text1%><br/>Choisissez l'option qui correspond le mieux à l'image précédente.<br/>"
16
+ :i2: "<%=text1%><br/>L'image précédente correspond à <b><%=text2%></b>."
17
+ :i3: "<%=text1%><br/>Écrivez l'option <%=text2%>, qui correspond le mieux à l'image précédente.<br/>"
18
+ :i4: '<%=text1%><br/>Définition: <i><%=text2%></i><br/><br/>(Mettez chaque mot à la bonne position dans le texte)'
19
+ :s1: "Par rapport au concept <b><%=text1%></b>, mettez dans l'ordre chaque \"<%=text2%>\" afin que le critère soit rempli \"<%=text3%>\".<br/>"
20
+ :t1table: "Concept <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: \"<%=text4%>\"<br/>Choisissez l'option correcte.<br/>"
21
+ :t2table: "Concept <b><%=text1%></b><br/><%=text2%>: [*]<br/><%=text3%>: \"<%=text4%>\"<br/>Choisissez l'option correcte.<br/>"
22
+ :t3table: "Concept <b><%=text1%></b><br/><%=text2%>: \"<%=text3%>\"<br/><%=text4%>: [*]<br/>Choisissez l'option correcte.<br/>"
23
+ :t4table: "Concept <b><%=text1%></b><br/><%=text2%>: \"<%=text3%>\"<br/><%=text4%>: [*]<br/>Choisissez l'option correcte.<br/>"
24
+ :t5table: "Concept <b><%=text1%></b><br/>L'association suivante est correcte:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
25
+ :t6table: "Concept <b><%=text1%></b><br/>L'association suivante est correcte:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
26
+ :t7table: "Concept <b><%=text1%></b><br/>L'association suivante est correcte:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: \"<%=text5%>\"</li></ul>"
27
+ :t8table: "Concept <b><%=text1%></b><br/>Complétez l'association suivante:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: [*]</li></ul>Écrire un mot.<br/>"
28
+ :t9table: "Concept <b><%=text1%></b><br/>Complétez l'association suivante:<br/><ul><li><%=text2%>: \"<%=text3%>\"</li><li><%=text4%>: <%=text5%></li></ul>Écrire<%=text6%> mots.<br/>"
29
+ :code1: "<pre><%=text1%></pre><br/><p>Écrire le numéro de ligne où se trouve la première erreur. Écrire 0 s'il n'y a aucune erreur.</p>"