Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of marking text for translation in Angular?
Marking text for translation tells Angular which parts of the app's text should be translated into different languages. It helps tools extract these texts for translators.
Click to reveal answer
beginner
How do you mark a simple text for translation in an Angular template?
You add the i18n attribute to the HTML element containing the text, like <h1 i18n>Hello</h1>.
Click to reveal answer
beginner
What is the role of the i18n attribute in Angular templates?
The i18n attribute marks the element's content for translation extraction and replacement during the build process.
Click to reveal answer
intermediate
How can you mark a placeholder text inside an input element for translation?
You add the i18n-placeholder attribute to the input element, like <input placeholder="Name" i18n-placeholder>.
Click to reveal answer
intermediate
Why is it important to provide a description or meaning with the i18n attribute?
Providing a description or meaning helps translators understand the context of the text, leading to better and accurate translations.
Click to reveal answer
Which attribute do you add to an HTML element to mark its text for translation in Angular?
Ang-translate
Bi18n
Ctranslate
Dlocalize
✗ Incorrect
The i18n attribute is the standard way in Angular to mark text for translation.
How do you mark the placeholder text of an input element for translation?
AAdd <code>i18n</code> to the input element
BUse <code>ng-translate-placeholder</code>
CWrap placeholder in <code><translate></code> tags
DAdd <code>i18n-placeholder</code> attribute
✗ Incorrect
Angular uses i18n-placeholder to mark placeholder text for translation.
What happens to text marked with i18n during Angular's build process?
AIt is ignored
BIt is removed from the app
CIt is extracted for translation and replaced with translated text
DIt is converted to uppercase
✗ Incorrect
Text marked with i18n is extracted for translators and replaced with translated versions during build.
Why might you add a description or meaning to an i18n attribute?
ATo help translators understand context
BTo disable translation
CTo make the text bold
DTo style the text
✗ Incorrect
Descriptions help translators know the context, improving translation quality.
Which of these is NOT a valid way to mark text for translation in Angular?
AUsing <code>translate</code> attribute
BUsing <code>i18n-placeholder</code> for placeholders
CUsing <code>i18n</code> attribute
DAdding meaning and description in <code>i18n</code> attribute
✗ Incorrect
The translate attribute is not used by Angular for marking text for translation.
Explain how to mark text and placeholders for translation in Angular templates.
Think about attributes added to HTML tags.
You got /3 concepts.
Why is marking text for translation important in Angular apps?
Consider the goal of internationalization.
You got /3 concepts.
Practice
(1/5)
1. What is the primary purpose of the i18n attribute in Angular templates?
easy
A. To mark text for translation in the app
B. To style text with international fonts
C. To add animations to text elements
D. To bind data to the text content
Solution
Step 1: Understand the role of i18n in Angular
The i18n attribute is used to mark text that should be translated for different languages.
Step 2: Differentiate from other attributes
It is not related to styling, animations, or data binding, which are handled by other Angular features.
Final Answer:
To mark text for translation in the app -> Option A
Quick Check:
i18n attribute = mark text for translation [OK]
Hint: Remember: i18n means internationalization for translation [OK]
Common Mistakes:
Confusing i18n with styling or animations
Thinking i18n binds data instead of marking text
Assuming i18n is a directive instead of an attribute
2. Which of the following is the correct syntax to mark a paragraph for translation with a description in Angular?
easy
A.
Welcome to our site!
B.
Welcome to our site!
C.
@@desc
D.
Welcome to our site!
Solution
Step 1: Recognize the correct i18n attribute format
The i18n attribute can include a description or meaning using the syntax i18n="@@desc" to help translators.
Step 2: Check each option's syntax
Welcome to our site!
correctly uses i18n="@@desc" inside the paragraph tag. Options B, C, and D misuse the attribute or place description incorrectly.
Final Answer:
<p i18n="@@desc">Welcome to our site!</p> -> Option D
Quick Check:
Correct i18n syntax with description =
Welcome to our site!
[OK]
Hint: Use i18n="@@description" inside the tag for descriptions [OK]
Common Mistakes:
Placing description outside the tag
Using i18n-desc instead of i18n
Confusing description with translation key
3. Given the template code:
<h1 i18n="@@titleDesc">Hello, user!</h1>
What will Angular do with this text during the build process?
medium
A. Throw a syntax error because of the @@ prefix
B. Display 'Hello, user!' without any translation
C. Extract 'Hello, user!' for translation with the description 'titleDesc'
D. Ignore the i18n attribute and render the text as is
Solution
Step 1: Understand Angular's i18n extraction
Angular extracts text marked with i18n for translation and uses the description (after @@) to help translators identify the text.
Step 2: Analyze the given code
The text 'Hello, user!' will be extracted with the description 'titleDesc' for translation files. No syntax error occurs because @@ is valid for description keys.
Final Answer:
Extract 'Hello, user!' for translation with the description 'titleDesc' -> Option C
Quick Check:
i18n extracts text with description = Extract 'Hello, user!' for translation with the description 'titleDesc' [OK]
Hint: @@ means description key for translators in i18n [OK]
Common Mistakes:
Thinking @@ causes syntax errors
Assuming text is not extracted for translation
Believing i18n attribute is ignored at build
4. Identify the error in this Angular template snippet for translation:
<button i18n="Submit button">Submit</button>
medium
A. The i18n attribute should be written as i18n-desc
B. The description should be inside @@, like i18n="@@Submit button"
C. The text 'Submit' should be inside double curly braces {{}}
D. The i18n attribute must be on a <span>, not a <button>
Solution
Step 1: Check the i18n attribute format
The description or meaning for translation keys must be prefixed with @@ inside the i18n attribute, e.g., i18n="@@Submit button".
Step 2: Validate other options
i18n can be used on any element, including button. Text does not require curly braces for static content. The attribute i18n-desc is not valid.
Final Answer:
The description should be inside @@, like i18n="@@Submit button" -> Option B
Quick Check:
Description needs @@ prefix in i18n attribute [OK]
Hint: Descriptions in i18n need @@ prefix inside quotes [OK]
Common Mistakes:
Omitting @@ prefix for descriptions
Thinking i18n only works on <span> elements
Using i18n-desc instead of i18n
5. You want to mark multiple pieces of text in an Angular template for translation, each with a unique description. Which approach correctly applies this?
hard
A.
Welcome
This is the intro paragraph.
B.
Welcome
This is the intro paragraph.
C.
Welcome
This is the intro paragraph.
D.
Welcome
This is the intro paragraph.
Solution
Step 1: Use unique descriptions with @@ in i18n attribute
Angular uses the syntax i18n="@@description" to add unique descriptions for each translatable text.
Step 2: Evaluate each option
Welcome
This is the intro paragraph.
correctly uses i18n="@@headerDesc" and i18n="@@introDesc".
Welcome
This is the intro paragraph.
uses invalid i18n-desc.
Welcome
This is the intro paragraph.
misses @@ prefix.
Welcome
This is the intro paragraph.
uses plain text instead of description keys.
Final Answer:
<h2 i18n="@@headerDesc">Welcome</h2>
<p i18n="@@introDesc">This is the intro paragraph.</p> -> Option A
Quick Check:
Use i18n="@@uniqueDescription" for each text [OK]
Hint: Use @@ prefix in i18n for unique translation descriptions [OK]
Common Mistakes:
Using i18n-desc instead of i18n
Omitting @@ prefix for descriptions
Putting descriptions as plain text in i18n attribute