# Text Templating In ABP Framework, `text template` is a mixture of text blocks and control logic that can generate a `string` result. An open source package [Scriban](https://github.com/lunet-io/scriban) is used for the control logic and [Abp.Localization](Localization.md) is used to make content easily localizable. The generated string can be text of any kind, such as a web page, an e-mail content etc. > **stored content** ```html
{{L "PasswordResetInfoInEmail"}}
``` ### Localization You can localize your Text Templates by choosing two different method. - `Inline Localization` - `Multiple Content Localization` #### Inline Localization Inline localized Text Templates is using only one content resource, and it is using the `Abp.Localization` to get content in different languages/cultures. > Example Inline Localized Text Template: > > ForgotPasswordEmail.tpl ```html{{L "PasswordResetInfoInEmail"}}
``` #### Multiple Content Localization You can store your Text Templates for any culture in different content resource. > Example Multiple Content Localization > ForgotPasswordEmail / en.tpl ```htmlHello, this is a password changing email.
``` > ForgotPasswordEmail / tr.tpl ```htmlMerhaba, bu bir şifre yenileme e postasıdır.
``` ### Layout System It is typical to use the same layout for all emails. So, you can define a layout template. A text template can be layout for different text templates and also a text template may use a layout. A layout Text Template must have `{{content}}` area to render the child content. _(just like the `RenderBody()` in the MVC)_ > Example Email Layout Text Template ```html {{content}} ``` ## Definition a Text Template ## Getting Template Definitions ### Template Definition Manager ## Getting Template Contents ### Template Content Contributor ## Rendering