今天第一次在symfony 3项目上安装了KnpPaginatorBundle,并得到了奇怪的bug。而不是前一个和下一个按钮,我得到了“label_previous”.和"label_next“。我以前做过一些实验,将语言添加到config.yml中,但是在今天恢复它们之后,我仍然没有得到正确的按钮标签。
还有我的config.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
# Put parameters here that don't need to change on each machine where the app is deployed
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: en
framework:
#esi: ~
#translator: { fallbacks: ['%locale%'] }
secret: '%secret%'
router:
resource: '%kernel.root_dir%/config/routing.yml'
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
#serializer: { enable_annotations: true }
templating:
engines: ['twig']
default_locale: '%locale%'
trusted_hosts: ~
trusted_proxies: ~
session:
# http://symfony.com/doc/current/reference/configuration/framework.html#handler-id
handler_id: session.handler.native_file
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
fragments: ~
http_method_override: true
assets: ~
php_errors:
log: true
# Twig Configuration
twig:
debug: '%kernel.debug%'
strict_variables: '%kernel.debug%'
form_themes:
- bootstrap_3_layout.html.twig
globals:
brands: '@list_brands'
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/../var/data/data.sqlite"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
#path: '%database_path%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
# Swiftmailer Configuration
swiftmailer:
transport: '%mailer_transport%'
host: '%mailer_host%'
username: '%mailer_user%'
password: '%mailer_password%'
spool: { type: memory }
#KNP
knp_paginator:
page_range: 5 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: 'KnpPaginatorBundle:Pagination:twitter_bootstrap_v3_pagination.html.twig' # sliding pagination controls template
sortable: 'KnpPaginatorBundle:Pagination:sortable_link.html.twig' # sort link templatetwitter_bootstrap_v3_pagination.html.twig文件
{#
/**
* @file
* Twitter Bootstrap v3 Sliding pagination control implementation.
*
* View that can be used with the pagination module
* from the Twitter Bootstrap CSS Toolkit
* http://getbootstrap.com/components/#pagination
*
* @author Pablo Díez <pablodip@gmail.com>
* @author Jan Sorgalla <jsorgalla@gmail.com>
* @author Artem Ponomarenko <imenem@inbox.ru>
* @author Artem Zabelin <artjomzabelin@gmail.com>
*/
#}
{% if pageCount > 1 %}
<ul class="pagination">
{% if previous is defined %}
<li>
<a rel="prev" href="{{ path(route, query|merge({(pageParameterName): previous})) }}">« {{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}</a>
</li>
{% else %}
<li class="disabled">
<span>« {{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}</span>
</li>
{% endif %}
{% if startPage > 1 %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): 1})) }}">1</a>
</li>
{% if startPage == 3 %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): 2})) }}">2</a>
</li>
{% elseif startPage != 2 %}
<li class="disabled">
<span>…</span>
</li>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page != current %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): page})) }}">{{ page }}</a>
</li>
{% else %}
<li class="active">
<span>{{ page }}</span>
</li>
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<li class="disabled">
<span>…</span>
</li>
{% else %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): (pageCount - 1)})) }}">{{ pageCount -1 }}</a>
</li>
{% endif %}
{% endif %}
<li>
<a href="{{ path(route, query|merge({(pageParameterName): pageCount})) }}">{{ pageCount }}</a>
</li>
{% endif %}
{% if next is defined %}
<li>
<a rel="next" href="{{ path(route, query|merge({(pageParameterName): next})) }}">{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }} »</a>
</li>
{% else %}
<li class="disabled">
<span>{{ 'label_next'|trans({}, 'KnpPaginatorBundle') }} »</span>
</li>
{% endif %}
</ul>
{% endif %}发布于 2017-06-15 02:20:53
此模板文件twitter_bootstrap_v3_pagination.html.twig使用trans小枝筛选器获取标签的名称。例如,您可以在以下部分看到这一点:
<span>« {{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}</span>
trans过滤器(reference.html#trans)试图在特定的上下文中定位翻译的配置文件。您的上下文是KnpPaginatorBundle,因此它将在这个包中搜索一个翻译文件。看看这里:https://github.com/KnpLabs/KnpPaginatorBundle/tree/master/Resources/translations。
每个区域设置都有一个翻译文件,但如果应用程序默认区域设置不在此列表中,则不会进行翻译。
但是,如果您的区域设置为en,并且仍然无法工作,您可以自己制作模板并手动放置标签。
在三个简单的步骤中这样做。
1:在app/Resources/views文件夹下创建一个名为pagination.twig.html (或类似的文件)的新文件。
2:复制文件twitter_bootstrap_v3_pagination.html.twig的代码并粘贴到新创建的文件中。然后,更改引用trans过滤器的行。示例:
线:<span>« {{ 'label_previous'|trans({}, 'KnpPaginatorBundle') }}</span>
您应该编辑到:<span>« Previous</span>
3:在app/config/config.yml中更改knp_paginator/app/config/config.yml/分页键中的文件。应该是这样的:
#KNP
knp_paginator:
page_range: 5 # default page range used in pagination control
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
pagination: 'pagination.html.twig'
sortable: 'KnpPaginatorBundle:Pagination:sortable_link.html.twig' # sort link templatehttps://stackoverflow.com/questions/44554573
复制相似问题