Skip to content

bug(gatsby-source-strapi): SingleType internationalization bug #376

@NevenaKirova

Description

@NevenaKirova

i changed the controller configuration in strapi using this function :
module.exports = ({ strapi }) => ({
async find(ctx) {
if (ctx.query.locale === 'all') {
const localesArray = await strapi.plugins.i18n.services.locales.find()
const locales = localesArray.map(locale => locale.code);

  let data = [];

  for (let locale of locales) {
    ctx.query.locale = locale;
    const response = await super.find(ctx);
    if (response) data.push(response.data);
  };

  const meta = {};
  return { data, meta };
}

return await super.find(ctx);

}
});

so i can get all the locales. It is kind of working but only for two pages. For the rest of the pages it either returns only the default locale or i can no longer see it in the Graphql schema. The problem with the data missing from graphql happens when i add


pluginOptions: {
	i18n: {
		locale: 'all',
	},
},

to the singleType configuration, which is needed, so i can get all locales.

{
        singularName: 'privacy-policy',
          queryParams: {
	          populate: '*',
          },
          pluginOptions: {
	          i18n: {
		          locale: 'all',
	          },
          },
 },
 {
        singularName: 'about',
        queryParams: {
	        populate: '*',
        },
        pluginOptions: {
	        i18n: {
		        locale: 'all',
	        },
        },
 },					
{
        singularName: 'landing-page',
        queryParams: {
	        populate: {
		        background_image: {
			        populate: '*',
			        locale: 'all',
		        },
		        partners_logos: {
			        populate: '*',
			        locale: 'all',
		        },
		        integrations_logos: {
			        populate: '*',
			        locale: 'all',
		        },
		        benefits: {
			        populate: '*',
			        locale: 'all',
		        },
		        services: {
			        populate: '*',
			        locale: 'all',
		        },
		        news_details: {
			        populate: '*',
			        locale: 'all',
		        },
		        testimonials: {
			        populate: '*',
			        locale: 'all',
		        },
	        },
	        pluginOptions: {
		        i18n: {
			        locale: 'all',
		        },
	        },
        },

Those are three examples for one that is working, one that is only returning the default locale and, one that is not appearing in graphql after this configuration (landing-page)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions